From: Christian Caremoli <> Date: Tue, 20 Jun 2006 17:39:32 +0000 (+0000) Subject: merge de la branche BR_dev_mars_06 (tag V1_10b5) dans la branche principale X-Git-Tag: CC_param_poursuite~22 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=48ed5b9a4653e74d533ebad34a8a95a1f82b4934;p=tools%2Feficas.git merge de la branche BR_dev_mars_06 (tag V1_10b5) dans la branche principale --- diff --git a/AIDE/aide_gui.py b/AIDE/aide_gui.py index 925297ea..197c2717 100644 --- a/AIDE/aide_gui.py +++ b/AIDE/aide_gui.py @@ -39,7 +39,7 @@ class AIDE_GUI: self.fenetre = fenetre else: self.fenetre = fenetre.master - fenetre.destroy() + fenetre.destroy() self.fenetre.title(self.objet.titre) self.fenetre.geometry("700x700+50+50") self.fenetre.resizable(1,1) @@ -47,7 +47,7 @@ class AIDE_GUI: #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 @@ -79,10 +79,10 @@ class AIDE_GUI: 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) + 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) @@ -104,8 +104,8 @@ class AIDE_GUI: 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) + fill = 'grey75') + self.canvas.lower(bordure) self.y_courant += 100 # Construction des items for item in self.objet.l_items : @@ -113,12 +113,12 @@ class AIDE_GUI: # Affichage du texte dans le fichier associé (s'il existe) if self.objet.fichier : try: - texte=open(self.objet.fichier,'r').read() + 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') + self.canvas.create_text(10,self.y_courant+20, + text=texte, + anchor='nw') # Configuration dynamique des boutons self.config_boutons() # @@ -139,9 +139,9 @@ class AIDE_GUI: """ l = Label(self.canvas, text=item.titre, - foreground = 'blue', - background='white', - font="Helvetica 12 bold") + foreground = 'blue', + background='white', + font="Helvetica 12 bold") l.bind("",lambda e,s=self,o=item : s.update_objet(o)) l.bind("",lambda e,s=self,o=l : s.select_label(o)) l.bind("",lambda e,s=self,o=l : s.deselect_label(o)) diff --git a/AIDE/aide_objets.py b/AIDE/aide_objets.py index 53c40f22..d5bbc3d8 100644 --- a/AIDE/aide_objets.py +++ b/AIDE/aide_objets.py @@ -32,7 +32,7 @@ class ITEM_INDEX : l_items = self.t_item[2] if l_items : for item in l_items : - o = ITEM_INDEX(item) + o = ITEM_INDEX(item) o.build() self.l_items.append(o) @@ -65,12 +65,12 @@ class INDEX : 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 : + self.titre = items[0] + self.fichier = items[1] + l_items = items[2] + for item in l_items : o = ITEM_INDEX(item) - o.build() + o.build() self.l_items.append(o) diff --git a/AIDE/fichiers/INSTALL b/AIDE/fichiers/INSTALL index f3452509..493c4676 100644 --- a/AIDE/fichiers/INSTALL +++ b/AIDE/fichiers/INSTALL @@ -4,7 +4,7 @@ Pour installer EFICAS a partir de la distribution : .tgz faire : - tar xzvf .tgz + tar xzvf .tgz ce qui a pour effet de créer un répertoire de nom . @@ -23,7 +23,7 @@ les fichiers et catalogues compil 2- Utilisation d'Eficas Pour utiliser Eficas, aller dans le répertoire Aster et faire : - python eficas_aster.py + python eficas_aster.py diff --git a/AIDE/fichiers/NEWS b/AIDE/fichiers/NEWS index 5db7afe9..1c80a9f9 100644 --- a/AIDE/fichiers/NEWS +++ b/AIDE/fichiers/NEWS @@ -1,17 +1,36 @@ +Version 1.10 (6/2006): + Mise en synchronisation avec la version 8.3 de Code_Aster de juin 2006. + +Version 1.9 (12/2005): + Mise en synchronisation avec la version 8.2 de Code_Aster de decembre 2005. + Version 1.8 (6/2005): Mise en synchronisation avec la version 8.1 de Code_Aster de mai 2005. Les includes et poursuites peuvent etre édités. Introduction de la notation scientifique pour les flottants. -Version 1.7 (12/2004): - Mise en synchronosation avec la version STA7.4 de Code_Aster de décembre 2004 +Version 1.7 : (12/2004) + Mise en synchronisation avec la version STA7 de Code_Aster (7.4). Les formules changent et deviennent des formules au sens python. + Disparition des PARAMETRE-EVAL + Les touches raccourcis (CtrlC par exple) sont activées et paramétrables dans prefs.py. + +Version 1.6 : (05/2004) + Mise en synchronisation avec la version STA7 de Code_Aster (7.2.26) + Evolution de la saisie des valeurs pour definir une fonction (EO2003-241) : + - Saisie des valeurs sous forme de tuple. + - Si une valeur est selectionnée, l'insertion se fera après cette valeur + et non en fin de liste + +Version 1.5 (10/2003): + Mise en synchronisation avec la version STA7 de Code_Aster d'octobre 2003 (7.2) + Introduction des validateurs de mots cles simples Version 1.4 (5/2003): Mise en synchronisation avec la version STA7 de Code_Aster de mai 2003 (7.1) Possibilité de donner un nom de fichier en argument lors de l'ouverture d'EFICAS (EO2003-060) Correction d'une anomalie dans la fonctionnalité de commentarisation des commandes (AO2003-041) - Ajout du bouton de documentation dans le pannneau FORMULE (AO2002-447) + Ajout du bouton de documentation dans le panneau FORMULE (AO2002-447) Selection automatique du concept quand il n'en existe qu'un (EO2002-162) Version 1.3 (11/2002): diff --git a/AIDE/fichiers/faqs.txt b/AIDE/fichiers/faqs.txt index 00504291..b087c34e 100644 --- a/AIDE/fichiers/faqs.txt +++ b/AIDE/fichiers/faqs.txt @@ -1,24 +1,24 @@ ------------------------------------------------------------------------------------------------------------- - FAQs et Limitations d'EFICAS + 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 + 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 ! + 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) + 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 @@ -26,21 +26,21 @@ 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. + 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. + 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é. + + 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é. diff --git a/Accas/A_ASSD.py b/Accas/A_ASSD.py index 06e2566f..2968709f 100644 --- a/Accas/A_ASSD.py +++ b/Accas/A_ASSD.py @@ -37,14 +37,14 @@ class ASSD(N_ASSD.ASSD,I_ASSD.ASSD):pass #class LASSD(I_LASSD.LASSD,N_LASSD.LASSD):pass class LASSD(I_LASSD.LASSD):pass -class assd(N_ASSD.assd,I_ASSD.ASSD,ASSD):pass +class assd(N_ASSD.assd,I_ASSD.assd,ASSD):pass class FONCTION(N_FONCTION.FONCTION,I_FONCTION.FONCTION,ASSD): def __init__(self,etape=None,sd=None,reg='oui'): N_FONCTION.FONCTION.__init__(self,etape=etape,sd=sd,reg=reg) I_FONCTION.FONCTION.__init__(self,etape=etape,sd=sd,reg=reg) -class formule(N_FONCTION.formule,I_FONCTION.formule,ASSD): +class formule(I_FONCTION.formule,N_FONCTION.formule,ASSD): def __init__(self,etape=None,sd=None,reg='oui'): N_FONCTION.formule.__init__(self,etape=etape,sd=sd,reg=reg) I_FONCTION.formule.__init__(self,etape=etape,sd=sd,reg=reg) @@ -56,6 +56,6 @@ class fonction(N_FONCTION.formule,I_FONCTION.fonction,ASSD): N_FONCTION.formule.__init__(self,etape=etape,sd=sd,reg=reg) I_FONCTION.fonction.__init__(self,etape=etape,sd=sd,reg=reg) -class GEOM(N_GEOM.GEOM,I_ASSD.ASSD,ASSD):pass -class geom(N_GEOM.geom,I_ASSD.ASSD,ASSD):pass -class CO(N_CO.CO,I_ASSD.ASSD,ASSD):pass +class GEOM(N_GEOM.GEOM,I_ASSD.GEOM,ASSD):pass +class geom(N_GEOM.geom,I_ASSD.geom,ASSD):pass +class CO(N_CO.CO,I_ASSD.CO,ASSD):pass diff --git a/Accas/A_FACT.py b/Accas/A_FACT.py index 4831aaa1..9db138b7 100644 --- a/Accas/A_FACT.py +++ b/Accas/A_FACT.py @@ -30,3 +30,9 @@ class FACT(N_FACT.FACT,I_ENTITE.ENTITE): I_ENTITE.ENTITE.__init__(self) N_FACT.FACT.__init__(self,*tup,**args) +from Noyau import N_OBJECT +from Ihm import I_OBJECT + +class ErrorObj(I_OBJECT.ErrorObj,N_OBJECT.ErrorObj):pass +N_OBJECT.ErrorObj=ErrorObj + diff --git a/Accas/A_SENSIBILITE.py b/Accas/A_SENSIBILITE.py new file mode 100644 index 00000000..f6581ee2 --- /dev/null +++ b/Accas/A_SENSIBILITE.py @@ -0,0 +1,9 @@ + +from Ihm import I_REGLE + +from Noyau import N_SENSIBILITE + +class REUSE_SENSIBLE(I_REGLE.REGLE,N_SENSIBILITE.REUSE_SENSIBLE):pass +class CONCEPT_SENSIBLE(I_REGLE.REGLE,N_SENSIBILITE.CONCEPT_SENSIBLE):pass +class DERIVABLE(I_REGLE.REGLE,N_SENSIBILITE.DERIVABLE):pass + diff --git a/Accas/A_VALIDATOR.py b/Accas/A_VALIDATOR.py index c127c965..580836d0 100644 --- a/Accas/A_VALIDATOR.py +++ b/Accas/A_VALIDATOR.py @@ -1,45 +1,2 @@ # -*- coding: utf-8 -*- -import types -from Noyau import N_VALIDATOR -from Ihm import I_VALIDATOR - -class FunctionVal(I_VALIDATOR.FunctionVal,N_VALIDATOR.FunctionVal):pass -class OrVal(I_VALIDATOR.OrVal,N_VALIDATOR.OrVal):pass -class AndVal(I_VALIDATOR.AndVal,N_VALIDATOR.AndVal):pass -class NoRepeat(I_VALIDATOR.NoRepeat,N_VALIDATOR.NoRepeat):pass -class LongStr(I_VALIDATOR.LongStr,N_VALIDATOR.LongStr):pass -class OrdList(I_VALIDATOR.OrdList,N_VALIDATOR.OrdList):pass -class RangeVal(I_VALIDATOR.RangeVal,N_VALIDATOR.RangeVal):pass -class EnumVal(I_VALIDATOR.EnumVal,N_VALIDATOR.EnumVal):pass -class TypeVal(I_VALIDATOR.TypeVal,N_VALIDATOR.TypeVal):pass -class PairVal(I_VALIDATOR.PairVal,N_VALIDATOR.PairVal):pass -class CardVal(I_VALIDATOR.CardVal,N_VALIDATOR.CardVal):pass -class InstanceVal(I_VALIDATOR.InstanceVal,N_VALIDATOR.InstanceVal):pass - -def do_liste(validators): - """ - Convertit une arborescence de validateurs en OrVal ou AndVal - validators est une liste de validateurs ou de listes ou de tuples - """ - valids=[] - for validator in validators: - if type(validator) == types.FunctionType: - valids.append(FunctionVal(validator)) - elif type(validator) == types.TupleType: - valids.append(OrVal(do_liste(validator))) - elif type(validator) == types.ListType: - valids.append(AndVal(do_liste(validator))) - else: - valids.append(validator) - return valids - -def validatorFactory(validator): - if type(validator) == types.FunctionType: - return FunctionVal(validator) - elif type(validator) == types.TupleType: - return OrVal(do_liste(validator)) - elif type(validator) == types.ListType: - return AndVal(do_liste(validator)) - else: - return validator - +from Ihm.I_VALIDATOR import * diff --git a/Accas/__init__.py b/Accas/__init__.py index 28d0e179..8ba10bf6 100644 --- a/Accas/__init__.py +++ b/Accas/__init__.py @@ -1,7 +1,7 @@ -# -*- coding: utf-8 -*- +# -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -15,20 +15,26 @@ # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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é. + Ce package contient les classes qui seront effectivement utilisees dans les applications. + C'est dans ce package que sont realisees les combinaisons de classes de base + avec les classes MIXIN qui implementent les fonctionnalites qui ont ete separees + du noyau pour des raisons de modularite afin de faciliter la maintenance et + l'extensibilite. - 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. + De plus toutes les classes utilisables par les applications sont remontees au + niveau du package afin de rendre le plus independant possible l'utilisation des + classes et leur implementation. """ + +# permet de se proteger de l'oubli de carte coding +# ce warning deviendra fatal en python 2.4 +import warnings +warnings.filterwarnings('error','Non-ASCII character.*pep-0263',DeprecationWarning) + from A_JDC_CATA import JDC_CATA from A_OPER import OPER from A_PROC import PROC @@ -61,7 +67,6 @@ from A_ENSEMBLE import ENSEMBLE from A_A_CLASSER import A_CLASSER from A_ASSD import ASSD,assd -#from A_ASSD import LASSD from A_ASSD import GEOM,geom # Pour le moment on laisse fonction (ceinture et bretelles) from A_ASSD import FONCTION, fonction @@ -73,8 +78,8 @@ from Noyau.N__F import _F from Noyau.N_Exception import AsException from Noyau.N_utils import AsType -#from Noyau.N_VALIDATOR import Valid,RangeVal,OrdList,NoRepeat,LongStr,EnumVal,CardVal,TypeVal,InstanceVal,OrVal,AndVal -from A_VALIDATOR import OrdList,NoRepeat,LongStr,OrVal,AndVal +from A_VALIDATOR import OrVal,AndVal +from A_VALIDATOR import OrdList,NoRepeat,LongStr,Compulsory from A_VALIDATOR import RangeVal, EnumVal, TypeVal, PairVal from A_VALIDATOR import CardVal, InstanceVal @@ -84,6 +89,7 @@ import A_VALIDATOR import Noyau.N_ENTITE Noyau.N_ENTITE.ENTITE.factories['validator']=A_VALIDATOR.validatorFactory +from A_SENSIBILITE import CONCEPT_SENSIBLE, REUSE_SENSIBLE, DERIVABLE from Extensions.niveau import NIVEAU from Extensions.etape_niveau import ETAPE_NIVEAU diff --git a/Aster/Cata/cataSTA6/__init__.py b/Aster/Cata/cataSTA6/__init__.py index 4593ed91..10ce4d8a 100644 --- a/Aster/Cata/cataSTA6/__init__.py +++ b/Aster/Cata/cataSTA6/__init__.py @@ -1,4 +1,7 @@ import pre74 +from math import sin,cos,tan,asin,acos,atan2,atan,sinh,cosh,tanh,exp,log,log10 +from math import sqrt,pi + from cata import * INCLUDE_MATERIAU.itemeditor=pre74.compomacro.INCLUDE_MATERIAUTreeItem diff --git a/Aster/Cata/cataSTA6/cata.py b/Aster/Cata/cataSTA6/cata.py index d4d8c367..345d059b 100755 --- a/Aster/Cata/cataSTA6/cata.py +++ b/Aster/Cata/cataSTA6/cata.py @@ -1,3 +1,4 @@ +# -*- coding: iso-8859-1 -*- #& MODIF COMMANDE DATE 03/02/2003 AUTEUR DURAND C.DURAND # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -29,7 +30,7 @@ except: # __version__="$Name: $" -__Id__="$Id: cata_aster_v6.py,v 1.12 2001/01/16 15:55:05 iliade Exp $" +__Id__="$Id: cata.py,v 1.4.6.1 2006/05/29 07:04:57 cchris Exp $" # JdC = JDC_CATA(code='ASTER', execmodul=None, diff --git a/Aster/Cata/cataSTA6/ops.py b/Aster/Cata/cataSTA6/ops.py index eecdc442..66ac3a12 100644 --- a/Aster/Cata/cataSTA6/ops.py +++ b/Aster/Cata/cataSTA6/ops.py @@ -1,3 +1,4 @@ +# -*- coding: iso-8859-1 -*- #@ MODIF ops Cata DATE 23/10/2002 AUTEUR DURAND C.DURAND # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== diff --git a/Aster/Cata/cataSTA7/Macro/__init__.py b/Aster/Cata/cataSTA7/Macro/__init__.py new file mode 100644 index 00000000..4aebb58b --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/__init__.py @@ -0,0 +1,21 @@ +#@ MODIF __init__ Macro DATE 20/09/2004 AUTEUR DURAND C.DURAND +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# +# +# ====================================================================== diff --git a/Aster/Cata/cataSTA7/Macro/ajout_quad_gmsh.py b/Aster/Cata/cataSTA7/Macro/ajout_quad_gmsh.py new file mode 100644 index 00000000..e0d64393 --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/ajout_quad_gmsh.py @@ -0,0 +1,252 @@ +#@ MODIF ajout_quad_gmsh Macro DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + + + +# 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 diff --git a/Aster/Cata/cataSTA7/Macro/calc_precont_ops.py b/Aster/Cata/cataSTA7/Macro/calc_precont_ops.py new file mode 100644 index 00000000..6d4e7618 --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/calc_precont_ops.py @@ -0,0 +1,468 @@ +#@ MODIF calc_precont_ops Macro DATE 05/07/2005 AUTEUR DURAND C.DURAND +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + + +# RESPONSABLE ASSIRE A.ASSIRE + +def calc_precont_ops(self,reuse,MODELE,CHAM_MATER,CARA_ELEM,EXCIT, + CABLE_BP,CABLE_BP_INACTIF, + COMP_INCR,ETAT_INIT,NEWTON,RECH_LINEAIRE, + CONVERGENCE,INCREMENT,SOLVEUR,SOLV_NON_LOCAL, + LAGR_NON_LOCAL,PARM_THETA,INFO,TITRE,**args): + + + """ + Ecriture de la macro CALC_PRECONT + """ + import copy + import aster + import string + import types + from Accas import _F + from Noyau.N_utils import AsType + ier=0 + + # On importe les definitions des commandes a utiliser dans la macro + AFFE_MODELE = self.get_cmd('AFFE_MODELE') + CREA_CHAMP = self.get_cmd('CREA_CHAMP') + AFFE_CHAR_MECA = self.get_cmd('AFFE_CHAR_MECA') + DEFI_LIST_REEL = self.get_cmd('DEFI_LIST_REEL') + STAT_NON_LINE = self.get_cmd('STAT_NON_LINE') + CALC_NO = self.get_cmd('CALC_NO') + CREA_CHAMP = self.get_cmd('CREA_CHAMP') + DEFI_FONCTION = self.get_cmd('DEFI_FONCTION') + RECU_TABLE = self.get_cmd('RECU_TABLE') + DEFI_MATERIAU = self.get_cmd('DEFI_MATERIAU') + AFFE_MATERIAU = self.get_cmd('AFFE_MATERIAU') + + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + # Le concept sortant (de type evol_noli) est nomme RES dans + # le contexte de la macro + + self.DeclareOut('RES',self.sd) + + # ------------------------------------------------------------- + # 1. CREATION DES MOTS-CLES ET CONCEPTS POUR LES STAT_NON_LINE + # ------------------------------------------------------------ + + + # 1.1 Recuperation de la liste d'instants, de l'instant initial et final + # Creation de la nouvelle liste d'instants + # ---------------------------------------------------------- + + dIncrement=INCREMENT[0].cree_dict_valeurs(INCREMENT[0].mc_liste) + + __prec = dIncrement['PRECISION'] + __L0 = dIncrement['LIST_INST'] + __L1 = __L0.Valeurs() + + # Traitement de l'etat initial + if ETAT_INIT: + dEtatInit=ETAT_INIT[0].cree_dict_valeurs(ETAT_INIT[0].mc_liste) + for i in dEtatInit.keys(): + if dEtatInit[i]==None : del dEtatInit[i] + + __EVINIT = dEtatInit['EVOL_NOLI'] + else : + dEtatInit=None + + # Test de la presence de reuse= + if self.reuse == None: + dReuse=None + else : + dReuse='RES' + + # Teste si INST_INIT est donné ou bien recalcule __TMIN + if dIncrement['INST_INIT'] == None: + if self.reuse == None: + __TMIN = __L1[0] + else: + __dico = __EVINIT.LIST_VARI_ACCES() + __TMIN = __dico['INST'][-1] + else: + __TMIN = dIncrement['INST_INIT'] + + # Teste si INST_FIN est donné ou bien recalcule __TMAX + if dIncrement['INST_FIN'] == None: + __TMAX = __L1[-1] + else: + __TMAX = dIncrement['INST_FIN'] + + # Teste si INST_INIT est bien plus petit que INST_FIN + if __TMAX <= __TMIN: + ier=ier+1 + self.cr.fatal(""" ERREUR : INST_FIN PLUS PETIT QUE INST_INIT""") + return ier + + # Cree la liste d'instant __L2 allant de __TMIN a __TMAX et contenant + # un instant supplementaire __TINT + __L2=[] + for m in __L1: + if m>=__TMIN and m<=__TMAX: + __L2.append(m) + + __TINT = (9.*__L2[-1] + __L2[-2])/10. + __L2[-1:-1] = [__TINT] + + # __LST0 est la liste d'instants utilisée pour l'etape 1 + __LST0=DEFI_LIST_REEL( DEBUT = __TMIN, + INTERVALLE = _F(JUSQU_A = __TMAX, NOMBRE = 1),) + + # __LST et __FCT sont utilisés pour les etapes 2 et 3 + __LST=DEFI_LIST_REEL(VALE=__L2,); + __FCT=DEFI_FONCTION(INTERPOL=('LIN','LIN'), + NOM_PARA='INST', + VALE=(__TMIN,0.0,__TINT,1.0,__TMAX,1.0),); + + for i in dIncrement.keys(): + if dIncrement[i]==None : del dIncrement[i] + dIncrement['LIST_INST']= __LST + dIncrement['INST_FIN'] = __TINT + + + + # 1.2 Recuperation des parametres pour STAT_NON_LINE + # ------------------------------------------------------- + + dNewton=NEWTON[0].cree_dict_valeurs(NEWTON[0].mc_liste) + for i in dNewton.keys(): + if dNewton[i]==None : del dNewton[i] + + dConvergence=CONVERGENCE[0].cree_dict_valeurs(CONVERGENCE[0].mc_liste) + for i in dConvergence.keys(): + if dConvergence[i]==None : del dConvergence[i] + + dSolveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste) + for i in dSolveur.keys(): + if dSolveur[i]==None : del dSolveur[i] + + if RECH_LINEAIRE: + dRech_lin=RECH_LINEAIRE[0].cree_dict_valeurs(RECH_LINEAIRE[0].mc_liste) + for i in dRech_lin.keys(): + if dRech_lin[i]==None : del dRech_lin[i] + else : + dRech_lin=None + + if SOLV_NON_LOCAL: + dSolv_nonloc=SOLV_NON_LOCAL[0].cree_dict_valeurs(SOLV_NON_LOCAL[0].mc_liste) + for i in dSolv_nonloc.keys(): + if dSolv_nonloc[i]==None : del dSolv_nonloc[i] + else : + dSolv_nonloc=None + + if LAGR_NON_LOCAL: + dLagr_nonloc=LAGR_NON_LOCAL[0].cree_dict_valeurs(LAGR_NON_LOCAL[0].mc_liste) + for i in dLagr_nonloc.keys(): + if dLagr_nonloc[i]==None : del dLagr_nonloc[i] + else : + dLagr_nonloc=None + + + + # 1.3 Creation des mots-cles pour les 3 AFFE_CHAR_MECA + # Recuperation des cables dans les concepts CABLE_BP + # et CABLE_BP_INACTIF + # ------------------------------------------------------ + if type(CABLE_BP) is not types.NoneType: + if type(CABLE_BP) is not types.TupleType: + CABLE_BP0 = CABLE_BP + CABLE_BP = [] + CABLE_BP.append ( CABLE_BP0 ) + + if type(CABLE_BP_INACTIF) is not types.NoneType: + if type(CABLE_BP_INACTIF) is not types.TupleType: + CABLE_BP_INACTIF0 = CABLE_BP_INACTIF + CABLE_BP_INACTIF = [] + CABLE_BP_INACTIF.append ( CABLE_BP_INACTIF0 ) + + motscles={} + motscles['RELA_CINE_BP']=[] + motscle2={} + motscle2['RELA_CINE_BP']=[] + motscle3={} + motscle3['RELA_CINE_BP']=[] + __GROUP_MA_A=[] + Result = [[None]*1] + for mcabl in CABLE_BP: + # Creation de mots-cles pour les AFFE_CHAR_MECA + motscles['RELA_CINE_BP'].append(_F(CABLE_BP=mcabl, + SIGM_BPEL = 'OUI', + RELA_CINE = 'NON',) ) + motscle2['RELA_CINE_BP'].append(_F(CABLE_BP=mcabl, + SIGM_BPEL = 'NON', + RELA_CINE = 'OUI',) ) + motscle3['RELA_CINE_BP'].append(_F(CABLE_BP=mcabl, + SIGM_BPEL = 'OUI', + RELA_CINE = 'OUI',) ) + + # Creation de __GROUP_MA_A : liste des noms des cables contenus + # dans chaque concept CABLE_BP = cables a activer + __TCAB = RECU_TABLE(CO=mcabl,NOM_TABLE='CABLE_BP'); + __nb = 0 + while 1: + try: + Result[__nb][0] = __TCAB['NOM_CABLE',__nb+1] + __CAB = __TCAB['NOM_CABLE',__nb+1] + if __nb == 0: + __GROUP_MA_A.append(__CAB) + else: + i = 0 + # enlève les doublons + for m in __GROUP_MA_A: + i=i+1 + if __CAB == m: + break + if i == len(__GROUP_MA_A): + __GROUP_MA_A.append(__CAB) + + __nb = __nb + 1 + Result.append([None]*1) + # Si on a lu toutes les valeurs alors on sort de la boucle + except KeyError: + break + + # Creation de __GROUP_MA_I : liste des noms des cables contenus + # dans chaque CABLE_BP_INACTIF + # __GROUP_MA_CABLE = liste des cables actifs et inactifs + Result = [[None]*1] + __GROUP_MA_I=[] + + if CABLE_BP_INACTIF: + for mcabl in CABLE_BP_INACTIF: + __TCA0 = RECU_TABLE(CO=mcabl,NOM_TABLE='CABLE_BP'); + __nb = 0 + while 1: + try: + Result[__nb][0] = __TCA0['NOM_CABLE',__nb+1] + __CA0 = __TCA0['NOM_CABLE',__nb+1] + if __nb == 0: + __GROUP_MA_I.append(__CA0) + else: + i = 0 + # enlève les doublons + for m in __GROUP_MA_I: + i=i+1 + if __CA0 == m: + break + if i == len(__GROUP_MA_I): + __GROUP_MA_I.append(__CA0) + + __nb = __nb + 1 + Result.append([None]*1) + # Si on a lu toutes les valeurs alors on sort de la boucle + except KeyError: + break + motscle6={} + motscle6['RELA_CINE_BP']=[] + for mcabl in CABLE_BP_INACTIF: + # Creation de mots-cles pour les AFFE_CHAR_MECA + motscle6['RELA_CINE_BP'].append(_F(CABLE_BP=mcabl, + SIGM_BPEL = 'NON', + RELA_CINE = 'OUI',) ) + + __GROUP_MA_CABLES = __GROUP_MA_A + __GROUP_MA_I + + + # 1.4 Creation des mots-clés facteurs COMP_INCR + # pour étape 2 (dComp_incr0) et étape 3 (dComp_incr1) + # ------------------------------------------------------ + + dComp_incr=[] + for j in COMP_INCR : + dComp_incr.append(j.cree_dict_valeurs(j.mc_liste)) + for i in dComp_incr[-1].keys(): + if dComp_incr[-1][i]==None : del dComp_incr[-1][i] + + dComp_incr0=copy.copy(dComp_incr) + dComp_incr1=copy.copy(dComp_incr) + + dComp_incr0.append(_F(RELATION='SANS',GROUP_MA=__GROUP_MA_CABLES) ) + if __GROUP_MA_I: + dComp_incr1.append(_F(RELATION='SANS',GROUP_MA=__GROUP_MA_I) ) + + + # 1.5 Modele contenant uniquement les cables de precontrainte + # --------------------------------------------------------- + + __MOD = string.ljust(MODELE.nom,8) + __MOD =__MOD+'.MODELE .NOMA ' + __LMAIL = aster.getvectjev(__MOD) + __MAIL = string.strip(__LMAIL[0]) + + objma=self.get_sd_avant_etape(__MAIL,self) + + __M_CA=AFFE_MODELE( MAILLAGE=objma, + AFFE =_F( GROUP_MA = __GROUP_MA_A, + PHENOMENE = 'MECANIQUE', + MODELISATION = 'BARRE') ) + + + # 1.6 Blocage de tous les noeuds des cables actifs + # -------------------------------------------------- + + _B_CA=AFFE_CHAR_MECA(MODELE=__M_CA, + DDL_IMPO= _F( GROUP_MA = __GROUP_MA_A, + DX = 0., + DY = 0., + DZ = 0.),) + + + # 1.7 Chargements concernant les cables + # ------------------------------------- + _C_CN=AFFE_CHAR_MECA(MODELE=__M_CA,**motscles) + _C_CA=AFFE_CHAR_MECA(MODELE=MODELE,**motscle2) + _C_CT=AFFE_CHAR_MECA(MODELE=MODELE,**motscle3) + if CABLE_BP_INACTIF: + _C_CI=AFFE_CHAR_MECA(MODELE=MODELE,**motscle6) + + + + # ------------------------------------------------------------- + # 2. CALCULS + # ------------------------------------------------------------ + + + #------------------------------------------------------------------- + # 2.1 Premiere etape : calcul sur le(s) cable(s) et + # recuperation des _F_CAs aux noeuds + # on travaile entre tmin et tmax + #------------------------------------------------------------------- + + __EV1=STAT_NON_LINE( + MODELE = __M_CA, + CHAM_MATER = CHAM_MATER, + CARA_ELEM = CARA_ELEM, + EXCIT =(_F(CHARGE = _B_CA), + _F(CHARGE = _C_CN),), + COMP_INCR =_F( RELATION = 'ELAS', + DEFORMATION = 'PETIT', + TOUT = 'OUI'), + INCREMENT =_F(LIST_INST = __LST0, + PRECISION = __prec), + SOLVEUR = dSolveur, + PARM_THETA = PARM_THETA, + INFO =INFO, + TITRE = TITRE, ) + + __EV1 = CALC_NO( reuse = __EV1, + RESULTAT = __EV1, + GROUP_MA = __GROUP_MA_A, + OPTION = 'FORC_NODA' ) + + __REA = CREA_CHAMP ( + TYPE_CHAM = 'NOEU_DEPL_R', + OPERATION = 'EXTR', + RESULTAT = __EV1, + NOM_CHAM = 'FORC_NODA', + INST = __TMAX); + + __REAC = CREA_CHAMP (TYPE_CHAM='NOEU_DEPL_R', + OPERATION = 'ASSE', + MODELE = MODELE, + ASSE= _F(GROUP_MA=__GROUP_MA_A, + CHAM_GD=__REA, + COEF_R = -1.), ) + + _F_CA=AFFE_CHAR_MECA(MODELE=__M_CA, + VECT_ASSE = __REAC ) + + + + #----------------------------------------------------------------------- + # 2.2 Deuxieme etape : application de la precontrainte sur le beton + # en desactivant les cables + #----------------------------------------------------------------------- + + # Regeneration des mots-cles EXCIT passés en argument de la macro + dExcit=[] + for j in EXCIT : + dExcit.append(j.cree_dict_valeurs(j.mc_liste)) + for i in dExcit[-1].keys(): + if dExcit[-1][i]==None : del dExcit[-1][i] + + if CABLE_BP_INACTIF: + dExcit.append(_F(CHARGE=_C_CI),) + + # Creation du mots-cle EXCIT pour le STAT_NON_LINE + dExcit1=copy.copy(dExcit) + dExcit1.append(_F(CHARGE=_C_CA),) + dExcit1.append(_F(CHARGE = _F_CA, + FONC_MULT=__FCT ),) + + RES=STAT_NON_LINE( + MODELE =MODELE, + CARA_ELEM =CARA_ELEM, + CHAM_MATER = CHAM_MATER, + COMP_INCR=dComp_incr0, + INCREMENT=dIncrement, + ETAT_INIT = dEtatInit, + NEWTON =dNewton, + CONVERGENCE=dConvergence, + RECH_LINEAIRE = dRech_lin, + SOLVEUR = dSolveur, + SOLV_NON_LOCAL = dSolv_nonloc, + LAGR_NON_LOCAL = dLagr_nonloc, + ARCHIVAGE = _F(INST = __TINT), + PARM_THETA = PARM_THETA, + INFO =INFO, + TITRE = TITRE, + EXCIT = dExcit1, + ) + + # Recuperation du dernier numero d'ordre pour pouvoir l'écraser dans RES + __dico2 = RES.LIST_VARI_ACCES() + __no = __dico2['NUME_ORDRE'][-1] + + + #----------------------------------------------------------------------- + # 2.2 Troisieme etape : on remet la tension dans les cables + #----------------------------------------------------------------------- + + # Creation du mots-cles EXCIT pour le STAT_NON_LINE + dExcit2=copy.copy(dExcit) + dExcit2.append(_F(CHARGE=_C_CT,) ) + + # Calcul sur un seul pas (de __TINT a __TMAX) + RES=STAT_NON_LINE( reuse = RES, + ETAT_INIT = _F(EVOL_NOLI =RES), + MODELE = MODELE, + CHAM_MATER = CHAM_MATER, + CARA_ELEM = CARA_ELEM, + COMP_INCR=dComp_incr1, + INCREMENT=_F(LIST_INST = __LST, + PRECISION = __prec), + NEWTON =dNewton, + RECH_LINEAIRE = dRech_lin, + CONVERGENCE=dConvergence, + SOLVEUR = dSolveur, + SOLV_NON_LOCAL = dSolv_nonloc, + LAGR_NON_LOCAL = dLagr_nonloc, + ARCHIVAGE = _F(NUME_INIT = __no, + DETR_NUME_SUIV = 'OUI' ), + PARM_THETA = PARM_THETA, + INFO =INFO, + TITRE = TITRE, + EXCIT =dExcit2, + ) + + return ier + diff --git a/Aster/Cata/cataSTA7/Macro/defi_cable_bp_ops.py b/Aster/Cata/cataSTA7/Macro/defi_cable_bp_ops.py new file mode 100644 index 00000000..3d234d76 --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/defi_cable_bp_ops.py @@ -0,0 +1,313 @@ +#@ MODIF defi_cable_bp_ops Macro DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE ASSIRE A.ASSIRE + +# =========================================================================== +# CORPS DE LA MACRO "DEFI_CABLE_BP" +# ------------------------------------- +# USAGE : +# Entrée : +# - MAILLAGE +# - MODELE +# - CABLE +# - CHAM_MATER +# - CARA_ELEM +# - GROUP_MA_BETON +# - DEFI_CABLE +# - TYPE_ANCRAGE +# - TENSION_INIT +# - RECUL_ANCRAGE +# - RELAXATION +# - CONE +# RAYON +# LONGUEUR +# PRESENT OUI ou NON deux fois +# - TITRE +# - INFO 1 / 2 +# +# =========================================================================== + + + +def defi_cable_bp_ops(self,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM,GROUP_MA_BETON, + DEFI_CABLE,TYPE_ANCRAGE,TENSION_INIT,RECUL_ANCRAGE, + RELAXATION,CONE,TITRE,INFO,**args): + + """ + Ecriture de la macro DEFI_CABLE_BP + """ + from Accas import _F + import aster,string + ier=0 + + # On importe les definitions des commandes a utiliser dans la macro + DEFI_GROUP = self.get_cmd('DEFI_GROUP') + IMPR_RESU = self.get_cmd('IMPR_RESU') + DEFI_CABLE_OP = self.get_cmd('DEFI_CABLE_OP') + RECU_TABLE = self.get_cmd('RECU_TABLE') + IMPR_TABLE = self.get_cmd('IMPR_TABLE') + IMPR_CO = self.get_cmd('IMPR_CO') + + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + # Le concept sortant (de type char_meca) est nomme CHCABLE dans + # le contexte de la macro + + self.DeclareOut('__DC',self.sd) + + # ---------------------------------------------------------------------------- # + # Début de la Macro : + + motscles={} + + # RECUPERATION DES INFOS DONNEES PAR LE MOT-CLE "CONE" + + if CONE: + dCONE=CONE[0].cree_dict_valeurs(CONE[0].mc_liste) + for i in dCONE.keys(): + if dCONE[i]==None : del dCONE[i] + + RAYON = dCONE['RAYON'] + LONGUEUR = dCONE['LONGUEUR'] + + motscles['CONE']=[] + motscles['CONE'].append( dCONE ) + + + # VERIFICATION QUE LE MAILLAGE EST COHERENT AVEC LE MODELE + + __MAIL = aster.getvectjev( string.ljust(MODELE.nom,8) + '.MODELE .NOMA ' ) + if string.ljust(MAILLAGE.nom,8) != __MAIL[0] : + self.DeclareOut(MAILLAGE.nom,maillage) + print ' ' + print ' # ---------------------------------------------------------------------------' + print ' # DEFI_CABLE_BP - Erreur : LE CONCEPT MAILLAGE RENSEIGNE NE CORRESPOND' + print ' # PAS A CELUI UTILISE DANS LE MODELE !' + print ' # ',MAILLAGE.nom,' - ',__MAIL[0] + print ' # ---------------------------------------------------------------------------' + print ' ' + ier=ier+1 + self.cr.fatal(""" Erreur dans la macro""") + return ier + + + # DEFINITION DU NOM DES GROUP_NO + + __NOM = '_AN_' + __LGNO = MAILLAGE.LIST_GROUP_NO() + __LGN1 = [] + for i in __LGNO : + __LGN1.append( i[0][:len(__NOM)] ) + + __NB = __LGN1.count(__NOM) + +# FIN RECUPERATION DES INFOS DONNEES PAR LE MOT-CLE "CONE" + + + # RECUPERATION DES INFOS DONNEES PAR LE MOT-CLE "DEFI_CABLE" + + dDEFI_CABLE=[] + for j in DEFI_CABLE : + dDEFI_CABLE.append(j.cree_dict_valeurs(j.mc_liste)) + for i in dDEFI_CABLE[-1].keys(): + if dDEFI_CABLE[-1][i]==None : del dDEFI_CABLE[-1][i] + + + # BOUCLE SUR LES FACTEURS DU MOT-CLE "DEFI_CABLE" + + motscles['DEFI_CABLE']=[] + + for i in dDEFI_CABLE: + + # CAS OU L'ON A DEFINI LE MOT-CLE "CONE" + if CONE: + + # CREATION DU PREMIER TUNNEL + + if dCONE['PRESENT'][0] == 'OUI': + __NB = __NB + 1 + __NOM1 = __NOM + str( int(__NB) ) + + motscle2={} + motscle2['CREA_GROUP_NO']=[] + + if i.has_key('GROUP_MA') == 1: + __CAB = i['GROUP_MA'] + motscle2= {'CREA_GROUP_NO': [{'LONGUEUR': LONGUEUR, 'RAYON': RAYON, 'OPTION': 'TUNNEL', 'GROUP_MA': [ GROUP_MA_BETON, __CAB ], 'GROUP_MA_AXE': __CAB, 'NOM': __NOM1}]} + if i.has_key('MAILLE') == 1: + print ' ' + print ' # ---------------------------------------------------------------------------' + print ' # DEFI_CABLE_BP - Erreur : MAILLE INTERDIT - UTILISER GROUP_MA' + print ' # ---------------------------------------------------------------------------' + print ' ' + ier=ier+1 + self.cr.fatal(""" Erreur dans la macro""") + return ier + if i.has_key('GROUP_NO_ANCRAGE') == 1: + __PC1 = i['GROUP_NO_ANCRAGE'][0] + motscle2['CREA_GROUP_NO'][0]['GROUP_NO_ORIG'] = __PC1 + if i.has_key('NOEUD_ANCRAGE') == 1: + __PC1 = i['NOEUD_ANCRAGE'][0] + motscle2['CREA_GROUP_NO'][0]['NOEUD_ORIG'] = __PC1 + + + DEFI_GROUP( reuse=MAILLAGE, + MAILLAGE=MAILLAGE, + INFO=INFO, + ALARME='NON', + **motscle2 + ) ; + + # CREATION DU DEUXIEME TUNNEL + + if dCONE['PRESENT'][1] == 'OUI': + __NB = __NB + 1 + __NOM2 = __NOM + str( int(__NB) ) + + motscle2={} + motscle2['CREA_GROUP_NO']=[] + + if i.has_key('GROUP_MA') == 1: + __CAB = i['GROUP_MA'] + motscle2= {'CREA_GROUP_NO': [{'LONGUEUR': LONGUEUR, 'RAYON': RAYON, 'OPTION': 'TUNNEL', 'GROUP_MA': [ GROUP_MA_BETON, __CAB ], 'GROUP_MA_AXE': __CAB, 'NOM': __NOM2}]} + if i.has_key('MAILLE') == 1: + print ' ' + print ' # ---------------------------------------------------------------------------' + print ' # DEFI_CABLE_BP - Erreur : MAILLE INTERDIT - UTILISER GROUP_MA' + print ' # ---------------------------------------------------------------------------' + print ' ' + ier=ier+1 + self.cr.fatal(""" Erreur dans la macro""") + return ier + if i.has_key('GROUP_NO_ANCRAGE') == 1: + __PC1 = i['GROUP_NO_ANCRAGE'][1] + motscle2['CREA_GROUP_NO'][0]['GROUP_NO_ORIG'] = __PC1 + if i.has_key('NOEUD_ANCRAGE') == 1: + __PC1 = i['NOEUD_ANCRAGE'][1] + motscle2['CREA_GROUP_NO'][0]['NOEUD_ORIG'] = __PC1 + + DEFI_GROUP( reuse=MAILLAGE, + MAILLAGE=MAILLAGE, + INFO=INFO, + ALARME='NON', + **motscle2 + ) ; + + + # CREATION DES NOUVEAUX FACTEURS DU MOT-CLE "DEFI_CABLE" POUR DEFI_CABLE_BP + + if dCONE['PRESENT'][0] == 'OUI' and dCONE['PRESENT'][1] == 'OUI': + if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1: + motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], + GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], + GROUP_NO_FUT=( __NOM1,__NOM2, ), ), ) + if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1: + motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], + NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], + GROUP_NO_FUT=( __NOM1,__NOM2, ), ), ) + + if dCONE['PRESENT'][0] == 'OUI' and dCONE['PRESENT'][1] == 'NON': + if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1: + motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], + GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], + GROUP_NO_FUT=( __NOM1, ), ), ) + if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1: + motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], + NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], + GROUP_NO_FUT=( __NOM1, ), ), ) + + if dCONE['PRESENT'][0] == 'NON' and dCONE['PRESENT'][1] == 'OUI': + if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1: + motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], + GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], + GROUP_NO_FUT=( __NOM2, ), ), ) + if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1: + motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], + NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], + GROUP_NO_FUT=( __NOM2, ), ), ) + + if dCONE['PRESENT'][0] == 'NON' and dCONE['PRESENT'][1] == 'NON': + if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1: + motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], + GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], ), ) + if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1: + motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], + NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], ), ) + + + # CAS OU L'ON A PAS DEFINI LE MOT-CLE "CONE" + else: + if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1: + motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], + GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], ), ) + + if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1: + motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], + NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], ), ) + + if i.has_key('MAILLE') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1: + motscles['DEFI_CABLE'].append( _F(MAILLE=i['MAILLE'], + GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], ), ) + + if i.has_key('MAILLE') == 1 and i.has_key('NOEUD_ANCRAGE') == 1: + motscles['DEFI_CABLE'].append( _F(MAILLE=i['MAILLE'], + NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], ), ) + + +# FIN BOUCLE sur i in DEFI_CABLE + + + # LANCEMENT DE DEFI_CABLE_BP + + if RELAXATION: + dRelaxation=RELAXATION[0].cree_dict_valeurs(RELAXATION[0].mc_liste) + for i in dRelaxation.keys(): + if dRelaxation[i]==None : del dRelaxation[i] + + __DC=DEFI_CABLE_OP(MODELE=MODELE, + CHAM_MATER=CHAM_MATER, + CARA_ELEM=CARA_ELEM, + GROUP_MA_BETON=GROUP_MA_BETON, + TYPE_ANCRAGE=TYPE_ANCRAGE, + TENSION_INIT=TENSION_INIT, + RECUL_ANCRAGE=RECUL_ANCRAGE, + RELAXATION=dRelaxation, + INFO=INFO, + **motscles + ); + + else: + + __DC=DEFI_CABLE_OP(MODELE=MODELE, + CHAM_MATER=CHAM_MATER, + CARA_ELEM=CARA_ELEM, + GROUP_MA_BETON=GROUP_MA_BETON, + TYPE_ANCRAGE=TYPE_ANCRAGE, + TENSION_INIT=TENSION_INIT, + RECUL_ANCRAGE=RECUL_ANCRAGE, + INFO=INFO, + **motscles + ); + +# __TCAB = RECU_TABLE(CO=__DC,NOM_TABLE='CABLE_BP'); +# IMPR_TABLE(TABLE=__TCAB); + + return ier diff --git a/Aster/Cata/cataSTA7/Macro/defi_part_feti_ops.py b/Aster/Cata/cataSTA7/Macro/defi_part_feti_ops.py new file mode 100644 index 00000000..f5e4df29 --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/defi_part_feti_ops.py @@ -0,0 +1,182 @@ +#@ MODIF defi_part_feti_ops Macro DATE 05/07/2005 AUTEUR DURAND C.DURAND +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE ASSIRE A.ASSIRE + + +# =========================================================================== +# CORPS DE LA MACRO "DEFI_PART_FETI" +# ------------------------------------- +# USAGE : +# MAILLAGE maillage a partitionner +# MODELE modele (facultatif) +# NB_PART nb de sous-domaines +# EXCIT liste des chargements +# METHODE PMETIS, KMETIS ou AUTRE +# LOGICIEL si AUTRE alors on attend un chemin complet vers executable +# NOM_GROUP_MA Un nom de base pour les group_ma contenant les SD +# INFO 1,2 +# +# =========================================================================== +# script PYTHON : appel a Metis et lancement de DEFI_PART_OPS + + +def defi_part_feti_ops(self,MAILLAGE,MODELE,NB_PART,EXCIT,METHODE,NOM_GROUP_MA,INFO,**args): + + import aster, string, sys + + from Accas import _F + from Noyau.N_utils import AsType + + from Utilitai import partition + + # DEBUT DE LA MACRO + ier=0 + + INCLUSE='NON' # On cree des GROUP_MA pour les mailles de bords (pour developpeur) + + # Nom des GROUP_MA générés + NOM_GROUP_MA = string.strip(NOM_GROUP_MA) + NOM_GROUP_MA_BORD = '_' + NOM_GROUP_MA + + # Test sur le nombre de caractères de NOM_GROUP_MA + if ( len(NOM_GROUP_MA)+len(str(NB_PART)) > 7 ): + print '\n\n ERREUR : Afin de pouvoir générer les GROUP_MA, réduisez le nombre \n de caractères de NOM_GROUP_MA à un maximum de :', 7-len(str(NB_PART)) + print '\n\n' + sys.exit(1) + + # Verification que des GROUP_MA ne portent pas deja les memes noms + _lst = [] + for i in MAILLAGE.LIST_GROUP_MA(): + _lst.append( string.strip(i[0]) ) + for i in range(NB_PART): + if ( NOM_GROUP_MA+str(i) in _lst ): + print '\n\n ERREUR : Il existe déjà un GROUP_MA nommé : ', NOM_GROUP_MA+str(i) + print '\n\n' + sys.exit(1) + if ( NOM_GROUP_MA_BORD+str(i) in _lst ): + print '\n\n ERREUR : Il existe déjà un GROUP_MA nommé : ', NOM_GROUP_MA_BORD+str(i) + print '\n\n' + sys.exit(1) + + # Executable du partitionneur + if METHODE=="AUTRE": + exe_metis = arg['LOGICIEL'] + else: + exe_metis = aster.repout() + string.lower(METHODE) + + # On importe les definitions des commandes a utiliser dans la macro + DEFI_PART_OPS = self.get_cmd('DEFI_PART_OPS') + INFO_EXEC_ASTER = self.get_cmd('INFO_EXEC_ASTER') + DEFI_FICHIER = self.get_cmd('DEFI_FICHIER') + DETRUIRE = self.get_cmd('DETRUIRE') + + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + # Le concept sortant dans le contexte de la macro + self.DeclareOut('_SDFETI',self.sd) + + # Debut : + print """ + + # --------------------------------------------------------------------------- + # MACRO-COMMANDE : DEFI_PART_FETI + # ---------------- +""" + + # Objet Partition + _part = partition.PARTITION(jdc=self); + + # Recuperation de deux UL libres + _UL=INFO_EXEC_ASTER(LISTE_INFO='UNITE_LIBRE') + ul1=_UL['UNITE_LIBRE',1] + DETRUIRE(CONCEPT=(_F(NOM=_UL),), INFO=1) + DEFI_FICHIER(UNITE=ul1) + _UL=INFO_EXEC_ASTER(LISTE_INFO='UNITE_LIBRE') + ul2=_UL['UNITE_LIBRE',1] + DEFI_FICHIER(ACTION='LIBERER',UNITE=ul1) + + fichier_in = 'fort.' + str(ul1) + fichier_out = 'fort.' + str(ul2) + + # Options de la classe Partition + _part.OPTIONS['exe_metis'] = exe_metis + _part.OPTIONS['fichier_in'] = fichier_in + _part.OPTIONS['fichier_out'] = fichier_out + + + # Partitionnement + if MODELE: + _part.Partitionne_Aster( + MAILLAGE = MAILLAGE, + MODELE = MODELE, + NB_PART = NB_PART, + INFO = INFO, + ); + + elif MAILLAGE: + _part.Partitionne_Aster( + MAILLAGE = MAILLAGE, + NB_PART = NB_PART, + INFO = INFO, + ); + + + # Creation des group_ma dans le maillage Aster + _part.Creation_Group_ma_Aster_par_SD(NOM=NOM_GROUP_MA, NOM2=NOM_GROUP_MA_BORD, INCLUSE=INCLUSE) + + + # Creation de la SDFETI + if MODELE: + _tmp = [] + for i in range(NB_PART): + txt = { 'GROUP_MA': NOM_GROUP_MA + str(i) } + if ( NOM_GROUP_MA_BORD+str(i) in _part.ASTER['GROUP_MA_BORD'] ): + txt['GROUP_MA_BORD'] = NOM_GROUP_MA_BORD + str(i) + _tmp.append( txt ) + + motscle2= {'DEFI': _tmp } + + # Regeneration des mots-cles EXCIT passés en argument de la macro + if EXCIT: + dExcit=[] + for j in EXCIT : + dExcit.append(j.cree_dict_valeurs(j.mc_liste)) + for i in dExcit[-1].keys(): + if dExcit[-1][i]==None : del dExcit[-1][i] + motscle2['EXCIT']=dExcit + + _SDFETI=DEFI_PART_OPS(NOM='SDD', + MODELE=MODELE, + INFO=1, + **motscle2 + ); + else: + _SDFETI=None + + + # Fin : + print """ + + % FIN MACRO-COMMANDE: DEFI_PART_FETI + +""" + + return ier diff --git a/Aster/Cata/cataSTA7/Macro/fiabilite_fichier.py b/Aster/Cata/cataSTA7/Macro/fiabilite_fichier.py new file mode 100644 index 00000000..1462a5ec --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/fiabilite_fichier.py @@ -0,0 +1,335 @@ +#@ MODIF fiabilite_fichier Macro DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE GNICOLAS G.NICOLAS +# +class fiabilite_fichier : +# + """ Classe des fichiers de données des logiciels fiabilistes + Cette classe a été mise au point pour le couplage entre + Code_ASTER et MEFISTO, mais pourrait servir ailleurs. + """ +# +# +#==== +# 1. Le constructeur +#==== +# +# + def __init__ ( self, jdc, Rep_Calc_LOGICIEL_global, nomfic, info = 1 ) : +# +# jdc : le jeu de commandes en cours de traitement +# + self.jdc = jdc +# +# Rep_Calc_LOGICIEL_global : le répertoire d'exécution du logiciel de fiabilité +# + self.Rep_Calc_LOGICIEL_global = Rep_Calc_LOGICIEL_global +# +# nomfic : nom local du fichier à créer +# + self.nomfic = nomfic +# +# messages_erreur : messages d'erreur +# + self.messages_erreur = { 0 : "Tout va bien", + 1 : "==> Ce fichier est inconnu.", + 2 : "==> Ce type d'ouverture est inconnu.", + 10 : "==> Problème à l'ouverture.", + 11 : "==> Problème à la fermeture.", + 20 : "==> Problème à l'impression." } +# +# info : niveau d'information au sens ASTER +# + self.info = info +# +# ligne_sep : ligne de séparation +# + self.ligne_sep = "=========================================================" + self.ligne_commentaire = "#" + self.ligne_sep + "\n" +# + if info >= 2 : + print "Création du fichier : "+self.nomfic +# +#==== +# 2. Ouverture du fichier +#==== +# + def Ouvre_Fichier ( self, type_ouvr ) : +# +# 2.0. ==> Préalables +# + """ + Ouvre le fichier en lecture ou écriture. + 0 : tout s'est bien passé + 1 : on veut ouvrir en lecture un fichier qui n'existe pas + 2 : le mode d'ouverture est inconnu + 10 : impossible d'ouvrir + """ +# + import os +# +# 2.1. ==> Le nom global du fichier +# + self.nomfic_global = os.path.join(self.Rep_Calc_LOGICIEL_global,self.nomfic) +# +# 2.2. ==> Controles +# + erreur = 0 +# + if ( type_ouvr == "w" or type_ouvr == "r" ) : +# + if ( type_ouvr == "r" ) : + if not os.path.isfile(self.nomfic_global) : + erreur = 1 + + else : +# + self.jdc.cr.warn("Type d'ouverture : "+type_ouvr) + erreur = 2 +# +# 2.3. ==> Ouverture vraie +# + if not erreur : +# + erreur_partiel = [0] + try : + self.fic = open( self.nomfic_global, type_ouvr ) + except os.error,erreur_partiel : + self.jdc.cr.warn("Code d'erreur de open : " + str(erreur_partiel[0]) + " : " + erreur_partiel[1]) + erreur = 10 +# +# 2.4. ==> C'est fini +# + if erreur : + self.jdc.cr.warn("Fichier : "+self.nomfic) + self.jdc.cr.warn(self.messages_erreur[erreur]) +# + return erreur +# +#==== +# 3. Fermeture du fichier +#==== +# + def Ferme_Fichier ( self ) : +# +# 3.0. ==> Préalables +# + """ + Ferme le fichier. + 0 : tout s'est bien passé + 20 : impossible d'imprimer + """ +# + import os +# +# 3.1. ==> Controles +# + erreur = 0 +# + if not os.path.isfile(self.nomfic_global) : + erreur = 1 +# +# 3.2. ==> Fermeture vraie +# + if not erreur : +# + erreur_partiel = [0] + try : + self.fic.close( ) + except os.error,erreur_partiel : + self.jdc.cr.warn("Code d'erreur de close : " + str(erreur_partiel[0]) + " : " + erreur_partiel[1]) + erreur = 11 +# +# 3.3. ==> C'est fini +# + if erreur : + self.jdc.cr.warn("Fichier : "+self.nomfic) + self.jdc.cr.warn(self.messages_erreur[erreur]) +# + return erreur +# +#==== +# 4. Impression du contenu du fichier +#==== +# + def Imprime_Fichier ( self ) : +# +# 4.0. ==> Préalables +# + """ + Imprime le fichier. + 0 : tout s'est bien passé + 20 : impossible d'imprimer + """ +# +# 4.1. ==> Lecture +# + erreur = self.Ouvre_Fichier ( "r" ) + if not erreur : + les_lignes = self.fic.readlines() + erreur = self.Ferme_Fichier ( ) +# +# 4.2. ==> Impression +# + if not erreur : +# + print "\n"+self.ligne_sep + print "Contenu du fichier " + self.nomfic," :" + for ligne in les_lignes : + print ligne[:-1] + print self.ligne_sep+"\n" +# +# 4.4. ==> C'est fini +# + if erreur : + erreur = 20 + self.jdc.cr.warn("Fichier : "+self.nomfic) + self.jdc.cr.warn(self.messages_erreur[erreur]) +# + return erreur +# +#==== +# 5. Ecriture de lignes de commentaires +#==== +# + def Ecrit_Commentaires ( self, comm ) : +# + """ + Liste = commentaires à écrire + Soit c'est une chaine qu'on écrit sur une ligne ; + Soit c'est une liste, qu'on écrit à raison de une par ligne. + Remarque : cela suppose que le fichier est ouvert en écriture + """ +# + if type(comm) == type([ ]) : + Liste = comm + else : + Liste = [comm] +# + for ligne in Liste : + self.fic.write("# "+str(ligne)+"\n") +# +#==== +# 6. Ecriture de lignes de titres +#==== +# + def Ecrit_Titre ( self, comm ) : +# + """ + Liste = commentaires à écrire, encadrés par des séparateurs + Soit c'est une chaine qu'on écrit sur une ligne ; + Soit c'est une liste, qu'on écrit à raison de une par ligne. + Remarque : cela suppose que le fichier est ouvert en écriture + """ +# + self.fic.write(self.ligne_commentaire) + self.Ecrit_Commentaires(comm) + self.fic.write(self.ligne_commentaire) +# +#==== +# 7. Ecriture d'une ligne de valeurs +#==== +# + def Ecrit_Valeurs ( self, val ) : +# + """ + Liste = liste des valeurs à écrire, représenatn une ligne + Remarque : cela suppose que le fichier est ouvert en écriture + """ +# + if type(val) == type([ ]) : + ligne = " " + for aux in val : + ligne = ligne + " " + str(aux) + else : + ligne = str(val) +# + self.fic.write(ligne+"\n") +# +# +#======================================================================================= +#======================================================================================= + + +# +# +if __name__ == "__main__" : +# + import os + import sys + import tempfile +# +# 1. ==> Préalable +# + Rep_Calc_LOGICIEL_global = tempfile.mktemp() + os.mkdir(Rep_Calc_LOGICIEL_global) +# + jdc = None +# +# 2. ==> Création de la classe +# + nomfic = "dataGrad" + fic = fiabilite_fichier ( jdc, Rep_Calc_LOGICIEL_global , nomfic ) +# +# 3. ==> Ouverture du fichier +# + erreur = fic.Ouvre_Fichier ( "w" ) +# +# 4. ==> Remplissage du fichier +# + if not erreur : + aux = ["Titre 1", "Titre 2"] + fic.Ecrit_Titre (aux) + aux = ["Ligne 1", "Ligne 2"] + fic.Ecrit_Commentaires (aux) + aux = "Ligne en forme de chaine" + fic.Ecrit_Commentaires (aux) + aux = 1789.1792 + fic.Ecrit_Commentaires (aux) + aux = [1, 0.0] + fic.Ecrit_Valeurs (aux) + aux = 1958. + fic.Ecrit_Valeurs (aux) +# +# 5. ==> Fermeture du fichier +# + if not erreur : + erreur = fic.Ferme_Fichier ( ) +# +# 4. ==> Impression du fichier +# + if not erreur : + erreur = fic.Imprime_Fichier ( ) +# +# 4. ==> La fin +# + Liste = os.listdir(Rep_Calc_LOGICIEL_global) +# + for nomfic in Liste : + fic_total = os.path.join(Rep_Calc_LOGICIEL_global,nomfic) + os.chmod (fic_total,0755) + os.remove (fic_total) + os.rmdir (Rep_Calc_LOGICIEL_global) +# + if erreur : + mess = "Erreur " + str(erreur) + else : + mess = "Fin normale." + sys.exit(mess) diff --git a/Aster/Cata/cataSTA7/Macro/fiabilite_mefisto.py b/Aster/Cata/cataSTA7/Macro/fiabilite_mefisto.py new file mode 100644 index 00000000..3f820843 --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/fiabilite_mefisto.py @@ -0,0 +1,448 @@ +#@ MODIF fiabilite_mefisto Macro DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + + +# RESPONSABLE GNICOLAS G.NICOLAS +# +def fiabilite_mefisto ( self, Rep_Calc_LOGICIEL_global, + INFO, VERSION, + SEUIL, SEUIL_TYPE, + VARIABLE, + valeurs_lois, + **args ) : +# +# valeurs_lois est un dictionnaire indexé sur les variables. +# Chaque case, valeurs_lois[m], est un dictionnaire contenant : +# d["v_moy_physique"] = valeur moyenne physique +# d["v_moy_loi"] = valeur moyenne de la loi +# d["v_min_loi"] = valeur minimale de la loi +# d["v_max_loi"] = valeur maximale de la loi +# d["sigma_loi"] = ecart type de la loi +# +# args est le dictionnaire des arguments optionnels +# args.keys() est la liste des mots-clés +# args.keys()[0] est la premiere valeur de cette liste +# args.keys()[1:] est la liste des valeurs suivantes dans cette liste +# args.keys(mot_cle) représente le contenu de la variable mot_cle dans la macro appelante. +# + """ Ecriture des données spécifiques à MEFISTO. """ +# + from Macro import fiabilite_fichier + import os + import string +# +#____________________________________________________________________ +# +# 1. Préalables +#____________________________________________________________________ +# +# + messages_erreur = { 0 : "Tout va bien", + 1 : "Fichier inconnu.", + 2 : "Problème d'ouverture de fichier.", + 10 : "Problème d'ouverture de fichier.", + 11 : "Problème de fermeture de fichier.", + 20 : "Problème d'impression de fichier.", + 50 : "Donnée inacceptable.", + 100 : "Erreur." } +# + trad_oui_non = { "OUI" : 1, + "NON" : 0 } +# + erreur = 0 +# + while not erreur : +# +#____________________________________________________________________ +# +# 2. Les fichiers pour le logiciel de fiabilité +# Ils sont créés dans le répertoire d'exécution du logiciel de fiabilité, avec leurs noms officiels +#____________________________________________________________________ +# +# + fic_dataMenu = "dataMenu" + fic_dataStoch = "dataStoch" + fic_dataNum = "dataNum" + fic_dataGrad = "dataGrad" +# +#____________________________________________________________________ +# +# 3. Construction du fichier 'dataMenu' +#____________________________________________________________________ +# +# 3.1 ==> Ouverture du fichier +# + f_menu = fiabilite_fichier.fiabilite_fichier ( self, Rep_Calc_LOGICIEL_global, fic_dataMenu, INFO ) + erreur = f_menu.Ouvre_Fichier ( "w" ) + if erreur : + break +# +# 3.2 ==> Ecriture des données nécessaires +# + f_menu.Ecrit_Titre ("MENU DU PROGRAMME MEFISTO") + f_menu.Ecrit_Titre ("1 <=> OUI et 0 <=> NON (entiers)") +# + f_menu.Ecrit_Titre ("Recherche du point de conception") + aux = trad_oui_non[args["RECH_PT_CONCEPT"]] + f_menu.Ecrit_Valeurs (aux) +# + f_menu.Ecrit_Titre ("First Order Reliability Analyses") + aux = trad_oui_non[args["METHODE_FORM"]] + f_menu.Ecrit_Valeurs (aux) +# + f_menu.Ecrit_Titre ("Second Order Reliability Analyses") + aux = trad_oui_non[args["METHODE_SORM"]] + f_menu.Ecrit_Valeurs (aux) +# + f_menu.Ecrit_Titre ("Importance Sampling Analyses") + aux = trad_oui_non[args["TIRAGE_IMPORTANCE"]] + f_menu.Ecrit_Valeurs (aux) +# + f_menu.Ecrit_Titre ("Optimality Test (1) : Hessian Test") + aux = trad_oui_non[args["T_HESSIEN"]] + f_menu.Ecrit_Valeurs (aux) +# + f_menu.Ecrit_Titre ("Optimality Test (2) : Sphere Test") + aux = trad_oui_non[args["T_SPHERE"]] + f_menu.Ecrit_Valeurs (aux) +# + f_menu.Ecrit_Titre ("Optimality Test (3) : Strong Max Test") + aux = trad_oui_non[args["T_MAXIMUM_FORT"]] + f_menu.Ecrit_Valeurs (aux) +# + f_menu.Ecrit_Titre ("Experiment Plan") + aux = trad_oui_non[args["PLAN_EXPERIENCE"]] + f_menu.Ecrit_Valeurs (aux) +# + f_menu.Ecrit_Titre ("Polynomial Taylor Approximation (order 2)") + aux = trad_oui_non[args["POLYNOME_TAYLOR"]] + f_menu.Ecrit_Valeurs (aux) +# +# 3.3 ==> Fermeture du fichier +# + erreur = f_menu.Ferme_Fichier ( ) + if erreur : + break +# + if INFO >= 2 : + erreur = f_menu.Imprime_Fichier ( ) + if erreur : + break +# +#____________________________________________________________________ +# +# 4. Construction du fichier "dataStoch" +#____________________________________________________________________ +# +# 4.1 ==> Ouverture du fichier +# + f_stoch = fiabilite_fichier.fiabilite_fichier ( self, Rep_Calc_LOGICIEL_global, fic_dataStoch, INFO ) + erreur = f_stoch.Ouvre_Fichier ( "w" ) + if erreur : + break +# +# 4.2 ==> Nombre d'occurence de VARIABLE +# + nb_occu_variable = len(VARIABLE) +# +# 4.3 ==> Ecriture des données nécessaires +# + f_stoch.Ecrit_Titre ("Code name") + aux=string.replace(VERSION,"_",".") + aux=string.replace(aux,"N","n") + aux=string.replace(aux,"V","v") + f_stoch.Ecrit_Valeurs ( "aster_" + aux ) +# + aux = [ "Gradients evaluated by the code" ] + aux.append("1 : Au moins 1 ; 0 : aucun") + f_stoch.Ecrit_Titre (aux) + gradient = 0 + for m in VARIABLE : + if m["GRADIENT"] == "OUI" : gradient = 1 + f_stoch.Ecrit_Valeurs (gradient) +# + f_stoch.Ecrit_Titre ("Variates number") + f_stoch.Ecrit_Valeurs ( nb_occu_variable ) +# + aux = [ "Stochastic Variates" ] + aux.append("1: Uniforme (min, max)") + aux.append("2: Normal (mean, std dev)") + aux.append("3: LogNormal (mean, std dev, min)") + aux.append("4: Normal Truncated (mean, std dev, min, max)") + f_stoch.Ecrit_Titre (aux) +# + for m in VARIABLE : +# + d = valeurs_lois[m] + if m["LOI"] == "UNIFORME" : + f_stoch.Ecrit_Valeurs ( [ m["NOM"], 1 , d["v_min_loi"] , d["v_max_loi"] ] ) + elif m["LOI"] == "NORMALE" : + f_stoch.Ecrit_Valeurs ( [ m["NOM"], 2 , d["v_moy_loi"] , d["sigma_loi"] ] ) + elif m["LOI"] == "LOGNORMALE" : + f_stoch.Ecrit_Valeurs ( [ m["NOM"], 3 , d["v_moy_loi"] , d["sigma_loi"] , d["v_min_loi"] ] ) + elif m["LOI"] == "NORMALE_TRONQUEE" : + f_stoch.Ecrit_Valeurs ( [ m["NOM"], 4 , d["v_moy_loi"] , d["sigma_loi"] , d["v_min_loi"] , d["v_max_loi"] ] ) + else : + erreur = 50 +# + if erreur : + break +# + f_stoch.Ecrit_Titre ("Initial Points") + for m in VARIABLE : + if m["POINT_INI"] is None : + aux = valeurs_lois[m]["v_moy_physique"] + else : + aux = m["POINT_INI"] + f_stoch.Ecrit_Valeurs ( aux ) +# + f_stoch.Ecrit_Titre ("Reference Points") + for m in VARIABLE : + if m["POINT_REF"] is None : + aux = valeurs_lois[m]["v_moy_physique"] + else : + aux = m["POINT_REF"] + f_stoch.Ecrit_Valeurs ( aux ) +# + f_stoch.Ecrit_Titre ("Design Points") + for m in VARIABLE : + if args["RECH_PT_CONCEPT"] == "OUI" : + aux = 1792. + elif m["POINT_CONCEPT"] is None : + aux = valeurs_lois[m]["v_moy_physique"] + else : + aux = m["POINT_CONCEPT"] + f_stoch.Ecrit_Valeurs ( aux ) +# + f_stoch.Ecrit_Titre ("Correlation matrix fictive") + for m in range(nb_occu_variable) : + aux = [ ] + for n in range(nb_occu_variable) : + aux.append(args["MATRICE"][n + m*nb_occu_variable]) + f_stoch.Ecrit_Valeurs ( aux ) +# + f_stoch.Ecrit_Titre ("Parameter threshold value") + if SEUIL_TYPE == "MAXIMUM" : + aux = SEUIL + else : + aux = -SEUIL + f_stoch.Ecrit_Valeurs ( aux ) +# +# 4.4 ==> Fermeture du fichier +# + erreur = f_stoch.Ferme_Fichier ( ) + if erreur : + break +# + if INFO >= 2 : + erreur = f_stoch.Imprime_Fichier ( ) + if erreur : + break +# +#____________________________________________________________________ +# +# 5. Construction du fichier 'dataNum' +#____________________________________________________________________ +# +# 5.1 ==> Ouverture du fichier +# + f_num = fiabilite_fichier.fiabilite_fichier ( self, Rep_Calc_LOGICIEL_global, fic_dataNum, INFO ) + erreur = f_num.Ouvre_Fichier ( "w" ) + if erreur : + break +# +# 5.2 ==> Ecriture des données nécessaires +# + f_num.Ecrit_Titre ("Parameters : EpsU, EpsG, Tau, Omega, iterMax") + if args["RECH_PT_CONCEPT"] == "OUI" : + f_num.Ecrit_Valeurs (args["EPSILON_U"]) + f_num.Ecrit_Valeurs (args["EPSILON_G"]) + f_num.Ecrit_Valeurs (args["TAU"]) + f_num.Ecrit_Valeurs (args["OMEGA"]) + f_num.Ecrit_Valeurs (args["ITER_MAX"]) + else : + aux = 0.1848 + for k in range(5) : + f_num.Ecrit_Valeurs (aux) +# + f_num.Ecrit_Titre ("Parameters : hgrad, hhess") + f_num.Ecrit_Valeurs (args["HGRAD"]) + f_num.Ecrit_Valeurs (args["HHESS"]) +# + aux = [ "Parameter Optimality Test(sphere)" ] + aux.append("1: Parametric Method (Point Number in each direction)") + aux.append("2: Gaussian Method (Total Point Number)") + aux.append("3: Rejection Method (Total Point Number)") + f_num.Ecrit_Titre (aux) +# + if args["T_SPHERE"] == "OUI" : +# + if args["METHODE_TEST"] == "PARAMETRIQUE" : + aux1 = 1 + elif args["METHODE_TEST"] == "GAUSSIENNE" : + aux1 = 2 + elif args["METHODE_TEST"] == "REJECTION" : + aux1 = 3 + else : + self.cr.warn("METHODE DE TEST : "+args["METHODE_TEST"]) + erreur = 50 + break +# + aux2 = args["NB_POINT"] +# + else : +# +# remarque : il faut mettre une valeur plausible en aux1, sinon plantage violent ... + aux1 = 1 + aux2 = 1789 +# + f_num.Ecrit_Valeurs ( [ aux1 , aux2 ] ) +# + aux = [ "Parameters : alpha, beta" ] + aux.append("alpha: common net") + aux.append("beta: extreme net") + f_num.Ecrit_Titre (aux) + if args["PLAN_EXPERIENCE"] == "OUI" : + aux1 = args["ALPHA"] + aux2 = args["BETA"] + else : + aux1 = 1789.0 + aux2 = 1789.0 + f_num.Ecrit_Valeurs ( aux1 ) + f_num.Ecrit_Valeurs ( aux2 ) +# + f_num.Ecrit_Titre ("Parameters Strong Max Test : cosLim, dProb") + if args["T_MAXIMUM_FORT"] == "OUI" : + aux1 = args["COS_LIM"] + aux2 = args["DPROB"] + else : + aux1 = 0.1789 + aux2 = 0.1789 + f_num.Ecrit_Valeurs ( aux1 ) + f_num.Ecrit_Valeurs ( aux2 ) +# + f_num.Ecrit_Titre ("Parameter Importance Samplings : Simulation Number") + if args["TIRAGE_IMPORTANCE"] == "OUI" : + aux = args["NB_SIMULATION"] + else : + aux = 1945 + f_num.Ecrit_Valeurs ( aux ) +# +# 5.3 ==> Fermeture du fichier +# + erreur = f_num.Ferme_Fichier ( ) + if erreur : + break +# + if INFO >= 2 : + erreur = f_num.Imprime_Fichier ( ) + if erreur : + break +# +#____________________________________________________________________ +# +# 6. Construction du fichier 'dataGrad' +#____________________________________________________________________ +# +# 6.1 ==> Création du fichier +# + f_grad = fiabilite_fichier.fiabilite_fichier ( self, Rep_Calc_LOGICIEL_global, fic_dataGrad, INFO ) + erreur = f_grad.Ouvre_Fichier ( "w" ) + if erreur : + break +# +# 6.2 ==> Ecriture des données nécessaires +# + f_grad.Ecrit_Titre ("Commentaires") +# + for m in VARIABLE : + f_grad.Ecrit_Commentaires (m["NOM"]) + if m["GRADIENT"] == "OUI" : + gradient = 1 + increment = 0.0 + else : + gradient = 0 + increment = m["INCREMENT"] + aux = [gradient,increment] + f_grad.Ecrit_Valeurs (aux) +# +# 6.3 ==> Fermeture du fichier +# + erreur = f_grad.Ferme_Fichier ( ) + if erreur : + break +# + if INFO >= 2 : + erreur = f_grad.Imprime_Fichier ( ) + if erreur : + break +# +#____________________________________________________________________ +# +# 7. C'est fini ! +#____________________________________________________________________ +# + break +# + if erreur : + if not messages_erreur.has_key(erreur) : + erreur = 100 + self.cr.warn(messages_erreur[erreur]) + erreur = 11 +# + return erreur +# +########################## Fin de la fonction################################## +# +########################## Auto-test################################## +# +if __name__ == "__main__" : +# + import os + import sys + import tempfile +# + Rep_Calc_LOGICIEL_global = tempfile.mktemp() + os.mkdir(Rep_Calc_LOGICIEL_global) +# + INFO = 2 + VERSION = "V3_2" + SEUIL = 1789. + SEUIL_TYPE = "MAXIMUM" + VARIABLE = [] + args = {} + valeurs = {} +# + erreur = fiabilite_mefisto ( None, Rep_Calc_LOGICIEL_global, + INFO, VERSION, + SEUIL, SEUIL_TYPE, + VARIABLE, + valeurs, + **args ) +### print "Erreur = ", erreur + Liste = os.listdir(Rep_Calc_LOGICIEL_global) +# + for nomfic in Liste : + fic_total = os.path.join(Rep_Calc_LOGICIEL_global,nomfic) + os.chmod (fic_total,0755) + os.remove (fic_total) + os.rmdir (Rep_Calc_LOGICIEL_global) +# + sys.exit("blabla") diff --git a/Aster/Cata/cataSTA7/Macro/impr_fonction_ops.py b/Aster/Cata/cataSTA7/Macro/impr_fonction_ops.py new file mode 100644 index 00000000..1e9d6e49 --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/impr_fonction_ops.py @@ -0,0 +1,400 @@ +#@ MODIF impr_fonction_ops Macro DATE 11/05/2005 AUTEUR MCOURTOI M.COURTOIS +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +# RESPONSABLE MCOURTOI M.COURTOIS + +import os.path + +# ------------------------------------------------------------------------------ +def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args): + """ + Macro IMPR_FONCTION permettant d'imprimer dans un fichier des fonctions, + colonnes de table... + Erreurs dans IMPR_FONCTION pour ne pas perdre la base. + """ + macro='IMPR_FONCTION' + import aster + from Accas import _F + from Utilitai import Graph + from Utilitai.Utmess import UTMESS + from Utilitai.UniteAster import UniteAster + ier=0 + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + # On importe les definitions des commandes a utiliser dans la macro + # Le nom de la variable doit etre obligatoirement le nom de la commande + CALC_FONC_INTERP = self.get_cmd('CALC_FONC_INTERP') + DEFI_LIST_REEL = self.get_cmd('DEFI_LIST_REEL') + DETRUIRE = self.get_cmd('DETRUIRE') + + #---------------------------------------------- + # 0. Traitement des arguments, initialisations + # unité logique des fichiers réservés + ul_reserve=(8,) + UL = UniteAster() + + # 0.1. Fichier + nomfich=None + if args['UNITE'] and args['UNITE']<>6: + nomfich=UL.Nom(args['UNITE']) + if INFO==2: + print ' Nom du fichier :',nomfich + if nomfich and os.path.exists(nomfich) and os.stat(nomfich).st_size<>0: + if FORMAT=='XMGRACE': + niv='A' + else: + niv='I' + UTMESS(niv,macro,'Le fichier '+nomfich+' existe déjà, on écrit ' \ + 'à la suite.') + + # 0.2. Récupération des valeurs sous COURBE + unparmi=('FONCTION','LIST_RESU','FONC_X','ABSCISSE') + + # i0 : indice du mot-clé facteur qui contient LIST_PARA, sinon i0=0 + i0=0 + Courbe=[] + iocc=-1 + for Ci in COURBE: + iocc+=1 + dC = Ci.cree_dict_valeurs(Ci.mc_liste) + if dC.has_key('LIST_PARA') and dC['LIST_PARA']!=None and i0==0: + i0=iocc + for mc in dC.keys(): + if dC[mc]==None: del dC[mc] + Courbe.append(dC) + if INFO==2: + print ' Nombre de fonctions à analyser : ',len(Courbe) + + # 0.3. Devra-t-on interpoler globalement ? + # Dans ce cas, linter__ est le LIST_PARA + # ou, à défaut, les abscisses de la première courbe + interp=False + if FORMAT=='TABLEAU': + interp=True + dCi=Courbe[i0] + if dCi.has_key('LIST_PARA'): + linter__=dCi['LIST_PARA'] + else: + obj=None + for typi in unparmi: + if dCi.has_key(typi): + obj=dCi[typi] + typ=obj.__class__.__name__ + break + if obj==None: + UTMESS('S',macro,'incohérence entre le catalogue et la macro.') + if typi=='FONCTION': + if typ=='nappe_sdaster': + lpar,lval=obj.Valeurs() + linterp=lval[0][0] + else: + linterp=obj.Valeurs()[0] + elif typi=='FONC_X': + lbid,linterp=obj.Valeurs() + elif typi=='ABSCISSE': + linterp=obj + linter__=DEFI_LIST_REEL(VALE=linterp) + if INFO==2: + print ' Interpolation globale sur la liste :\n',linter__.Valeurs() + + + #---------------------------------------------- + # 1. Récupération des valeurs des N courbes sous forme + # d'une liste de N listes + #---------------------------------------------- + graph=Graph.Graph() + iocc=-1 + for dCi in Courbe: + iocc+=1 + + # 1.1. Type d'objet à traiter + obj=None + for typi in unparmi: + if dCi.has_key(typi): + obj=dCi[typi] + typ=obj.__class__.__name__ + break + if not dCi.has_key('LEGENDE') and hasattr(obj,'get_name'): + dCi['LEGENDE']=obj.get_name() + if obj==None: + UTMESS('S',macro,'incohérence entre le catalogue et la macro.') + + # 1.2. Extraction des valeurs + + # 1.2.1. Mot-clé FONCTION + if typi=='FONCTION': + if typ=='nappe_sdaster': + lpar,lval=obj.Valeurs() + dico,ldicf=obj.Parametres() + Leg=dCi['LEGENDE'] + for i in range(len(lpar)): + p=lpar[i] + lx=lval[i][0] + ly=lval[i][1] + # sur quelle liste interpoler chaque fonction + if i==0: + if interp: + li__=linter__ + elif dCi.has_key('LIST_PARA'): + li__=dCi['LIST_PARA'] + else: + li__=DEFI_LIST_REEL(VALE=lx) + # compléter les paramètres d'interpolation + dic=dico.copy() + dic.update(ldicf[i]) + + if (interp or dCi.has_key('LIST_PARA')) and i>0: + ftmp__=CALC_FONC_INTERP( + FONCTION=obj, + VALE_PARA=p, + LIST_PARA_FONC=li__, + **dic + ) + pv,lv2=ftmp__.Valeurs() + lx=lv2[0][0] + ly=lv2[0][1] + # on stocke les données dans le Graph + nomresu=dic['NOM_RESU'].strip()+'_'+str(len(graph.Legendes)) + dicC={ + 'Val' : [lx,ly], + 'Lab' : [dic['NOM_PARA_FONC'],nomresu] + } + # ajoute la valeur du paramètre + dCi['LEGENDE'] = '%s %s=%g' % (Leg,dic['NOM_PARA'].strip(),p) + Graph.AjoutParaCourbe(dicC, args=dCi) + graph.AjoutCourbe(**dicC) + DETRUIRE(CONCEPT=_F(NOM=('li__','ftmp__'),),ALARME='NON',INFO=1) + else: + ftmp__=obj + dpar=ftmp__.Parametres() + if interp: + ftmp__=CALC_FONC_INTERP( + FONCTION=obj, + LIST_PARA=linter__, + **dpar + ) + elif dCi.has_key('LIST_PARA'): + ftmp__=CALC_FONC_INTERP( + FONCTION=obj, + LIST_PARA=dCi['LIST_PARA'], + **dpar + ) + lval=list(ftmp__.Valeurs()) + lx=lval[0] + lr=lval[1] + if typ=='fonction_c' and dCi.has_key('PARTIE'): + if dCi['PARTIE']=='IMAG' : lr=lval[2] + # on stocke les données dans le Graph + if typ=='fonction_c' and not dCi.has_key('PARTIE'): + nomresu=dpar['NOM_RESU'].strip()+'_'+str(len(graph.Legendes)) + dicC={ + 'Val' : lval, + 'Lab' : [dpar['NOM_PARA'],nomresu+'_R',nomresu+'_I'] + } + else: + nomresu=dpar['NOM_RESU'].strip()+'_'+str(len(graph.Legendes)) + dicC={ + 'Val' : [lx,lr], + 'Lab' : [dpar['NOM_PARA'],nomresu] + } + Graph.AjoutParaCourbe(dicC, args=dCi) + graph.AjoutCourbe(**dicC) + + # 1.2.2. Mot-clé LIST_RESU + elif typi=='LIST_RESU': + if interp and iocc>0: + UTMESS('S',macro,"""Il n'y a pas de règles d'interpolation pour LIST_PARA/LIST_RESU, + LIST_PARA/LIST_RESU ne peut donc apparaitre qu'une seule fois + et à la première occurence de COURBE""") + lx=dCi['LIST_PARA'].Valeurs() + lr=obj.Valeurs() + if len(lx)<>len(lr): + UTMESS('S',macro,"LIST_PARA et LIST_RESU n'ont pas la meme taille") + # on stocke les données dans le Graph + dicC={ + 'Val' : [lx,lr], + 'Lab' : [dCi['LIST_PARA'].get_name(),obj.get_name()] + } + Graph.AjoutParaCourbe(dicC, args=dCi) + graph.AjoutCourbe(**dicC) + + # 1.2.3. Mot-clé FONC_X + # exemple : obj(t)=sin(t), on imprime x=sin(t), y=cos(t) + # ob2(t)=cos(t) + elif typi=='FONC_X': + ob2=dCi['FONC_Y'] + # peut-on blinder au niveau du catalogue + if typ=="nappe_sdaster" or ob2.__class__.__name__=="nappe_sdaster": + UTMESS('S',macro,"FONC_X/FONC_Y ne peuvent pas etre des nappes !") + if interp and iocc>0: + UTMESS('S',macro,"""Au format 'TABLEAU' ,FONC_X/FONC_Y ne peut apparaitre qu'une seule fois + et à la première occurence de COURBE""") + ftmp__=obj + dpar=ftmp__.Parametres() + ftm2__=ob2 + dpa2=ftm2__.Parametres() + intloc=False + if interp and not dCi.has_key('LIST_PARA'): + # dans ce cas, linter__ contient les ordonnées de FONC_X + intloc=False + li__=linter__ + elif dCi.has_key('LIST_PARA'): + intloc=True + li__=dCi['LIST_PARA'] + if intloc: + ftmp__=CALC_FONC_INTERP( + FONCTION=obj, + LIST_PARA=li__, + **dpar + ) + lt,lx=ftmp__.Valeurs() + ftm2__=CALC_FONC_INTERP( + FONCTION=ob2, + LIST_PARA=li__, + **dpa2 + ) + else: + lt,lx=ftmp__.Valeurs() + li__=DEFI_LIST_REEL(VALE=lt) + ftm2__=CALC_FONC_INTERP( + FONCTION=ob2, + LIST_PARA=li__, + **dpa2 + ) + + lbid,ly=ftm2__.Valeurs() + # on stocke les données dans le Graph + # on imprime la liste des paramètres seulement si LIST_PARA + if intloc: + nomresur=dpar['NOM_RESU'].strip()+'_'+str(len(graph.Legendes)) + nomresu2=dpa2['NOM_RESU'].strip()+'_'+str(len(graph.Legendes)+1) + dicC={ + 'Val' : [lt,lx,ly], + 'Lab' : [dpar['NOM_PARA'],nomresur,nomresu2] + } + else: + nomresur=dpar['NOM_RESU'].strip()+'_'+str(len(graph.Legendes)) + nomresu2=dpa2['NOM_RESU'].strip()+'_'+str(len(graph.Legendes)+1) + dicC={ + 'Val' : [lx,ly], + 'Lab' : [nomresur,nomresu2] + } + Graph.AjoutParaCourbe(dicC, args=dCi) + graph.AjoutCourbe(**dicC) + + # 1.2.4. Mot-clé ABSCISSE / ORDONNEE + elif typi=='ABSCISSE': + if interp and iocc>0: + UTMESS('S',macro,"""Il n'y a pas de règles d'interpolation pour ABSCISSE/ORDONNEE, + ABSCISSE/ORDONNEE ne peut donc apparaitre qu'une seule fois + et à la première occurence de COURBE""") + lx=obj + lr=dCi['ORDONNEE'] + if len(lx)<>len(lr): + UTMESS('S',macro,"ABSCISSE et ORDONNEE n'ont pas la meme taille") + # on stocke les données dans le Graph + dicC={ + 'Val' : [lx,lr], + 'Lab' : ['Absc','Ordo'] + } + Graph.AjoutParaCourbe(dicC, args=dCi) + graph.AjoutCourbe(**dicC) + + # 1.2.9. ménage + DETRUIRE(CONCEPT=_F(NOM=('li__','ftmp__','ftm2__'),),ALARME='NON',INFO=1) + + # 1.2.99. ménage hors boucle + DETRUIRE(CONCEPT=_F(NOM=('linter__'),), ALARME='NON',INFO=1) + + # 1.3. dbg + if INFO==2: + print '\n'+'-'*70+'\n Contenu du Graph : \n'+'-'*70 + print graph + print '-'*70+'\n' + + #---------------------------------------------- + # 2. Impression du 'tableau' de valeurs + #---------------------------------------------- + + # 2.0. Surcharge des propriétés du graphique et des axes + # (bloc quasiment identique dans Table) + if args['TITRE']<>None: graph.Titre=args['TITRE'] + if args['SOUS_TITRE']<>None: graph.SousTitre=args['SOUS_TITRE'] + if FORMAT in ('XMGRACE','AGRAF'): + if args['BORNE_X']<>None: + graph.Min_X=args['BORNE_X'][0] + graph.Max_X=args['BORNE_X'][1] + if args['BORNE_Y']<>None: + graph.Min_Y=args['BORNE_Y'][0] + graph.Max_Y=args['BORNE_Y'][1] + if args['LEGENDE_X']<>None: graph.Legende_X=args['LEGENDE_X'] + if args['LEGENDE_Y']<>None: graph.Legende_Y=args['LEGENDE_Y'] + if args['ECHELLE_X']<>None: graph.Echelle_X=args['ECHELLE_X'] + if args['ECHELLE_Y']<>None: graph.Echelle_Y=args['ECHELLE_Y'] + if args['GRILLE_X']<>None: graph.Grille_X=args['GRILLE_X'] + if args['GRILLE_Y']<>None: graph.Grille_Y=args['GRILLE_Y'] + + kargs={ + 'FORMAT' : FORMAT, + 'FICHIER' : nomfich, + } + + # 2.1. au format TABLEAU + if FORMAT=='TABLEAU': + # surcharge par les formats de l'utilisateur + kargs['dform']={ + 'csep' : args['SEPARATEUR'], + 'ccom' : args['COMMENTAIRE'], + 'cdeb' : args['DEBUT_LIGNE'], + 'cfin' : args['FIN_LIGNE'] + } + + # 2.2. au format AGRAF + elif FORMAT=='AGRAF': + nomdigr=None + if args['UNITE_DIGR']<>6: + nomdigr=UL.Nom(args['UNITE_DIGR']) + kargs['FICHIER']=[nomfich, nomdigr] + kargs['dform']={ 'formR' : '%12.5E' } + + # 2.3. au format XMGRACE et dérivés + elif FORMAT=='XMGRACE': + kargs['dform']={ 'formR' : '%.8g' } + kargs['PILOTE']=args['PILOTE'] + + # 2.39. Format inconnu + else: + UTMESS('S',macro,'Format inconnu : '+FORMAT) + + # Traiter le cas des UL réservées + if args['UNITE'] and args['UNITE'] in ul_reserve: + UL.Etat(args['UNITE'], etat='F') + if FORMAT=='AGRAF' and args['UNITE_DIGR']<>args['UNITE'] \ + and args['UNITE_DIGR'] in ul_reserve: + UL.Etat(args['UNITE_DIGR'], etat='F') + + # 2.4. On trace ! + graph.Trace(**kargs) + + # 99. Traiter le cas des UL réservées + UL.EtatInit() + + return ier diff --git a/Aster/Cata/cataSTA7/Macro/impr_table_ops.py b/Aster/Cata/cataSTA7/Macro/impr_table_ops.py new file mode 100644 index 00000000..ef5872f8 --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/impr_table_ops.py @@ -0,0 +1,247 @@ +#@ MODIF impr_table_ops Macro DATE 10/10/2005 AUTEUR MCOURTOI M.COURTOIS +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +# RESPONSABLE MCOURTOI M.COURTOIS + +import os.path +import re + +from types import ListType, TupleType, StringTypes +EnumTypes=(ListType, TupleType) + + +# ------------------------------------------------------------------------------ +def impr_table_ops(self, FORMAT, TABLE, INFO, **args): + """ + Macro IMPR_TABLE permettant d'imprimer une table dans un fichier. + Erreurs dans IMPR_TABLE pour ne pas perdre la base. + """ + macro='IMPR_TABLE' + import aster + from Accas import _F + from Cata.cata import table_jeveux + from Utilitai.Utmess import UTMESS + from Utilitai.UniteAster import UniteAster + ier=0 + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + # On importe les definitions des commandes a utiliser dans la macro + # Le nom de la variable doit etre obligatoirement le nom de la commande + DETRUIRE = self.get_cmd('DETRUIRE') + RECU_FONCTION = self.get_cmd('RECU_FONCTION') + + #---------------------------------------------- + # 0. Traitement des arguments, initialisations + # unité logique des fichiers réservés + ul_reserve=(8,) + UL = UniteAster() + + # 0.1. Fichier + nomfich=None + if args['UNITE'] and args['UNITE']<>6: + nomfich=UL.Nom(args['UNITE']) + if nomfich and os.path.exists(nomfich) and os.stat(nomfich).st_size<>0: + if FORMAT=='XMGRACE': + UTMESS('A',macro,'Le fichier '+nomfich+' existe déjà, on écrit ' \ + 'à la suite.') + + # 0.2. Création des dictionnaires des FILTRES + Filtre=[] + if args['FILTRE']: + for Fi in args['FILTRE']: + dF = Fi.cree_dict_valeurs(Fi.mc_liste) + for mc in dF.keys(): + if dF[mc]==None: del dF[mc] + Filtre.append(dF) + # format pour l'impression des filtres + form_filtre='\nFILTRE -> NOM_PARA: %-16s CRIT_COMP: %-4s VALE: %s' + + # 0.3. Création de la liste des tables (une seule sans SENSIBILITE) + form_sens='\n... SENSIBILITE AU PARAMETRE %s' + ltab=[] + if args['SENSIBILITE']: + nmemo='&NOSENSI.MEMO.CORR'.ljust(24) + vect=aster.getvectjev(nmemo) + if vect: + lps=args['SENSIBILITE'] + if not type(lps) in EnumTypes: + lps=[lps,] + for ps in [ps.get_name() for ps in lps]: + trouv=False + for ch in vect[0:len(vect):2]: + if ch[0:8].strip()==TABLE.get_name() and ch[8:16].strip()==ps: + trouv=True + ncomp=ch[16:24].strip() + sdtab=table_jeveux(ncomp) + tabs=sdtab.EXTR_TABLE() + tabs.titr+=form_sens % ps + ltab.append([tabs, sdtab]) + if not trouv: + UTMESS('A',macro,'Dérivée de %s par rapport à %s non disponible'\ + % (TABLE.get_name(), ps)) + else: + UTMESS('A',macro,'Pas de calcul de sensibilité accessible.') + else: + ltab.append([TABLE.EXTR_TABLE(), TABLE]) + + if len(ltab)<1: + return ier + + # 0.4.1. liste des paramètres à conserver + nom_para=ltab[0][0].para + if args['NOM_PARA']: + nom_para=args['NOM_PARA'] + if not type(nom_para) in EnumTypes: + nom_para=[nom_para,] + + # 0.4.2. Traiter le cas des UL réservées + if args['UNITE'] and args['UNITE'] in ul_reserve: + UL.Etat(args['UNITE'], etat='F') + + #---------------------------------------------- + # Boucle sur les tables + for tab, sdtab in ltab: + + # ----- 1. Infos de base + if INFO==2: + print 'IMPRESSION DE LA TABLE : %s' % sdtab.get_name() + + if args['TITRE']: + tab.titr=args['TITRE'] + '\n' + tab.titr + + # ----- 2. Filtres + for Fi in Filtre: + col = getattr(tab, Fi['NOM_PARA']) + # peu importe le type + opts=[Fi[k] for k in ('VALE','VALE_I','VALE_C','VALE_K') if Fi.has_key(k)] + kargs={} + for k in ('CRITERE','PRECISION'): + if Fi.has_key(k): + kargs[k]=Fi[k] + tab = tab & ( getattr(col, Fi['CRIT_COMP'])(*opts,**kargs) ) + # trace l'operation dans le titre + #if FORMAT in ('TABLEAU','ASTER'): + tab.titr+=form_filtre % (Fi['NOM_PARA'], Fi['CRIT_COMP'], \ + ' '.join([str(v) for v in opts])) + + # ----- 3. Tris + if args['TRI']: + # une seule occurence de TRI + T0=args['TRI'][0] + dT=T0.cree_dict_valeurs(T0.mc_liste) + tab.sort(CLES=dT['NOM_PARA'], ORDRE=dT['ORDRE']) + + # ----- 4. Impression + # vérification des paramètres + for p in nom_para: + if not p in tab.para: + UTMESS('A', 'IMPR_TABLE', 'Paramètre absent de la table : %s' % p) + + # sélection des paramètres + timp=tab[nom_para] + + # passage des mots-clés de mise en forme à la méthode Impr + kargs=args.copy() + kargs.update({ + 'FORMAT' : FORMAT, + 'FICHIER' : nomfich, + 'dform' : {}, + }) + # pour l'impression des fonctions + kfonc={ + 'FORMAT' : FORMAT, + 'FICHIER' : nomfich, + } + + # 4.1. au format AGRAF + if FORMAT=='AGRAF': + kargs['dform']={ 'formR' : '%12.5E' } + kfonc['FORMAT']='TABLEAU' + + # 4.2. au format XMGRACE et dérivés + elif FORMAT=='XMGRACE': + kargs['dform']={ 'formR' : '%.8g' } + kargs['PILOTE']=args['PILOTE'] + kfonc['PILOTE']=args['PILOTE'] + + # 4.3. format spécifié dans les arguments + if args['FORMAT_R']: + kargs['dform'].update({ 'formR' : fmtF2PY(args['FORMAT_R']) }) + + # 4.4. regroupement par paramètre : PAGINATION + if args['PAGINATION']: + l_ppag=args['PAGINATION'] + if not type(l_ppag) in EnumTypes: + l_ppag=[l_ppag,] + kargs['PAGINATION'] = [p for p in l_ppag if p in nom_para] + l_para_err = [p for p in l_ppag if not p in nom_para] + if len(l_para_err)>0: + UTMESS('A', 'IMPR_TABLE', 'Paramètres absents de la table (ou de '\ + 'NOM_PARA) : %s' % ', '.join(l_para_err)) + + timp.Impr(**kargs) + + # ----- 5. IMPR_FONCTION='OUI' + if args['IMPR_FONCTION'] and args['IMPR_FONCTION']=='OUI': + # cherche parmi les cellules celles qui contiennent un nom de fonction + dfon={} + for row in timp: + for par,cell in row.items(): + if type(cell) in StringTypes: + if aster.getvectjev(cell.strip().ljust(19)+'.PROL')<>None: + dfon[cell.strip().ljust(19)]=par + # impression des fonctions trouvées + for f,par in dfon.items(): + __fonc=RECU_FONCTION( + TABLE=sdtab, + FILTRE=_F( + NOM_PARA=par, + VALE_K=f, + ), + NOM_PARA_TABL=par, + ) + __fonc.Trace(**kfonc) + DETRUIRE(CONCEPT=_F(NOM=('__fonc',),), ALARME='NON', INFO=1,) + + # 99. Traiter le cas des UL réservées + UL.EtatInit() + + return ier + +# ------------------------------------------------------------------------------ +def fmtF2PY(fformat): + """Convertit un format Fortran en format Python (printf style). + Gère uniquement les fortrans réels, par exemple : E12.5, 1PE13.6, D12.5... + """ + fmt='' + matP=re.search('([0-9]+)P',fformat) + if matP: + fmt+=' '*int(matP.group(1)) + matR=re.search('([eEdDfFgG]{1})([\.0-9]+)',fformat) + if matR: + fmt+='%'+matR.group(2)+re.sub('[dD]+','E',matR.group(1)) + try: + s=fmt % -0.123 + except (ValueError, TypeError), msg: + fmt='%12.5E' + print 'Error :',msg + print 'Format par défaut utilisé :',fmt + return fmt diff --git a/Aster/Cata/cataSTA7/Macro/lire_fonction_ops.py b/Aster/Cata/cataSTA7/Macro/lire_fonction_ops.py new file mode 100644 index 00000000..0285487f --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/lire_fonction_ops.py @@ -0,0 +1,268 @@ +#@ MODIF lire_fonction_ops Macro DATE 26/05/2005 AUTEUR MCOURTOI M.COURTOIS +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +import os.path, Numeric + +# ------------------------------------------------------------------------------ +def lire_blocs(nomfich, SEPAR): + """Retourne la liste des blocs + """ + def info(ib, nlig, ncol): + """Affiche les infos d'un bloc""" + print " . Bloc %2d : %6d lignes, %6d colonnes" % (ib, nlig, ncol) + print " Lecture des blocs du fichier '%s'" % nomfich + fich=open(nomfich, 'r') + ier=0 + message = '' + if SEPAR=='None' : SEPAR=None + blocs = [] + lignes = [] + llen=0 + il=0 + for line in fich: + il+=1 + try: + if line.strip()=='': + raise ValueError + splin = line.split(SEPAR) + lignes.append(map(float, splin)) + if llen==0: + llen=len(splin) + elif len(splin)<>llen: + ier+=1 + message='Ligne %d : %d champs au lieu de %d attendus' % (il,len(splin),llen) + return ier, message, [] + except ValueError: + if lignes==[]: + pass # dans ce cas, on a plusieurs lignes délimitant 2 fonctions + else: + blocs.append(Numeric.array(lignes)) + info(len(blocs), len(lignes), llen) + lignes=[] + llen=0 + fich.close() + if lignes!=[] : + blocs.append(Numeric.array(lignes)) + info(len(blocs), len(lignes), llen) + return ier, message, blocs + +# ------------------------------------------------------------------------------ +def liste_double(nomfich,INDIC_PARA,INDIC_RESU,SEPAR): + """Méthode de construction du VALE pour le format libre + format LIBRE + Les lignes contenant autre chose que des séquences de nombres + réels et de séparateurs sont considérées comme délimitant deux + fonctions différentes. Cette situation correspond à l exception + ValueError levée par le map de float. Le deuxieme indice de + INDIC_PARA et INDIC_RESU est l indice permettant de pointer sur la + fonction voulue, au sens de ce découpage. + """ + from Utilitai.transpose import transpose + ier, message, blocs = lire_blocs(nomfich, SEPAR) + if ier<>0: + return ier,message,[] + + # vérifications de cohérences lignes et colonnes + nb_blocs = len(blocs) + bloc_para = INDIC_PARA[0] + col_para = INDIC_PARA[1] + bloc_resu = INDIC_RESU[0] + col_resu = INDIC_RESU[1] + msg=[] + if bloc_para>nb_blocs : + ier+=1 + msg.append("Il y a %d blocs or INDIC_PARA=(%d, .)" % (nb_blocs, bloc_para)) + if bloc_resu>nb_blocs: + ier+=1 + msg.append("Il y a %d blocs or INDIC_RESU=(%d, .)" % (nb_blocs, bloc_resu)) + if ier<>0: + return ier, '\n'.join(msg), [] + + if col_para>len(blocs[bloc_para-1][0]): + ier+=1 + msg.append("Le bloc %d comporte %d colonnes or INDIC_PARA=(., %d)" % \ + (bloc_para, len(blocs[bloc_para-1][0]), col_para)) + if col_resu>len(blocs[bloc_resu-1][0]) : + ier+=1 + msg.append("Le bloc %d comporte %d colonnes or INDIC_RESU=(., %d)" % \ + (bloc_resu, len(blocs[bloc_resu-1][0]), col_resu)) + if ier<>0: + return ier, '\n'.join(msg), [] + + # construction du VALE de la fonction par recherche des indices + # de colonnes et de fonctions dans le tableau blocs + vale_para = blocs[bloc_para-1][:,col_para-1] + vale_resu = blocs[bloc_resu-1][:,col_resu-1] + if len(vale_para)!=len(vale_resu) : + ier+=1 + print 'VALE_PARA =', vale_para + print 'VALE_RESU =', vale_resu + message="""Les deux colonnes extraites n'ont pas la meme longueur + %d lignes pour PARA + %d lignes pour RESU""" % (len(vale_para), len(vale_resu)) + if ier<>0: + return ier,message,[] + + laux=transpose([vale_para, vale_resu]) + liste_vale=[] + for v in laux: liste_vale.extend(v) + return ier,'',liste_vale + +# ------------------------------------------------------------------------------ +def liste_simple(nomfich,INDIC_PARA,SEPAR): + """recherche d'une liste simple + """ + ier, message, blocs = lire_blocs(nomfich, SEPAR) + + # vérifications de cohérences lignes et colonnes + nb_blocs = len(blocs) + bloc_para = INDIC_PARA[0] + col_para = INDIC_PARA[1] + msg=[] + if bloc_para>nb_blocs : + ier+=1 + msg.append("Il y a %d blocs or INDIC_PARA=(%d, .)" % (nb_blocs, bloc_para)) + if col_para>len(blocs[bloc_para-1][0]): + ier+=1 + msg.append("Le bloc %d comporte %d colonnes or INDIC_PARA=(., %d)" % \ + (bloc_para, len(blocs[bloc_para-1][0]), col_para)) + if ier<>0: + return ier, '\n'.join(msg), [] + + # construction du VALE de la fonction par recherche des indices + # de colonnes et de fonctions dans le tableau l_fonc + vale_1=blocs[bloc_para-1][:,col_para-1] + return ier,'',vale_1.tolist() + +# ------------------------------------------------------------------------------ +def lire_fonction_ops(self,FORMAT,TYPE,SEPAR,INDIC_PARA,UNITE, + NOM_PARA,NOM_RESU,INTERPOL,PROL_DROITE, + PROL_GAUCHE,VERIF,INFO,TITRE,**args): + """Méthode corps de la macro + """ + from Accas import _F + from Utilitai.Utmess import UTMESS + from Utilitai.UniteAster import UniteAster + + ier=0 + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + # On recopie le mot cle defi_fonction pour le proteger + if TYPE=='NAPPE' : + mc_DEFI_FONCTION=args['DEFI_FONCTION'] + + # On importe les definitions des commandes a utiliser dans la macro + DEFI_FONCTION =self.get_cmd('DEFI_FONCTION') + DEFI_NAPPE =self.get_cmd('DEFI_NAPPE') + + nompro='LIRE_FONCTION' + + # Lecture de la fonction dans un fichier d unité logique UNITE + UL = UniteAster() + nomfich=UL.Nom(UNITE) + if not os.path.isfile(nomfich): + UTMESS('F', nompro, "le fichier '%s' est introuvable" % nomfich) + + # fonction(_c) ou nappe en sortie + self.DeclareOut('ut_fonc',self.sd) + + if TYPE=='FONCTION': + # mise en forme de la liste de valeurs suivant le format choisi : + ier,message,liste_vale=liste_double(nomfich,INDIC_PARA,args['INDIC_RESU'],SEPAR) + if ier!=0: UTMESS('F', nompro, message) + + # création de la fonction ASTER : + ut_fonc=DEFI_FONCTION( NOM_PARA =NOM_PARA, + NOM_RESU =NOM_RESU, + PROL_DROITE=PROL_DROITE, + PROL_GAUCHE=PROL_GAUCHE, + INTERPOL =INTERPOL, + INFO =INFO, + TITRE =TITRE, + VERIF =VERIF, + VALE =liste_vale,) + + elif TYPE=='FONCTION_C': + # mise en forme de la liste de valeurs suivant le format choisi : + if 'INDIC_REEL' in args : + indic1=args['INDIC_REEL'] + indic2=args['INDIC_IMAG'] + if 'INDIC_MODU' in args : + indic1=args['INDIC_MODU'] + indic2=args['INDIC_PHAS'] + ier,message,liste_vale_r=liste_double(nomfich,INDIC_PARA,indic1,SEPAR) + if ier!=0: UTMESS('F', nompro, message) + + ier,message,liste_vale_i=liste_double(nomfich,INDIC_PARA,indic2,SEPAR) + if ier!=0: UTMESS('F', nompro, message) + + liste=[] + if 'INDIC_REEL' in args : + for i in range(len(liste_vale_r)/2) : + liste.extend([liste_vale_r[2*i],liste_vale_r[2*i+1],liste_vale_i[2*i+1]]) + elif 'INDIC_MODU' in args : + for i in range(len(liste_vale_r)/2) : + module=liste_vale_r[2*i+1] + phase =liste_vale_i[2*i+1] + liste.extend([liste_vale_r[2*i],module*cos(phase),module*sin(phase)]) + + # création de la fonction ASTER : + ut_fonc=DEFI_FONCTION( NOM_PARA =NOM_PARA, + NOM_RESU =NOM_RESU, + PROL_DROITE =PROL_DROITE, + PROL_GAUCHE =PROL_GAUCHE, + INTERPOL =INTERPOL, + INFO =INFO, + TITRE =TITRE, + VERIF =VERIF, + VALE_C =liste,) + + elif TYPE=='NAPPE': + + # création de la nappe ASTER : + motscles={} + motscles['DEFI_FONCTION']=[] + for elem in mc_DEFI_FONCTION: + ier,message,liste_vale=liste_double(nomfich,args['INDIC_ABSCISSE'],elem['INDIC_RESU'],SEPAR) + if ier!=0: UTMESS('F', nompro, message) + + motscles['DEFI_FONCTION'].append( _F( VALE =liste_vale, + INTERPOL =args['INTERPOL_FONC'], + PROL_DROITE=args['PROL_DROITE_FONC'], + PROL_GAUCHE=args['PROL_GAUCHE_FONC'] ) ) + ier,message,liste_para=liste_simple(nomfich,INDIC_PARA,SEPAR) + if ier!=0: UTMESS('F', nompro, message) + + # création de la nappe + ut_fonc=DEFI_NAPPE( PARA =liste_para, + NOM_PARA =NOM_PARA, + NOM_PARA_FONC =args['NOM_PARA_FONC'], + NOM_RESU =NOM_RESU, + PROL_DROITE =PROL_DROITE, + PROL_GAUCHE =PROL_GAUCHE, + INTERPOL =INTERPOL, + INFO =INFO, + TITRE =TITRE, + VERIF =VERIF, + **motscles) + # remet UNITE dans son état initial + UL.EtatInit() + return ier diff --git a/Aster/Cata/cataSTA7/Macro/lire_inte_spec_ops.py b/Aster/Cata/cataSTA7/Macro/lire_inte_spec_ops.py new file mode 100644 index 00000000..bb40a907 --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/lire_inte_spec_ops.py @@ -0,0 +1,125 @@ +#@ MODIF lire_inte_spec_ops Macro DATE 26/05/2005 AUTEUR MCOURTOI M.COURTOIS +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +def lire_inte_spec_ops(self,UNITE,FORMAT,NOM_PARA,NOM_RESU,INTERPOL, + PROL_DROITE,PROL_GAUCHE,TITRE,INFO,**args): + ier=0 + + from Accas import _F + import os + from math import cos,sin + from Utilitai.Utmess import UTMESS + from Utilitai.UniteAster import UniteAster + # On importe les definitions des commandes a utiliser dans la macro + DEFI_FONCTION =self.get_cmd('DEFI_FONCTION') + CREA_TABLE =self.get_cmd('CREA_TABLE') + + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + nompro='LIRE_INTE_SPEC' + + # Lecture de la fonction dans un fichier d unité logique UNITE + UL = UniteAster() + nomfich=UL.Nom(UNITE) + if not os.path.isfile(nomfich): + UTMESS('F', nompro, "le fichier '%s' est introuvable" % nomfich) + file=open(nomfich,'r') + texte=file.read() + file.close() + + list_fonc=texte.split('FONCTION_C') + entete=list_fonc.pop(0) + try : + entete=entete[entete.index('DIM'):] + dim=int(entete[entete.index('=')+1:entete.index('\n')]) + except ValueError : + ier=ier+1 + self.cr.fatal(" la dimension DIM n est pas précisée dans le fichier lu") + return ier + + if len(list_fonc)!=(dim*(dim+1)/2): + ier=ier+1 + self.cr.fatal(" nombre de fonctions incorrect") + return ier + + nume_i=[] + nume_j=[] + l_fonc=[] + for i in range(dim*(dim+1)/2): + numi=list_fonc[i][list_fonc[i].index('I =')+3:] + numi=numi[:numi.index('\n')] + nume_i.append(int(numi)) + numj=list_fonc[i][list_fonc[i].index('J =')+3:] + numj=numj[:numj.index('\n')] + nume_j.append(int(numj)) + try : + vale_fonc=list_fonc[i][list_fonc[i].index('VALEUR =\n')+9:list_fonc[i].index('FINSF\n')] + vale_fonc=vale_fonc.replace('\n',' ') + vale_fonc=map(float,vale_fonc.split()) + except ValueError : + ier=ier+1 + self.cr.fatal(" erreur dans les données de fonctions") + return ier + + liste=[] + if FORMAT=='REEL_IMAG': + liste=vale_fonc + elif FORMAT=='MODULE_PHASE': + for i in range(len(vale_fonc)/3) : + module=vale_fonc[3*i+1] + phase =vale_fonc[3*i+2] + liste=liste+[vale_fonc[3*i],module*cos(phase),module*sin(phase)] + + # création de la fonction ASTER : + _fonc=DEFI_FONCTION( NOM_PARA =NOM_PARA, + NOM_RESU =NOM_RESU, + PROL_DROITE=PROL_DROITE, + PROL_GAUCHE=PROL_GAUCHE, + INTERPOL =INTERPOL, + INFO =INFO, + TITRE =TITRE, + VALE_C =liste,) + l_fonc.append(_fonc.nom) + + nume_ib=[] + nume_jb=[] + for i in range(dim): + for j in range(i,dim): + nume_ib.append(i+1) + nume_jb.append(j+1) + if nume_i!=nume_ib or nume_j!=nume_jb : + ier=ier+1 + self.cr.fatal(" erreur dans les indices") + return ier + mcfact=[] + mcfact.append(_F(PARA='NOM_CHAM' ,LISTE_K=(NOM_RESU),NUME_LIGN=(1,))) + mcfact.append(_F(PARA='OPTION' ,LISTE_K=('TOUT',) ,NUME_LIGN=(1,))) + mcfact.append(_F(PARA='DIMENSION' ,LISTE_I=(dim,) ,NUME_LIGN=(1,))) + mcfact.append(_F(PARA='NUME_ORDRE_I',LISTE_I=nume_i ,NUME_LIGN=range(2,len(nume_i)+2))) + mcfact.append(_F(PARA='NUME_ORDRE_J',LISTE_I=nume_j ,NUME_LIGN=range(2,len(nume_j)+2))) + mcfact.append(_F(PARA='FONCTION' ,LISTE_K=l_fonc ,NUME_LIGN=range(2,len(list_fonc)+2))) + self.DeclareOut('tab_inte',self.sd) + tab_inte=CREA_TABLE(TYPE_TABLE='TABL_INTE_SPEC', + LISTE=mcfact, + TITRE=TITRE,) + + # remet UNITE dans son état initial + UL.EtatInit() + return ier diff --git a/Aster/Cata/cataSTA7/Macro/lire_table_ops.py b/Aster/Cata/cataSTA7/Macro/lire_table_ops.py new file mode 100644 index 00000000..81567113 --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/lire_table_ops.py @@ -0,0 +1,177 @@ +#@ MODIF lire_table_ops Macro DATE 26/05/2005 AUTEUR MCOURTOI M.COURTOIS +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +import string + +# ------------------------------------------------------------------------------ +def lecture_table(texte,nume,separ): + """Méthode de construction du dictionnaire PARAMETRE / LISTE DE VALEURS + format ASTER + Les lignes contenant autre chose que des séquences de nombres + réels et de séparateurs sont considérées comme délimitant deux + fonctions différentes. Cette situation correspond à l exception + ValueError levée par le map de float. Le deuxieme indice de + VALE_PARA et VALE_RESU est l indice permettant de pointer sur la + fonction voulue, au sens de ce découpage. + """ + + from Utilitai.transpose import transpose + if string.strip(separ)=='' : separ=None + tab_lue={} + nume_lign=[] + idt_deb='#DEBUT_TABLE\n' + idt_fin='#FIN_TABLE\n' + idt_tit='#TITRE' + if nume>texte.count(idt_deb) : + message= " NUME_TABLE :le nombre de blocs de tables dans " + message=message+"le fichier est "+str(texte.count(idt_deb)) + return 1,message,None,None,None + for i in range(nume): + texte=texte[texte.index(idt_deb)+1:] + texte=texte[:texte.index(idt_fin)] + + titre_tab=[string.rstrip(elem[7:-1]) for elem in texte if elem.find(idt_tit)!=-1] + texte_tab=[elem.split(separ) for elem in texte if elem.find(idt_tit)==-1] + + if ( separ!=None) : + tab_trav=[] + for line in texte_tab : + ligne=[] + for elem in line : + if ( elem != '' and elem !='\n') : + ligne.append(string.strip(elem)) + tab_trav.append(ligne) + texte_tab=tab_trav + + list_para=texte_tab[0] + list_type=texte_tab[1] + texte_tab.pop(0) + texte_tab.pop(0) + nb_para=len(texte_tab[0]) + + for line in texte_tab : + if len(line)!=nb_para : + message= " incoherence dans le nombre de colonnes " + message=message+"de la table a lire" + return 1,message,None,None,None + texte_tab=transpose(texte_tab) + for i in range(nb_para): + tab_trav=[] + list_val=[] + col_type=list_type[i] + if col_type=='R': + try : + texte_tab[i]=map(float,texte_tab[i]) + nume_lign.append([0]) + except ValueError: +# Presence de - dans la ligne + for indice in range(len(texte_tab[i])): + if texte_tab[i][indice]!='-': + tab_trav.append(indice+1) + list_val.append(float(texte_tab[i][indice])) + + nume_lign.append(tab_trav) + texte_tab[i]=list_val + elif col_type=='I' : + try : + texte_tab[i]=map(int,texte_tab[i]) + nume_lign.append([0]) +# Presence de - dans la ligne + except ValueError: + for indice in range(len(texte_tab[i])): + if texte_tab[i][indice]!='-': + tab_trav.append(indice+1) + list_val.append(float(texte_tab[i][indice])) + nume_lign.append(tab_trav) + texte_tab[i]=list_val + + else : + try : nume_lign.append([0]) + except ValueError: pass + + tab_lue[list_para[i]]=(list_type[i],texte_tab[i],nume_lign[i]) + + return 0,None,titre_tab,list_para,tab_lue + + +# ------------------------------------------------------------------------------ +def lire_table_ops(self,UNITE,FORMAT,NUME_TABLE,SEPARATEUR, + TYPE_TABLE,PARA,TITRE,**args): + """Méthode corps de la macro LIRE_TABLE + """ + import os + from Accas import _F + from Utilitai.Utmess import UTMESS + from Utilitai.UniteAster import UniteAster + + ier=0 + ### On importe les definitions des commandes a utiliser dans la macro + CREA_TABLE =self.get_cmd('CREA_TABLE') + + ### La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + ### Lecture de la table dans un fichier d unité logique UNITE + UL = UniteAster() + nomfich=UL.Nom(UNITE) + if not os.path.isfile(nomfich): + UTMESS('F', nompro, "le fichier '%s' est introuvable" % nomfich) + + file=open(nomfich,'r') + texte=file.readlines() + file.close() + + ### mise en forme de la liste de valeurs suivant le format choisi : + if FORMAT=='ASTER': + ier,message,titr_tab,list_para,tab_lue=lecture_table(texte,NUME_TABLE,SEPARATEUR) + if ier!=0 : + self.cr.fatal(message) + return ier + else : pass + + ### création de la table ASTER : + self.DeclareOut('ut_tab',self.sd) + mcfact=[] + num_col=0 + for tab_para in list_para: + mcsimp={} + mcsimp['PARA']=tab_para + + if tab_lue[tab_para][2] != [0] : + mcsimp['NUME_LIGN']=tab_lue[tab_para][2] + + if tab_lue[tab_para][0] not in ('I','R') : + mcsimp['TYPE_K'] =tab_lue[tab_para][0] + mcsimp['LISTE_K']=tab_lue[tab_para][1] + elif tab_lue[tab_para][0]=='I' : + mcsimp['LISTE_I']=tab_lue[tab_para][1] + elif tab_lue[tab_para][0]=='R' : + mcsimp['LISTE_R']=tab_lue[tab_para][1] + + mcfact.append( _F(**mcsimp) ) + num_col = num_col + 1 + motscles={} + motscles['LISTE']=mcfact + + ut_tab=CREA_TABLE(TITRE=titr_tab,TYPE_TABLE=TYPE_TABLE, **motscles) + + # remet UNITE dans son état initial + UL.EtatInit() + return ier diff --git a/Aster/Cata/cataSTA7/Macro/macr_adap_mail_ops.py b/Aster/Cata/cataSTA7/Macro/macr_adap_mail_ops.py new file mode 100644 index 00000000..16625395 --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/macr_adap_mail_ops.py @@ -0,0 +1,727 @@ +#@ MODIF macr_adap_mail_ops Macro DATE 05/10/2004 AUTEUR CIBHHLV L.VIVAN +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE GNICOLAS G.NICOLAS +# +def macr_adap_mail_ops ( self, + INFO, VERSION_HOMARD, LANGUE, + NOMBRE, QUALITE, CONNEXITE, TAILLE, INTERPENETRATION, + NON_SIMPLEXE, MAILLAGE_FRONTIERE, + **args): + """ + Ecriture des macros MACR_ADAP_MAIL/MACR_INFO_MAIL + Remarque : on ne mentionne explicitement que les mots-clés communs aux + deux macros. Les autres sont dans le dictionnaire args + """ +# +# 1. args est le dictionnaire des arguments +# args.keys() est la liste des mots-clés +# args.keys()[0] est la premiere valeur de cette liste +# args.keys()[1:] est la liste des valeurs suivantes dans cette liste +# args.keys(mot_cle) représente le contenu de la variable mot_cle dans la macro appelante. +# +### print args +### print args.keys() +### if len (args.keys())>0 : print args.keys()[0] +### print args["MAILLAGE"] +# +# 2. Les caractéristiques d'un passage sont conservées dans un dictionnaire. Il y a autant de +# dictionnaires que de sollicitations pour une série d'adaptation. L'ensemble de ces dictionnaires +# est conservé dans la liste Liste_Passages. Cette liste est nécessairement globale pour pouvoir +# la retrouver à chaque nouveau passage. +# Description du dictionnaire de passages : +# dico["Maillage_0"] = o ; string ; nom du concept du maillage initial de la série d'adaptation +# dico["Maillage_NP1"] = o ; string ; nom du concept du dernier maillage adapté +# dico["Rep_Calc_HOMARD_global"] = o ; string ; Nom global du répertoire de calcul pour HOMARD +# dico["Rep_Calc_HOMARD_local"] = o ; string ; Nom local du répertoire de calcul pour HOMARD +# depuis le répertoire de calcul pour ASTER +# dico["niter"] = o ; entier ; numéro d'itération +# +# 3. Les caractéristiques d'un maillage sont conservées dans un dictionnaire. Il y a autant de +# dictionnaires que de maillages manipulés. L'ensemble de ces dictionnaires est conservé +# dans la liste Liste_Maillages. +# Description du dictionnaire de maillages : +# dico["Type_Maillage"] = o ; string ; "MAILLAGE_N", "MAILLAGE_NP1" ou "MAILLAGE_FRONTIERE" +# dico["Nom_ASTER"] = o ; concept ASTER associé +# dico["Action"] = o ; string ; "A_ecrire" ou "A_lire" +# dico["NOM_MED"] = o ; string ; Nom MED du maillage +# +# 4. Les caractéristiques d'un champ sont conservées dans un dictionnaire. Il y a autant de +# dictionnaires que de champs manipulés. L'ensemble de ces dictionnaires est conservé +# dans la liste Liste_Champs. +# Description du dictionnaire de champs : +# dico["Type_Champ"] = o ; string ; "INDICATEUR" ou "CHAMP" +# dico["RESULTAT"] = o ; concept ASTER du résutat associé +# dico["NOM_CHAM"] = o ; string ; Nom ASTER du champ +# dico["COMPOSANTE"] = f ; string ; Nom ASTER de la composante (dans le cas de l'indicateur) +# dico["NUME_ORDRE"] = f ; entier ; Numéro d'ordre du champ +# dico["INST"] = f ; entier ; Instant du champ +# dico["PRECISION"] = f ; entier ; Précision sur l'instant du champ +# dico["CRITERE"] = f ; entier ; Critère de précision sur l'instant du champ +# dico["CHAM_MAJ"] = f ; string ; Nom ASTER du champ interpolé sur le nouveau maillage +# dico["NOM_MED"] = o ; string ; Nom MED du champ +# + from Accas import _F + import aster + import string + import types + import os +# + global Liste_Passages +# +#-------------------------------------------------------------------- +# 1. Préalables +#-------------------------------------------------------------------- +# +# 1.1. ==> La macro compte pour 1 dans la numerotation des commandes +# + self.set_icmd(1) +# +# 1.2. ==> Numéro du passage dans cette macro +# + try : + self.jdc.indice_macro_homard = self.jdc.indice_macro_homard + 1 + except : + self.jdc.indice_macro_homard = 1 + Liste_Passages = [] + Numero_Passage_Fonction = self.jdc.indice_macro_homard +### print "Numero_Passage_Fonction = ",Numero_Passage_Fonction +# +# 1.3. ==> On importe les definitions des commandes a utiliser dans la macro +# + DEFI_FICHIER = self.get_cmd("DEFI_FICHIER") + IMPR_RESU = self.get_cmd("IMPR_RESU") + EXEC_LOGICIEL = self.get_cmd("EXEC_LOGICIEL") + IMPR_FICO_HOMA = self.get_cmd("IMPR_FICO_HOMA") + LIRE_MAILLAGE = self.get_cmd("LIRE_MAILLAGE") + LIRE_CHAMP = self.get_cmd("LIRE_CHAMP") + DETRUIRE = self.get_cmd('DETRUIRE') +# +# 1.4. ==> Le nom du programme HOMARD à lancer +# + repertoire_outils = aster.repout() + homard = repertoire_outils + "homard" +# +# 1.5. ==> Initialisations +# + codret = 0 + codret_partiel = [0] + Rep_Calc_ASTER = os.getcwd() +# + Liste_Maillages = [] + Liste_Champs = [] + dico_indi = {} +# + ADAPTATION = None + MAJ_CHAM = None +# + unite = 71 +# +#-------------------------------------------------------------------- +# 2. Décodage des arguments de la macro-commande +#-------------------------------------------------------------------- +# 2.1. ==> Données de pilotage de l'adaptation +# + if ( self.nom == "MACR_ADAP_MAIL" ) : +# + modhom = "ADAP" +# + ADAPTATION = args["ADAPTATION"] + if args.has_key("MAJ_CHAM") : + MAJ_CHAM = args["MAJ_CHAM"] +# +# 2.1.1. ==> Les concepts "maillage" +# + for mot_cle in ["MAILLAGE_N","MAILLAGE_NP1"] : + dico = {} + dico["Type_Maillage"] = mot_cle + dico["Nom_ASTER"] = ADAPTATION[mot_cle] + if ( mot_cle == "MAILLAGE_N" ) : + dico["Action"] = "A_ecrire" + else : + dico["Action"] = "A_lire" + Liste_Maillages.append(dico) +# +# 2.1.2. ==> L'éventuel indicateur d'erreur +# + if ADAPTATION["LIBRE"] != None : + dico = {} + dico["Type_Champ"] = "INDICATEUR" + dico["RESULTAT"] = ADAPTATION["RESULTAT_N"] + dico["NOM_CHAM"] = ADAPTATION["INDICATEUR"] + dico["COMPOSANTE"] = ADAPTATION["NOM_CMP_INDICA"] + if ( ADAPTATION["NUME_ORDRE"] != None ) : + dico["NUME_ORDRE"] = ADAPTATION["NUME_ORDRE"] + if ( ADAPTATION["INST"] != None ) : + dico["INST"] = ADAPTATION["INST"] + for cle in [ "PRECISION", "CRITERE" ] : + if ( ADAPTATION[cle] != None ) : + dico[cle] = ADAPTATION[cle] + dico["NOM_MED"] = aster.mdnoch ( dico["RESULTAT"].nom , dico["NOM_CHAM"] ) + Liste_Champs.append(dico) + dico_indi = dico +### print dico +# +# 2.1.3. ==> Les champs à mettre à jour +# + if ( MAJ_CHAM != None ) : +# + for maj_cham in MAJ_CHAM : +### print maj_cham +# + dico = {} + dico["Type_Champ"] = "CHAMP" + for cle in [ "CHAM_MAJ", "TYPE_CHAM", "RESULTAT", "NOM_CHAM" ] : + dico[cle] = maj_cham[cle] + if ( maj_cham["NUME_ORDRE"] != None ) : + dico["NUME_ORDRE"] = maj_cham["NUME_ORDRE"] + elif ( maj_cham["INST"] != None ) : + dico["INST"] = maj_cham["INST"] + for cle in [ "PRECISION", "CRITERE" ] : + if ( maj_cham[cle] != None ) : + dico[cle] = maj_cham[cle] + dico["NOM_MED"] = aster.mdnoch ( dico["RESULTAT"].nom , dico["NOM_CHAM"] ) +# +### print dico + Liste_Champs.append(dico) +# +# 2.2. ==> Données de pilotage de l'information +# + else : +# + modhom = "INFO" +# + dico = {} + dico["Type_Maillage"] = "MAILLAGE_N" + dico["Nom_ASTER"] = args["MAILLAGE"] + dico["Action"] = "A_ecrire" + Liste_Maillages.append(dico) +# +# 2.3. ==> Suivi de frontière +# + if ( MAILLAGE_FRONTIERE != None ) : +# + dico = {} + dico["Type_Maillage"] = "MAILLAGE_FRONTIERE" + dico["Nom_ASTER"] = MAILLAGE_FRONTIERE + dico["Action"] = "A_ecrire" + Liste_Maillages.append(dico) +# +#-------------------------------------------------------------------- +# 3. Préparation du lancement des commandes +#-------------------------------------------------------------------- +# +# 3.1. ==> . Elaboration des noms MED des concepts de maillage +# . Memorisation des noms ASTER du maillage en entrée et en sortie (sous forme string) +# On crée une nouvelle liste des dictionnaires décrivant les maillages +# et à la fin on écrase l'ancienne liste par cette nouvelle. +# + L = [] + for dico in Liste_Maillages : + dico["NOM_MED"] = aster.mdnoma(dico["Nom_ASTER"].nom) + L.append(dico) + if ( dico["Type_Maillage"] == "MAILLAGE_N" ) : + Nom_Concept_Maillage_N = dico["Nom_ASTER"].nom + elif ( dico["Type_Maillage"] == "MAILLAGE_NP1" ) : + Nom_Concept_Maillage_NP1 = dico["Nom_ASTER"].nom + Liste_Maillages = L +# +# 3.2. ==> Recherche du numéro d'itération et du répertoire de travail +# +# 3.2.1. ==> Par défaut : +# . le numéro d'itération est nul +# . le nom du répertoire de lancement de HOMARD est construit sur le nom +# du maillage en entrée et le numéro de passage dans la fonction +# + niter = 0 + Nom_Rep_local = Nom_Concept_Maillage_N + "_" + modhom + "_" + str(Numero_Passage_Fonction) + Rep_Calc_HOMARD_local = os.path.join(".",Nom_Rep_local) + Rep_Calc_HOMARD_global = os.path.join(Rep_Calc_ASTER,Nom_Rep_local) +### print "Rep_Calc_HOMARD_local = ", Rep_Calc_HOMARD_local +### print "Rep_Calc_HOMARD_global = ", Rep_Calc_HOMARD_global +# +# 3.2.2. ==> En adaptation : +# + if ( modhom == "ADAP" ) : +# +# 3.2.2.1. ==> On recherche si dans les passages déjà effectués, il en existe un +# dont le maillage d'arrivée était l'actuel maillage d'entrée. Si c'est +# le cas, cela veut dire que l'adaptation en cours est la suite d'une +# précédente. On doit donc utiliser le meme répertoire. Le numéro +# d'itération est celui de l'adaptation précédente augmenté de 1. +# + for dico in Liste_Passages : + if ( dico["Maillage_NP1"] == Nom_Concept_Maillage_N ) : + niter = dico["niter"] + 1 + Rep_Calc_HOMARD_local = dico["Rep_Calc_HOMARD_local"] + Rep_Calc_HOMARD_global = dico["Rep_Calc_HOMARD_global"] +# +# 3.2.2.2. ==> Memorisation de ce passage +# +# 3.2.2.2.1. ==> Enregistrement d'un nouveau cas de figure +# + if ( niter == 0 ) : + dico = {} + dico["Maillage_0"] = Nom_Concept_Maillage_N + dico["Maillage_NP1"] = Nom_Concept_Maillage_NP1 + dico["Rep_Calc_HOMARD_local"] = Rep_Calc_HOMARD_local + dico["Rep_Calc_HOMARD_global"] = Rep_Calc_HOMARD_global + dico["niter"] = niter + Liste_Passages.append(dico) +# +# 3.2.2.2.2. ==> Modification du cas en cours +# + else : + L = [] + for dico in Liste_Passages : + if ( dico["Maillage_NP1"] == Nom_Concept_Maillage_N ) : + dico["Maillage_NP1"] = Nom_Concept_Maillage_NP1 + dico["niter"] = niter + L.append(dico) + Liste_Passages = L +# +### print "niter = ", niter, ", Rep_Calc_HOMARD_global = ", Rep_Calc_HOMARD_global +# +#-------------------------------------------------------------------- +# 4. Ecriture des commandes +#-------------------------------------------------------------------- +# +# 4.1. ==> Création du répertoire pour homard +# attention : on ne fait cette creation qu'une seule fois par cas +# d'adaptation ou d'information +# + if ( niter == 0 ) : +# + try : + os.mkdir(Rep_Calc_HOMARD_global) + except os.error,codret_partiel : + self.cr.warn("Code d'erreur de mkdir : " + str(codret_partiel[0]) + " : " + codret_partiel[1]) + self.cr.fatal(" Impossible de créer le répertoire de travail pour HOMARD : "+Rep_Calc_HOMARD_global) + codret = codret + 1 +# +# 4.2. ==> Ecriture des commandes de creation des donnees MED +# +# On doit écrire : le maillage, +# le champ d'indicateur d'erreur +# les champs à convertir +# Remarque : on met tout dans le meme fichier +# +# Chacune de ces écritures est optionnelle selon le contexte. +# + if ( INFO > 1 ) : infomail = "OUI" + else : infomail = "NON" +# +# 4.2.1. ==> Noms des fichiers d'ASTER vers HOMARD et éventuellement de HOMARD vers ASTER +# Remarque : aujourd'hui, les écritures ou les lectures au format MED se font obligatoirement sur +# un fichier de nom fort.n, placé dans le répertoire de calcul +# Dans le fichier de configuration, on donne comme nom MAILL.(niter).MED en entrée et +# MAILL.(niter+1).MED en sortie (cf. adhc00) +# Tant que les E/S MED n'ont pas évolué, on fait un lien pour assurer la cohérence. +# +# 4.2.1.1. ==> D'ASTER vers HOMARD +# + Unite_Fichier_ASTER_vers_HOMARD = 1787 + 2*Numero_Passage_Fonction + Fichier_ASTER_vers_HOMARD = os.path.join(Rep_Calc_ASTER,"fort." + str(Unite_Fichier_ASTER_vers_HOMARD)) + Fichier_HOMARD_Entree = os.path.join(Rep_Calc_HOMARD_global,"MAILL."+str(niter)+".MED") +### print "Fichier_ASTER_vers_HOMARD = ",Fichier_ASTER_vers_HOMARD +### print "Fichier_HOMARD_Entree = ",Fichier_HOMARD_Entree + try : + os.symlink(Fichier_ASTER_vers_HOMARD,Fichier_HOMARD_Entree) + except os.error,codret_partiel : + self.cr.warn("Code d'erreur de symlink : " + str(codret_partiel[0]) + " : " + codret_partiel[1]) + self.cr.fatal(" Probleme au lien entre " + Fichier_ASTER_vers_HOMARD + " et " + Fichier_HOMARD_Entree) + codret = codret + 1 +# +# 4.2.1.2. ==> De HOMARD vers ASTER +# + if ( modhom == "ADAP" ) : + Unite_Fichier_HOMARD_vers_ASTER = Unite_Fichier_ASTER_vers_HOMARD + 1 + Fichier_HOMARD_vers_ASTER = os.path.join(Rep_Calc_ASTER,"fort." + str(Unite_Fichier_HOMARD_vers_ASTER)) + Fichier_HOMARD_Sortie = os.path.join(Rep_Calc_HOMARD_global,"MAILL."+str(niter+1)+".MED") +### print "Fichier_HOMARD_vers_ASTER = ",Fichier_HOMARD_vers_ASTER +### print "Fichier_HOMARD_Sortie = ",Fichier_HOMARD_Sortie + try : + os.symlink(Fichier_HOMARD_vers_ASTER,Fichier_HOMARD_Sortie) + except os.error,codret_partiel : + self.cr.warn("Code d'erreur de symlink : " + str(codret_partiel[0]) + " : " + codret_partiel[1]) + self.cr.fatal(" Probleme au lien entre " + Fichier_HOMARD_vers_ASTER + " et " + Fichier_HOMARD_Sortie) + codret = codret + 1 +# +# 4.2.2. La définition du fichier de ASTER vers HOMARD +# + DEFI_FICHIER ( ACTION= "ASSOCIER", + UNITE = Unite_Fichier_ASTER_vers_HOMARD, + TYPE = "LIBRE", + INFO = INFO ) +# +# 4.2.3. Le(s) maillage(s) +# Le maillage de calcul et l'éventuel maillage de la frontiere sont écrits +# dans le meme fichier MED +# En fait, on pourrait s'en passer au dela de la 1ère itération +# car HOMARD a mémorisé. Mais dès que l'on écrit un champ, +# les conventions MED imposent la présence du maillage dans le fichier. +# Donc on va toujours écrire. +# + for dico in Liste_Maillages : + if ( dico["Action"] == "A_ecrire" ) : + motscsi={} + motscsi["MAILLAGE"] = dico["Nom_ASTER"] + motscfa={} + motscfa["RESU"]=_F( INFO_MAILLAGE=infomail, + **motscsi ) +# + IMPR_RESU ( INFO = INFO, + FORMAT ='MED', UNITE = Unite_Fichier_ASTER_vers_HOMARD, + **motscfa ) +# +# 4.2.4. Le(s) champ(s) +# Attention : il se peut que l'on demande la mise à jour du champ qui a servi comme +# indicateur d'erreur. Si c'est le cas, il ne faut pas demander son +# impression sinon il y a plantage d'IMPR_RESU qui ne sait pas substituer +# deux champs. D'ailleurs, c'est plus économique ainsi ! +# Remarque : pour l'adaptation, on ne demande a priori qu'une composante du champ d'indicateur. +# s'il y a demande de mise à jour, toutes les composantes sont concernées. Il faut +# donc dans ce cas imprimer le champ total. +# dico["Type_Champ"] = o ; string ; "INDICATEUR" ou "CHAMP" +# dico["RESULTAT"] = o ; concept ASTER du résutat associé +# dico["NOM_CHAM"] = o ; string ; Nom ASTER du champ +# dico["COMPOSANTE"] = f ; string ; Nom ASTER de la composante (dans le cas de l'indicateur) +# dico["NUME_ORDRE"] = f ; entier ; Numéro d'ordre du champ +# dico["INST"] = f ; entier ; Instant du champ +# dico["PRECISION"] = f ; entier ; Précision sur l'instant du champ +# dico["CRITERE"] = f ; entier ; Critère de précision sur l'instant du champ +# dico["CHAM_MAJ"] = f ; string ; Nom ASTER du champ interpolé sur le nouveau maillage +# dico["NOM_MED"] = o ; string ; Nom MED du champ +# +# 4.2.4.1. Recherche d'un doublon éventuel sur le champ d'indicateur d'erreur +# + if len(dico_indi) > 0 : + imprime_indic = 0 + else : + imprime_indic = 1 +# + Liste_Champs_imprime = [] + for dico in Liste_Champs : +# Pour un champ à mettre à jour, on a toujours impression + if ( dico["Type_Champ"] == "CHAMP" ) : + Liste_Champs_imprime.append(dico) +# Si le champ d'indicateur n'a pas été repéré comme champ à mettre à jour : + if not imprime_indic : +# Est-ce le meme champ ? + ok = 1 + for cle in [ "RESULTAT", "NOM_CHAM" ] : + if ( dico_indi[cle] != dico[cle] ) : + ok = 0 + break +# Si oui, est-ce au meme moment ? (remarque : si rien n'est désigné, c'est qu'il n'y a qu'un +# seul instant ... donc c'est le meme ! En revanche, on ne sait pas comparer une donnée +# en numéro d'ordre et une donnée en instant. On croise les doigts.) + if ok : + for cle in [ "NUME_ORDRE", "INST" ] : + if dico.has_key(cle) : + if ( dico[cle] != None ) : + if dico_indi.has_key(cle) : + if ( dico_indi[cle] != dico[cle] ) : + ok = 0 + break + if ok : imprime_indic = 1 +# Si le champ d'indicateur n'a pas été repéré comme champ à mettre à jour, il faut +# l'inclure dans les champs à imprimer + if not imprime_indic : Liste_Champs_imprime.append(dico_indi) +# +# 4.2.4.2. Impressions après le filtrage précédent +# + for dico in Liste_Champs_imprime : + motscsi={} + for cle in [ "RESULTAT", "NOM_CHAM", "NUME_ORDRE", "INST", "PRECISION", "CRITERE" ] : + if dico.has_key(cle) : + if ( dico[cle] != None ) : + motscsi[cle] = dico[cle] + if dico.has_key("COMPOSANTE") : + motscsi["NOM_CMP"] = dico["COMPOSANTE"] + motscfa={} + motscfa["RESU"]=_F( INFO_MAILLAGE=infomail, + **motscsi + ) +# + IMPR_RESU ( INFO = INFO, + FORMAT ='MED', UNITE = Unite_Fichier_ASTER_vers_HOMARD, + **motscfa ) +# +# 4.3. ==> Ecriture de la commande d'écriture des fichiers de données pour HOMARD +# + motscfa={} +# +# 4.3.1. ==> Le traitement +# + motscsi={} +# +# 4.3.1.1. ==> Le type de traitement +# + if ( modhom == "ADAP" ) : + if ( ADAPTATION["UNIFORME"] != None ) : + motscsi["UNIFORME"] = ADAPTATION["UNIFORME"] + else : + motscsi["ADAPTATION"] = ADAPTATION["LIBRE"] + else : + motscsi["INFORMATION"] = "OUI" +# +# 4.3.1.2. ==> Les noms med des maillages +# + for dico in Liste_Maillages : +### print "Nom MED de " + dico["Type_Maillage"] + " = " + dico["NOM_MED"] + motscsi[ "NOM_MED_"+dico["Type_Maillage"] ] = dico["NOM_MED"] +# +# 4.3.1.3. ==> Les caracteristiques de l'éventuel indicateur d'erreur +# + for dico in Liste_Champs : + if ( dico["Type_Champ"] == "INDICATEUR" ) : + Liste_aux = [ "NOM_MED", "COMPOSANTE" ] + if dico.has_key("NUME_ORDRE") : + Liste_aux.append("NUME_ORDRE") + else : + for cle in [ "RESULTAT", "NOM_CHAM", "INST", "PRECISION", "CRITERE" ] : + Liste_aux.append(cle) + for cle in Liste_aux : + if dico.has_key(cle) : + if ( dico[cle] != None ) : + motscsi[cle] = dico[cle] +# +# 4.3.1.4. ==> Les critères de raffinement et les niveaux extremes +# + if ( modhom == "ADAP" ) : + Liste_aux = [ ] + if ( ADAPTATION["LIBRE"] == "RAFF_DERA" or ADAPTATION["LIBRE"] == "RAFFINEMENT" ) : + Liste_aux.append("CRIT_RAFF_ABS") + Liste_aux.append("CRIT_RAFF_REL") + Liste_aux.append("CRIT_RAFF_PE") + if ( ADAPTATION["LIBRE"] == "RAFF_DERA" or ADAPTATION["LIBRE"] == "DERAFFINEMENT" ) : + Liste_aux.append("CRIT_DERA_ABS") + Liste_aux.append("CRIT_DERA_REL") + Liste_aux.append("CRIT_DERA_PE") + niveau = 0 + if ( ADAPTATION["LIBRE"] == "RAFF_DERA" or ADAPTATION["LIBRE"] == "RAFFINEMENT" or ADAPTATION["UNIFORME"] == "RAFFINEMENT" ) : + Liste_aux.append("NIVE_MAX") + niveau = niveau + 1 + if ( ADAPTATION["LIBRE"] == "RAFF_DERA" or ADAPTATION["LIBRE"] == "DERAFFINEMENT" or ADAPTATION["UNIFORME"] == "DERAFFINEMENT" ) : + Liste_aux.append("NIVE_MIN") + niveau = niveau + 2 + for mot_cle in Liste_aux : + if ( ADAPTATION[mot_cle] != None ) : + motscsi[mot_cle] = ADAPTATION[mot_cle] +# + if ( niveau == 2 ) : + if ( ADAPTATION["NIVE_MIN"] > ADAPTATION["NIVE_MAX"] ) : + self.cr.fatal(" Le niveau minimum doit etre inferieur au niveau maximum.") + codret = codret + 1 +# +# 4.3.1.5. ==> Numéro d'itération +# + if ( modhom == "ADAP" ) : + motscsi["NITER"] = niter +# +# 4.3.1.6. ==> Suivi de la frontiere +# + if args.has_key("GROUP_MA") : + if ( args["GROUP_MA"] != None ) : + motscsi["GROUP_MA"] = args["GROUP_MA"] +# +# 4.3.1.7. ==> Bilan +# + motscfa["TRAITEMENT"] = _F(**motscsi) +# +# 4.3.2. ==> L'analyse +# + motscsi={} + if ( NOMBRE != None ) : motscsi["NOMBRE" ] = NOMBRE + if ( QUALITE != None ) : motscsi["QUALITE" ] = QUALITE + if ( CONNEXITE != None ) : motscsi["CONNEXITE" ] = CONNEXITE + if ( TAILLE != None ) : motscsi["TAILLE" ] = TAILLE + if ( INTERPENETRATION != None ) : motscsi["INTERPENETRATION" ] = INTERPENETRATION +# + motscfa["ANALYSE"] = _F(**motscsi) +# +# 4.3.3. ==> La mise à jour de champs +# + prem = 1 + for dico in Liste_Champs : + motscsi={} + if ( dico["Type_Champ"] == "CHAMP" ) : + Liste_aux = [ "NOM_MED", "COMPOSANTE" ] + if dico.has_key("NUME_ORDRE") : + Liste_aux.append("NUME_ORDRE") + else : + for cle in [ "RESULTAT", "NOM_CHAM", "INST", "PRECISION", "CRITERE" ] : + Liste_aux.append(cle) + for cle in Liste_aux : + if dico.has_key(cle) : + if ( dico[cle] != None ) : + motscsi[cle] = dico[cle] +### print motscsi + if prem : + motscfa["MAJ_CHAM"] = [_F(**motscsi),] + prem = 0 + else : + motscfa["MAJ_CHAM"].append(_F(**motscsi)) +# +# 4.3.4. ==> La commande +# +# 4.3.4.1. ==> Les fichiers annexes +# + dico = {} +# + Nom_Fichier_Configuration = "HOMARD.Configuration" + Fichier_Configuration = os.path.join(Rep_Calc_HOMARD_local,Nom_Fichier_Configuration) + dico[Fichier_Configuration] = ("HOMARD_CONFIG","UNITE_CONF",unite) +# + if ( modhom != "ADAP" ) : + unite = unite + 1 + Nom_Fichier_Donnees = "HOMARD.Donnees" + Fichier_Donnees = os.path.join(Rep_Calc_HOMARD_local,Nom_Fichier_Donnees) +# 1234567890123456 + dico[Fichier_Donnees] = ("HOMARD_DONN","UNITE_DONN",unite) +# +# 4.3.4.2. ==> L'ouverture de ces fichiers +# + for fic in dico.keys() : + DEFI_FICHIER ( ACTION= "ASSOCIER", FICHIER = fic, UNITE = dico[fic][2], + TYPE = "ASCII", ACCES = "NEW", INFO = INFO ) + motscfa[dico[fic][1]] = dico[fic][2] +# +# 4.3.4.3. ==> Ecriture +# +### print motscfa + IMPR_FICO_HOMA ( INFO=INFO, LANGUE = LANGUE, NON_SIMPLEXE = NON_SIMPLEXE, **motscfa ) +# +### for fic in dico.keys() : +### print "\nContenu de ", fic +### fichier = open (fic,"r") +### les_lignes = fichier.readlines() +### fichier.close() +### for ligne in les_lignes : +### print ligne[:-1] +# +# 4.3.4.4. ==> La fermeture des fichiers locaux +# Remarque : il faut le faire ici pour que le gestionnaire de DEFI_FICHIER soit à jour +# Remarque : aujourd'hui on est obligé de passer par le numéro d'unité logique +# + for fic in dico.keys() : + DEFI_FICHIER ( ACTION= "LIBERER", UNITE = dico[fic][2], INFO = INFO ) +# +# 4.4. ==> Ecriture de la commande d'exécution de homard +# Remarque : dans la donnée de la version de HOMARD, il faut remplacer +# le _ de la donnee par un ., qui +# est interdit dans la syntaxe du langage de commandes ASTER +# Remarque : il faut remplacer le N majuscule de la donnee par +# un n minuscule, qui est interdit dans la syntaxe du langage +# de commandes ASTER +# Remarque : pour le nommage des fichiers d'échange entre ASTER et HOMARD, on utilise +# la convention implicite du fort.n des entrees/sorties au format MED +# + VERSION_HOMARD=string.replace(VERSION_HOMARD,"_",".") + VERSION_HOMARD=string.replace(VERSION_HOMARD,"N","n") + if ( VERSION_HOMARD[-6:]=="_PERSO" ): +# motscsi["ARGUMENT"]=_F("TYPEXE"="-PERSO") + VERSION_HOMARD=VERSION_HOMARD[:-6] +# + if ( modhom == "ADAP" ) : + Nom_Fichier_Donnees = "0" +# + EXEC_LOGICIEL ( ARGUMENT = (_F(NOM_PARA=Rep_Calc_HOMARD_global), # nom du repertoire + _F(NOM_PARA=VERSION_HOMARD), # version de homard + _F(NOM_PARA=str(INFO)), # niveau d information + _F(NOM_PARA=Nom_Fichier_Donnees), # fichier de données HOMARD + ), + LOGICIEL = homard + ) +# +# 4.5. ==> Ecriture de la commande de lecture des resultats med +# Remarque : +# La fonction self.DeclareOut(a,b) focntionne ainsi : +# a est une chaine de caracteres +# b est la variable déclarée dans la commande +# le but est de associer le contenu de b à la variable locale qui sera désignée par a +# Exemple : +# self.DeclareOut("maillage_np1",ADAPTATION["MAILLAGE_NP1"]) +# ==> la variable maillage_np1 est identifiée à l'argument "MAILLAGE_NP1" du mot-clé ADAPTATION +# + if ( modhom == "ADAP" ) : +# +# 4.5.1. ==> Le maillage +# + self.DeclareOut("maillage_np1",ADAPTATION["MAILLAGE_NP1"]) + for dico in Liste_Maillages : + if ( dico["Action"] == "A_lire" ) : + maillage_np1 = LIRE_MAILLAGE ( UNITE = Unite_Fichier_HOMARD_vers_ASTER, + FORMAT = "MED", + NOM_MED = dico["NOM_MED"], + VERI_MAIL = _F(VERIF="NON"), INFO_MED = INFO, INFO = INFO ) +# +# 4.5.2. ==> Les champs +# + for dico in Liste_Champs : + if ( dico["Type_Champ"] == "CHAMP" ) : +### print dico + self.DeclareOut("champ_maj",dico["CHAM_MAJ"]) + motscsi={} + for cle in [ "NUME_ORDRE", "INST", "PRECISION", "CRITERE" ] : + if dico.has_key(cle) : + if ( dico[cle] != None ) : + motscsi[cle] = dico[cle] + if dico.has_key("NUME_ORDRE") : + motscsi["NUME_PT"] = dico["NUME_ORDRE"] + champ_maj = LIRE_CHAMP ( UNITE = Unite_Fichier_HOMARD_vers_ASTER, FORMAT = "MED", + MAILLAGE = maillage_np1, + NOM_MED = dico["NOM_MED"], NOM_CMP_IDEM = "OUI", TYPE_CHAM = dico["TYPE_CHAM"], + INFO = INFO, **motscsi ) +# +#-------------------------------------------------------------------- +# 5. Menage des fichiers MED et HOMARD devenus inutiles +#-------------------------------------------------------------------- +# + fic = os.path.join(Rep_Calc_HOMARD_global,"MAILL."+str(niter)+".HOM") + Liste_aux = [ Fichier_ASTER_vers_HOMARD, Fichier_HOMARD_Entree, fic ] + if ( modhom == "ADAP" ) : + Liste_aux.append(Fichier_HOMARD_vers_ASTER) + Liste_aux.append(Fichier_HOMARD_Sortie) +# + for fic in Liste_aux : + if ( INFO > 1 ) : print "Destruction du fichier ", fic + if os.path.islink(fic) : + try : + os.unlink(fic) + except os.error,codret_partiel : + self.cr.warn("Code d'erreur de unlink : " + str(codret_partiel[0]) + " : " + codret_partiel[1]) + self.cr.warn("Impossible d'enlever le lien sur le fichier : "+fic) + codret = codret + 1 + if os.path.isfile(fic) : + try : + os.remove(fic) + except os.error,codret_partiel : + self.cr.warn("Code d'erreur de remove : " + str(codret_partiel[0]) + " : " + codret_partiel[1]) + self.cr.warn("Impossible de détruire le fichier : "+fic) + codret = codret + 1 +### print os.listdir(Rep_Calc_ASTER) +### print os.listdir(Rep_Calc_HOMARD_global) +# +#-------------------------------------------------------------------- +# 6. C'est fini ! +#-------------------------------------------------------------------- +# + return codret diff --git a/Aster/Cata/cataSTA7/Macro/macr_ascouf_calc_ops.py b/Aster/Cata/cataSTA7/Macro/macr_ascouf_calc_ops.py new file mode 100644 index 00000000..fda98363 --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/macr_ascouf_calc_ops.py @@ -0,0 +1,677 @@ +#@ MODIF macr_ascouf_calc_ops Macro DATE 22/11/2004 AUTEUR LEBOUVIE F.LEBOUVIER +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + + +def macr_ascouf_calc_ops(self,TYPE_MAILLAGE,CL_BOL_P2_GV,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM, + FOND_FISS,CHARGE,RESU_THER,AFFE_MATERIAU, + PRES_REP,ECHANGE,TORS_P1,COMP_INCR,COMP_ELAS, + SOLVEUR,CONVERGENCE,NEWTON,RECH_LINEAIRE, + INCREMENT,THETA_3D,IMPR_TABLE,IMPRESSION,INFO,TITRE ,**args): + """ + Ecriture de la macro MACR_ASCOUF_CALC + """ + from Accas import _F + import types + import math + import aster + from math import pi,sin,cos,sqrt,atan2 + ier=0 +# On recopie les mots cles affe_materiau et impr_table pour les proteger + mc_AFFE_MATERIAU=AFFE_MATERIAU + mc_IMPR_TABLE =IMPR_TABLE + # On importe les definitions des commandes a utiliser dans la macro + AFFE_MODELE =self.get_cmd('AFFE_MODELE' ) + AFFE_MATERIAU =self.get_cmd('AFFE_MATERIAU' ) + AFFE_CARA_ELEM =self.get_cmd('AFFE_CARA_ELEM' ) + AFFE_CHAR_THER_F =self.get_cmd('AFFE_CHAR_THER_F') + THER_LINEAIRE =self.get_cmd('THER_LINEAIRE' ) + AFFE_CHAR_MECA =self.get_cmd('AFFE_CHAR_MECA' ) + STAT_NON_LINE =self.get_cmd('STAT_NON_LINE' ) + CALC_ELEM =self.get_cmd('CALC_ELEM' ) + IMPR_RESU =self.get_cmd('IMPR_RESU' ) + IMPR_TABLE =self.get_cmd('IMPR_TABLE' ) + DEFI_FOND_FISS =self.get_cmd('DEFI_FOND_FISS' ) + CALC_THETA =self.get_cmd('CALC_THETA' ) + CALC_G_THETA_T =self.get_cmd('CALC_G_THETA_T' ) + CALC_G_LOCAL_T =self.get_cmd('CALC_G_LOCAL_T' ) + POST_RCCM =self.get_cmd('POST_RCCM' ) + POST_RELEVE_T =self.get_cmd('POST_RELEVE_T' ) + + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) +#------------------------------------------------------------------ +# DATA + GRMAIL = ('COUDE','PEAUINT','PEAUEXT','EXTUBE','CLGV','FACE1','FACE2') +#------------------------------------------------------------------ +# + if CL_BOL_P2_GV!=None : + if TYPE_MAILLAGE=='SOUS_EPAIS_COUDE' : + print ' la condition aux limites sur bol a section conique' + print ' est ignoree pour un coude avec sous-epaisseurs' + elif (TYPE_MAILLAGE[:4]!='FISS') and (CL_BOL_P2_GV['AZIMUT']!=None) : + ier=ier+1 + self.cr.fatal(""" mot-cle AZIMUT non autorise dans le cas d''un coude sain""") + return ier +# + if mc_IMPR_TABLE!=None : + FLAG = 0 + if (mc_IMPR_TABLE['NOM_PARA']==None) and (mc_IMPR_TABLE['POSI_ANGUL']==None) and (mc_IMPR_TABLE['POSI_CURV_LONGI']==None) : + ier=ier+1 + self.cr.fatal(""" POSI_ANGUL POSI_CURV_LONGI est obligatoire""") + return ier + if (mc_IMPR_TABLE['NOM_PARA']!=None) : + impr_table_nom_para= mc_IMPR_TABLE['NOM_PARA'] + for impt in impr_table_nom_para : + if impt in ('SI_LONG','SI_CIRC','SI_RADI') : + FLAG = 1 + if (((impt['ANGLE']==None) and (impt['POSI_ANGUL']==None) and (impt['R_CINTR' ]==None)) or + ((impt['ANGLE']==None) and (impt['R_CINTR' ]==None) and (impt['POSI_CURV_LONGI']==None)) ) : + ier=ier+1 + self.cr.fatal(""" il faut renseigner : ANGLE, R_CINTR et POSI_ANGUL ou ANGLE, R_CINTR et POSI_CURV_LONGI""") + return ier + if (mc_IMPR_TABLE['NOM_PARA']==None) : FLAG = 1 + if not FLAG : print ' ANGL_COUDE et ANGL_SOUS_EPAI sont inutiles dans ce cas' +# +#------------------------------------------------------------------ +# +# --- commande AFFE_MODELE --- +# + self.DeclareOut('modele',MODELE) + mcfact=[] + if (PRES_REP!=None) and (PRES_REP['PRES_LEVRE']=='OUI') and (TYPE_MAILLAGE[:4]=='FISS') : + mcfact.append(_F(GROUP_MA=GRMAIL ,PHENOMENE='MECANIQUE',MODELISATION='3D' )) + else: + mcfact.append(_F(GROUP_MA=GRMAIL[:5] ,PHENOMENE='MECANIQUE',MODELISATION='3D' )) + if TORS_P1!=None : + mcfact.append(_F(GROUP_MA='P1' ,PHENOMENE='MECANIQUE',MODELISATION='DIS_TR')) + if CL_BOL_P2_GV==None : + mcfact.append(_F(GROUP_MA='P2' ,PHENOMENE='MECANIQUE',MODELISATION='DIS_TR')) + modele = AFFE_MODELE( MAILLAGE = MAILLAGE , + AFFE = mcfact ) + if ECHANGE!=None : # modele thermique + __modthe = AFFE_MODELE( MAILLAGE = MAILLAGE , + AFFE = _F(TOUT ='OUI', + PHENOMENE ='THERMIQUE', + MODELISATION='3D' ) ) +#------------------------------------------------------------------ +# +# --- commande AFFE_MATERIAU --- +# + if CHAM_MATER!=None : self.DeclareOut('affmat',CHAM_MATER) + mcfact=[] + for mater in mc_AFFE_MATERIAU : + if mater['TOUT']!=None : + mcfact.append(_F(TOUT =mater['TOUT' ],MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF'])) + rccmat = mater['MATER'] + else : + mcfact.append(_F(GROUP_MA=mater['GROUP_MA'],MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF'])) + if mater['GROUP_MA'][:5]=='COUDE' : + if TORS_P1!=None : + mcfact.append(_F(GROUP_MA='P1',MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF'])) + mcfact.append(_F(GROUP_MA='P2',MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF'])) + elif (len(mc_AFFE_MATERIAU)==1) and (CL_BOL_P2_GV==None) : + mcfact.append(_F(GROUP_MA='P2',MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF'])) + elif (mater['BOL' ][:3]=='BOL' ) and (CL_BOL_P2_GV==None) : + mcfact.append(_F(GROUP_MA='P2',MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF'])) + affmat = AFFE_MATERIAU( MAILLAGE = MAILLAGE , + MODELE = modele , + AFFE = mcfact ) +#------------------------------------------------------------------ +# +# --- commande AFFE_CARA_ELEM --- +# + if (TORS_P1!=None) or (CL_BOL_P2_GV==None) : + if CARA_ELEM!=None : self.DeclareOut('carael',CARA_ELEM) + motscles={} + motscles['DISCRET']=[] + if (TORS_P1!=None) : motscles['DISCRET'].append(_F( GROUP_MA='P1' , + CARA ='K_TR_D_N', + VALE = ( 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 ) ),) + if (CL_BOL_P2_GV==None) : motscles['DISCRET'].append(_F( GROUP_MA='P2' , + CARA ='K_TR_D_N', + VALE = ( 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 ) ),) + + carael = AFFE_CARA_ELEM( MODELE = modele ,**motscles) +# + if ECHANGE!=None : +#------------------------------------------------------------------ +# +# --- commande AFFE_CHAR_THER_F --- +# condition aux limites +# + __chther = AFFE_CHAR_THER_F( MODELE = __modthe , + ECHANGE= _F(GROUP_MA='PEAUINT', + COEF_H =ECHANGE['COEF_H'], + TEMP_EXT=ECHANGE['TEMP_EXT'],), ) +#------------------------------------------------------------------ +# +# --- calcul thermique --- +# + if RESU_THER!=None : self.DeclareOut('resuth',RESU_THER) + mcsimp={} + if INCREMENT['NUME_INST_INIT']!=None : mcsimp['NUME_INIT']=INCREMENT['NUME_INST_INIT'] + if INCREMENT['NUME_INST_FIN' ]!=None : mcsimp['NUME_FIN' ]=INCREMENT['NUME_INST_FIN' ] + mcfact=_F(LIST_INST=INCREMENT['LIST_INST'],**mcsimp) + resuth = THER_LINEAIRE( MODELE = __modthe , + CHAM_MATER = affmat , + TEMP_INIT = _F(STATIONNAIRE='OUI',), + EXCIT = _F(CHARGE=__chther,), + INCREMENT = mcfact, ) +# + if CHARGE!=None : self.DeclareOut('chmeth',CHARGE) + chmeth = AFFE_CHAR_MECA( MODELE = modele , + TEMP_CALCULEE = resuth ) +#------------------------------------------------------------------ +# +# --- commande AFFE_CHAR_MECA --- +# condition aux limites de type raccord 3d-poutre +# ou bien blocage de mouvements rigides en cas d embout +# a section conique, bol de type gv +# + motscles={} + motscles['LIAISON_ELEM']=[] + if TORS_P1!=None : + motscles['LIAISON_ELEM'].append(_F( OPTION ='3D_POU' , + GROUP_MA_1='EXTUBE', + GROUP_NO_2='P1') ) + if CL_BOL_P2_GV==None : + motscles['LIAISON_ELEM'].append(_F( OPTION ='3D_POU' , + GROUP_MA_1='CLGV', + GROUP_NO_2='P2') ) + motscles['DDL_IMPO' ]=_F( GROUP_NO ='P2' , + DX = 0.0 , + DY = 0.0 , + DZ = 0.0 , + DRX = 0.0 , + DRY = 0.0 , + DRZ = 0.0 , ) + else : + motscles['FACE_IMPO' ]=_F( GROUP_MA ='CLGV' , + DNOR = 0.0 , ) + ALPHA = CL_BOL_P2_GV['ANGLE' ] + AZIM = CL_BOL_P2_GV['AZIMUT'] + ALPHAR = ALPHA*pi/180.0 + AZIMR = AZIM *pi/180.0 + DDLB1 = [] + COEFB1 = [] + if (AZIM!=0.0) and (AZIM!=180.0) and (ALPHA!=90.0) : + DDLB1.append('DX') + COEFB1.append(SIN(AZIMR)*COS(ALPHAR)) + if (AZIM!=90.0) : + DDLB1.append('DY') + COEFB1.append(COS(AZIMR)) + if (AZIM!=0.) and (AZIM!=180.) and (ALPHA!=0.): + DDLB1.append('DZ') + COEFB1.append(-SIN(AZIMR)*SIN(ALPHAR)) + POINT=['BOUT1',]*len(DDLB1) + motscles['LIAISON_DDL']=_F( GROUP_NO = POINT , + DDL = DDLB1 , + COEF_MULT = COEFB1 , + COEF_IMPO = 0.0 , ) + + __conlim = AFFE_CHAR_MECA( MODELE = modele ,**motscles) +# +# --- commande AFFE_CHAR_MECA --- +# chargement mecanique : pres_rep, effet de fond +# + if PRES_REP!=None : + motscles={} + if (PRES_REP['PRES_LEVRE']=='OUI') and (TYPE_MAILLAGE[:4]=='FISS') : + motscles['PRES_REP']=_F( GROUP_MA = ('PEAUINT','FACE1','FACE2') , + PRES = PRES_REP['PRES'] ,) + else : + motscles['PRES_REP']=_F( GROUP_MA = 'PEAUINT', + PRES = PRES_REP['PRES'] ,) + if PRES_REP['EFFE_FOND_P1']!=None : + motscles['EFFE_FOND']=_F( GROUP_MA_INT = 'BORDTU' , + GROUP_MA = 'EXTUBE' , + PRES = PRES_REP['PRES'] ,) +# + __chpres = AFFE_CHAR_MECA( MODELE = modele ,**motscles) +# +# --- commande AFFE_CHAR_MECA --- +# chargement mecanique : torseur d efforts +# + if TORS_P1!=None : + __chtor = [None]*6 + i=0 + for tors in TORS_P1: + mcsimp={} + if tors['FX']!=None : mcsimp['FX']=tors['FX'] + if tors['FY']!=None : mcsimp['FY']=tors['FY'] + if tors['FZ']!=None : mcsimp['FZ']=tors['FZ'] + if tors['MX']!=None : mcsimp['MX']=tors['MX'] + if tors['MY']!=None : mcsimp['MY']=tors['MY'] + if tors['MZ']!=None : mcsimp['MZ']=tors['MZ'] + mcfact=_F(GROUP_NO='P1',**mcsimp) + __chtor[i] = AFFE_CHAR_MECA( MODELE = modele , + FORCE_NODALE = mcfact , ) + i=i+1 +# +# --- commande STAT_NON_LINE --- +# + motscles={} +# + mcfex=[] # mot clé facteur EXCIT + mcfex.append(_F(CHARGE=__conlim,)) + if ECHANGE!=None : + mcfex.append(_F(CHARGE=chmeth,)) + if PRES_REP!=None: + if PRES_REP['FONC_MULT']!=None : + mcfex.append(_F(CHARGE=__chpres,FONC_MULT=PRES_REP['FONC_MULT'])) + else : + mcfex.append(_F(CHARGE=__chpres,)) + if TORS_P1!=None: + i=0 + for tors in TORS_P1 : + if tors['FONC_MULT']!=None : + mcfex.append(_F(CHARGE=__chtor[i],FONC_MULT=tors['FONC_MULT'])) + else : + mcfex.append(_F(CHARGE=__chtor[i],)) + i=i+1 + motscles['EXCIT'] =mcfex +# + mcfci=[] # mot clé facteur COMP_INCR :obligatoire pour les noeuds discrets + if COMP_INCR!=None : + mcfci.append(_F(TOUT='OUI' ,RELATION=COMP_INCR['RELATION'])) + elif COMP_ELAS!=None : + motscles['COMP_ELAS'] =_F(GROUP_MA='COUDE',RELATION=COMP_ELAS['RELATION']) + if TORS_P1!=None : mcfci.append( _F(GROUP_MA='P1',RELATION='ELAS')) + if CL_BOL_P2_GV==None: mcfci.append( _F(GROUP_MA='P2',RELATION='ELAS')) + motscles['COMP_INCR'] =mcfci +# + dSolveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste) + for i in dSolveur.keys(): + if dSolveur[i]==None : del dSolveur[i] +# + dConverg=CONVERGENCE[0].cree_dict_valeurs(CONVERGENCE[0].mc_liste) + for i in dConverg.keys(): + if dConverg[i]==None : del dConverg[i] +# + dNewton=NEWTON[0].cree_dict_valeurs(NEWTON[0].mc_liste) + for i in dNewton.keys(): + if dNewton[i]==None : del dNewton[i] +# + dRechlin=RECH_LINEAIRE[0].cree_dict_valeurs(RECH_LINEAIRE[0].mc_liste) + for i in dRechlin.keys(): + if dRechlin[i]==None : del dRechlin[i] +# + dIncrem=INCREMENT[0].cree_dict_valeurs(INCREMENT[0].mc_liste) + for i in dIncrem.keys(): + if dIncrem[i]==None : del dIncrem[i] +# + if TITRE!=None : + motscles['TITRE' ] =TITRE + motscles ['SOLVEUR' ] =dSolveur + motscles ['CONVERGENCE' ] =dConverg + motscles ['NEWTON' ] =dNewton + motscles ['RECH_LINEAIRE'] =dRechlin + motscles ['INCREMENT' ] =dIncrem + self.DeclareOut('nomres',self.sd) + nomres = STAT_NON_LINE( MODELE = modele , + CHAM_MATER = affmat , + CARA_ELEM = carael , + INFO = INFO , **motscles) +# +# --- commande CALC_ELEM --- +# + nomres = CALC_ELEM( reuse = nomres, + RESULTAT = nomres , + MODELE = modele , + TOUT_ORDRE = 'OUI' , + OPTION = ('SIEF_ELNO_ELGA','EQUI_ELNO_SIGM') , + INFO = INFO ,) +# +# --- post-traitements --- +# + if TYPE_MAILLAGE=='SOUS_EPAIS_COUDE': +# +# --- post traitement sous-epaisseurs: ligaments --- +# + if mc_IMPR_TABLE!=None: +# + SECT=('MI','TU','GV') + LIG=('FDRO','EXDR','EXTR','EXGA','FGAU','INGA','INTR','INDR') + if mc_IMPR_TABLE['POSI_ANGUL']==None: + ASEP=(mc_IMPR_TABLE['POSI_CURV_LONGI']/mc_IMPR_TABLE['R_CINTR'])*(180./pi) + else : + ASEP=mc_IMPR_TABLE['POSI_ANGUL'] +# +# moyenne_rccm, invariant et moyenne sur les ligaments dans +# l epaisseur +# + l_grno=MAILLAGE.LIST_GROUP_NO() + tablig=[None]*4 +# +# prelevements des ligaments circonferentiels et longitudinaux +# de la sous-epaisseur +# + lgrno=[] + for tgrno in l_grno : + if tgrno[0][:3] in ('CIR','LON') : lgrno.append(tgrno[0]) + elif tgrno[0][:5]=='PCENT' : lgrno.append(tgrno[0]) + elif (tgrno[0][:4] in LIG) and (tgrno[0][4:6] not in ('GV','TU','MI')): lgrno.append(tgrno[0]) +# + motscles={} + motscles['SEGMENT']=[] + for grno in lgrno : motscles['SEGMENT'].append(_F(INTITULE=grno,GROUP_NO=grno)) + motscles['TITRE']='TABLE DE POST-TRAITEMENT SECTION SOUS-EPAISSEUR' + tablig[1]=POST_RCCM(MATER = rccmat, + MAILLAGE = MAILLAGE, + TYPE_RESU_MECA = 'EVOLUTION', + OPTION = 'PM_PB', + TRANSITOIRE=_F(RESULTAT=nomres, + NOM_CHAM='SIEF_ELNO_ELGA',),**motscles) +# + motscles={} + motscles['ACTION']=[] + for tgrno in lgrno : + motscles['ACTION'].append(_F(RESULTAT=nomres, + NOM_CHAM='SIEF_ELNO_ELGA', + INTITULE=tgrno, + GROUP_NO=tgrno, + INVARIANT='OUI', + OPERATION='EXTRACTION',)) + motscles['TITRE']='TABLE DE POST-TRAITEMENT SECTION SOUS-EPAISSEUR' + + tablig[2]=POST_RELEVE_T(**motscles) +# + motscles={} + nommail=MAILLAGE.nom + coord =aster.getvectjev(nommail.ljust(8)+'.COORDO .VALE') + linomno =aster.getvectjev(nommail.ljust(8)+'.NOMNOE') + collgrno=aster.getcolljev(nommail.ljust(8)+'.GROUPENO') + + motscles['ACTION']=[] + for tgrno in lgrno : + if tgrno[:3]!='LON' : + if mc_IMPR_TABLE['TRANSFORMEE']=='TUBE': vecty=(0.,0.,1.) + else : vecty=(sin(ASEP*pi/180.),0.,cos(ASEP*pi/180.)) + else : + if mc_IMPR_TABLE['TRANSFORMEE']=='TUBE': vecty=(0.,0.,1.) + else : + grpn=collgrno['FGAUTU '] + LT1=coord[3*(grpn[0]-1)+2] + for node in grpn: + X = coord[3*(node-1)] + Y = coord[3*(node-1)+1] + Z = coord[3*(node-1)+2] + RCIN = mc_IMPR_TABLE['R_CINTR'] + if Z=120.) and (AZIM<=240.0): X = RM-EP/2.0 - SUREP + else: X = RM-EP/2.0 + else: X = RM+EP/2.0 + AZIMR = AZIM*2.0*pi/360.0 +# +# -- CALCUL COTE AXIALE DU CENTRE FISSURE SUR LA PLAQUE EN FONCTION +# DE L ABSCISSE CURVILIGNE DONNEE SUR LE COUDE OU DE LA POSITION +# ANGULAIRE +# + if DSF: + if GEOM=='COUDE': SFP = SF/(1.0+X/RC*cos(AZIMR)) + else : SFP = SF + else : + BETAR = BETA*2.0*pi/360.0 + if (GEOM=='COUDE'): + SF = BETAR*(RC+X*cos(AZIMR)) + SFP = SF/(1.0+X/RC*cos(AZIMR)) + else: + SF = BETAR*RC + SFP = SF + if (GEOM=='COUDE'): print 'COTE AXIALE CENTRE FISSURE SUR COUDE : %.2f'%SF + if (GEOM=='TUBE') : print 'COTE AXIALE CENTRE FISSURE SUR TUBE : %.2f'%SF + print 'COTE AXIALE CENTRE FISSURE SUR PLAQUE : %.2f'%SFP +# +# ON ENVISAGE LE CAS OU UNE PARTIE DE L AXE EST DANS LES +# DROITES DES EMBOUTS. LA TRANSFORMATION N EST FAITE QUE SUR LA +# PARTIE RESTANT DANS LE COUDE. +# + if (GEOM=='COUDE'): DIST = ALPHA*2.0*pi/360.0*(RC+X*cos(AZIMR)) + else : DIST = ALPHA*2.0*pi/360.0*RC + BCOUD = 0.0 + BEMB = 0.0 + if abs(ORIEN)<0.01: +# -- FISSURE LONGITUDINALE (0 DEGRE) + BSUP = SF + AXEC + BINF = SF - AXEC + if BSUP>DIST: + BCOUD = DIST - BINF + BEMB = BSUP - DIST + elif BINF<0. : + BCOUD = BSUP + BEMB = abs(BINF) + elif (BINF>=0. and BSUP<=DIST): + BCOUD = 2.0*AXEC + elif abs(ORIEN-90.)<0.01: +# -- FISSURE CIRCONFERENTIELLE (90 DEGRES) + BSUP = SF + BINF = SF + if BSUP>DIST: + BCOUD = DIST - BINF + BEMB = BSUP - DIST + elif BINF<0. : + BCOUD = BSUP + BEMB = abs(BINF) + elif (BINF>=0. and BSUP<=DIST): + BCOUD = 2.0*AXEC + else: +# -- FISSURE A +/- 45 DEGRES SUR INTRADOS OU EXTRADOS + BSUP = SF + sqrt(2.0)/2.0*AXEC + BINF = SF - sqrt(2.0)/2.0*AXEC + if BSUP>DIST: + BCOUD = (DIST - BINF)*sqrt(2.0) + BEMB = (BSUP - DIST)*sqrt(2.0) + elif BINF<0. : + BCOUD = BSUP *sqrt(2.0) + BEMB = abs(BINF)*sqrt(2.0) + elif (BINF>=0. and BSUP<=DIST): + BCOUD = 2.0*AXEC + print 'PARTIE DU GRAND AXE DANS LE COUDE : %.2f'%BCOUD + print 'PARTIE DU GRAND AXE DANS L EMBOUT : %.2f'%BEMB +# +# -- CALCUL DE LA TAILLE DU GRAND AXE FISSURE SUR LA PLAQUE +# + NEWT=0 + if abs(ORIEN)<0.01: +# -- FISSURE LONGITUDINALE (0 DEGRE) + if GEOM=='COUDE': AXECP = BCOUD/(1.0+X/RC*cos(AZIMR)) + BEMB + else : AXECP = BCOUD + BEMB + elif abs(ORIEN-90.)<0.01: +# -- FISSURE CIRCONFERENTIELLE (90 DEGRES) + AXECP = (BCOUD+BEMB)*RM/X + else : + if GEOM=='COUDE': +# ------- TRANSFORMATION COUDE + if AZIM in (0.,180.): +# -- FISSURE A +/- 45 DEGRES SUR INTRADOS OU EXTRADOS + AXECP = BCOUD*RM*sqrt(2.)/( X*sqrt(1.+(RM/X+RM/RC*cos(AZIMR))**2) )+\ + BEMB*sqrt( (1.0+(X/RM)**2)*0.5 ) + else : +# -- FISSURE A +/- 45 DEGRES AILLEURS + AXECP = funct_root.root(ASCFON,(BCOUD-1.,BCOUD+1.)) + AXECP = AXECP + BEMB*sqrt( (1.+(X/RM)**2)*0.5 ) + AXECC = ASCFON(AXECP)+BCOUD + NEWT=1 + elif GEOM=='TUBE': + AXECP = (BCOUD+BEMB)*sqrt( (1.+(X/RM)**2)*0.5 ) + else : + AXECP = BCOUD + BEMB +# + if GEOM=='COUDE': + print 'TAILLE GRAND AXE COUDE DONNE : %.2f'%(2.*AXEC) + elif GEOM=='TUBE': + print 'TAILLE GRAND AXE TUBE DONNE : %.2f'%(2.*AXEC) + print 'TAILLE GRAND AXE PLAQUE DEDUIT : %.2f'%AXECP + if NEWT: + print 'METHODE DE NEWTON FISSURE A 45 DEGRES -->' + print 'TAILLE GRAND AXE COUDE RECALCULE : %.2f'%AXECC + if GEOM=='COUDE' and BEMB>0. and BSUP>DIST : + SFP = ALPHA*2.*pi*RC/360. - AXECP/2. + BEMB + print 'CORRECTION CENTRE : FISSURE A CHEVAL SUR EMBOUT' + print 'ABSC. CURV. AXIALE CENTRE FISSURE SUR PLAQUE : %.2f'%SFP + if GEOM=='COUDE' and BEMB>0. and BINF<0. : + SFP = + AXECP/2. - BEMB + print 'CORRECTION CENTRE : FISSURE A CHEVAL SUR EMBOUT' + print 'ABSC. CURV. AXIALE CENTRE FISSURE SUR PLAQUE : %.2f'%SFP +# +# -- CORRECTION DU PETIT AXE DE LA FISSURE QUAND CELLE-CI SE TROUVE SUR +# LA ZONE DE SUREPAISSEUR +# + ALPHAR = ALPHA*2.*pi/360. + ZSUR1 = ALPHAR*RC/10. + ZSUR2 = ALPHAR*RC*9./10. + YFISS = (AZIMR-pi/2.)*RM + MU = 0. + if (AZIM>=120.) and (AZIM<=240.): + if (SFP>=ZSUR1) and (SFP<=ZSUR2): MU = 1. + elif (SFP<=ZSUR1): MU = SFP/ZSUR1 + elif (SFP>ZSUR2): MU = (ALPHAR*RC-SFP)/ZSUR1 + elif (AZIM>=90.) and (AZIM<=120.): + if (SFP>=ZSUR1) and (SFP<=ZSUR2): MU = YFISS/(pi/6.*RM) + elif (SFP<=ZSUR1): MU = YFISS*SFP/(pi/6.*RM*ZSUR1) + elif (SFP>ZSUR2): MU = YFISS*(ALPHAR*RC-SFP)/(pi/6.*RM*ZSUR1) + elif (AZIM>=240.) and (AZIM<=270.): + if (SFP>=ZSUR1) and (SFP<=ZSUR2): MU = (YFISS-5.*pi/6.*RM)/(pi/6.*RM) + elif (SFP<=ZSUR1): MU = (YFISS-5.*pi/6.*RM)*SFP/(pi/6.*RM*ZSUR1) + elif (SFP>ZSUR2): MU = (YFISS-5.*pi/6.*RM)*(ALPHAR*RC-SFP)/(pi/6.*RM*ZSUR1) +# + if SUREP!=0.: + AXEAP = AXEA * EP / ( EP + MU*SUREP ) + print '--> CORRECTION DUE A LA SUREPAISSEUR' + print '--> TAILLE PETIT AXE PLAQUE : %.2f'%AXEAP + else: AXEAP = AXEA +# + return AXEAP,AXECP,SFP + + +# ------------------------------------------------------------------------------ +def ASCSEP(MCL_SOUS_EPAIS,ALPHA,RM,RC,EP,GEOM,SYME): + """ + MACR_ASCOUF_MAIL ASCSEP + taille initiale sur la plaque des sous-epaisseurs + + ------------DONNEES FOURNIES PAR L UTILISATEUR-------------------- + + ALPHA = ANGLE DU COUDE + RM = RAYON MOYEN DU COUDE + RC = RAYON DE CINTRAGE DU COUDE + EP = EPAISSEUR DU COUDE + GEOM = TYPE DE GEOMETRIE MODELISEE (COUDE OU TUBE) + SYME = QUART DE STRUCTURE SI 'OUI' + + """ + ier=0 + CG=pi/180. +# +# --- BOUCLE SUR L ENSEMBLE DES SOUS-EPAISSEURS +# + i=0 + for ssep in MCL_SOUS_EPAIS : + i=i+1 + print '-------------------------------------' + print 'SOUS-EPAISSEUR NUMERO %d'%i + print '-------------------------------------' +# +# --- CAS DES SOUS-EPAISSEURS AXISYMETRIQUES +# + if ssep['TYPE']=='AXIS': + print 'SOUS-EPAISSEUR AXISYMETRIQUE : ' + print 'CALCUL DE LA TAILLE LONGI ENVELOPPE EN INTRADOS (AZIMUT PI)' + ssep.ICIRP = 2.*pi*RM + ssep.ISCP = pi*RM + ssep.IPHIC = 180. + AZIMC = pi + else: +# +# -- CALCUL DE L ABSCISSE CURVILIGNE CIRCONF.SUR LA PLAQUE +# EN FONCTION DE L AZIMUT OU DE L ABSCISSE CURVIL.CIRCONF +# SUR LE COUDE DU CENTRE DE LA SOUS-EPAISSEUR +# NB : MESURE FAITE EN PEAU EXTERNE SUR LE COUDE +# + if ssep['POSI_CURV_CIRC']!=None: + ssep.ISCP = ssep['POSI_CURV_CIRC']*RM/(RM+EP/2.) + AZIMC = ssep.ISCP/RM + ssep.IPHIC = ssep['POSI_CURV_CIRC']/(RM+EP/2.)*180./pi + print 'AZIMUT CENTRE SOUS-EPAISSEUR (DEGRES) : %.2f'%ssep.IPHIC + else: + ssep.ISCP = ssep['AZIMUT']*pi*RM/180. + AZIMC = ssep['AZIMUT']*pi/180. + print 'ABSC. CURV. CIRCONF. CENTRE SOUS-EPAISSEUR SUR COUDE : %.2f'%(AZIMC*(RM+EP/2.)) +# +# PASSAGE DANS LE REPERE PLAQUE (0,2PI) AVEC ORIGINE FLANC DROIT +# CAR L ORIGINE DES DONNEES CIRCONF. EST EN EXTRADOS +# + if ssep.ISCP>(3.*pi*RM/2.): ssep.ISCP = ssep.ISCP - 3.*pi*RM/2. + else: ssep.ISCP = ssep.ISCP + pi*RM/2. + print 'ABSC. CURV. CIRCONF. CENTRE SOUS-EPAISSEUR SUR PLAQUE : %.2f'%ssep.ISCP +# +# -- CALCUL DE LA TAILLE CIRCONFERENTIELLE +# NB : MESURE FAITE EN PEAU EXTERNE SUR LE COUDE +# + ssep.ICIRP = ssep['AXE_CIRC']*(RM/(RM+EP/2.)) + if ssep.ICIRP>(2.*pi*RM) : + print ' ASCSEP valeur hors domaine' + print ' sous-epaisseur numero : %d'%i + print ' taille axe circonferentiel : %.2f'%ssep.ICIRP + print ' bord plaque : %.2f'%2*pi*RM + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + print 'TAILLE CIRCONFERENTIELLE SOUS-EPAISSEUR SUR PLAQUE : %.2f'%ssep.ICIRP + print '<=> TAILLE EQUIVALENTE SUR LA CIRCONFERENCE (DEGRES) : %.2f'%(ssep.ICIRP*360./(2.*pi*RM)) +# +# -- CALCUL COTE AXIALE DU CENTRE SOUS-EPAISSEUR SUR LA PLAQUE +# EN FONCTION DE L ABSCISSE CURVILIGNE DONNEE SUR LE COUDE +# OU DE LA POSITION ANGULAIRE +# NB : MESURE FAITE EN PEAU EXTERNE SUR LE COUDE +# + if ssep['POSI_CURV_LONGI']!=None: + if GEOM=='COUDE': + ssep.ISLP = ssep['POSI_CURV_LONGI']/(1.+(RM+EP/2.)/RC*cos(AZIMC)) + AZIML = ssep.ISLP/RC + print 'ANGLE COUDE CENTRE SOUS-EPAISSEUR (DEGRES) : %.2f'%(AZIML*180./pi) + else : + ssep.ISLP = ssep['POSI_CURV_LONGI'] + if (SYME in ('QUART','DEMI')) and (ssep.ISLP!=ALPHA*CG*RC/2.) : + print ' ASCSEP cas de symetrie :' + print ' la sous-epaisseur doit etre dans la section mediane du coude !' + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + else : + if GEOM=='COUDE': + print 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR COUDE : %.2f'%((ssep.BETA)*CG*(RC+(RM+EP/2.)*cos(AZIMC))) + AZIML = (ssep.BETA)*CG + else : + print 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR TUBE : %.2f'%((ssep.BETA)*CG*RC) + ssep.ISLP = (ssep.BETA)*CG*RC + if (SYME in ('QUART','DEMI')) and (ssep.BETA!=ALPHA/2.) : + print ' ASCSEP cas de symetrie :' + print ' la sous-epaisseur doit etre dans la section mediane du coude !' + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + print 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR PLAQUE : %.2f'%ssep.ISLP +# +# -- CALCUL DE LA TAILLE LONGITUDINALE +# NB : MESURE FAITE EN PEAU EXTERNE SUR LE COUDE +# +# ON ENVISAGE LE CAS OU UNE PARTIE DE L AXE EST DANS LES +# DROITES DES EMBOUTS. LA TRANSFORMATION N EST FAITE QUE SUR LA +# PARTIE RESTANT DANS LE COUDE. +# + if GEOM=='COUDE' : DIST = ALPHA*CG*(RC+(RM+EP/2.)*cos(AZIMC)) + else : DIST = ALPHA*CG*RC + if ssep['POSI_CURV_LONGI']!=None: + BSUP = ssep['POSI_CURV_LONGI']+ssep['AXE_LONGI']/2. + BINF = ssep['POSI_CURV_LONGI']-ssep['AXE_LONGI']/2. + else: + if GEOM=='COUDE' : + BSUP = ssep.BETA*CG*(RC+(RM+EP/2.)*cos(AZIMC))+ssep['AXE_LONGI']/2. + BINF = ssep.BETA*CG*(RC+(RM+EP/2.)*cos(AZIMC))-ssep['AXE_LONGI']/2. + else: + BSUP = ssep.BETA*CG*RC + ssep['AXE_LONGI']/2. + BINF = ssep.BETA*CG*RC - ssep['AXE_LONGI']/2. + BCOUD1 = 0. + BCOUD2 = 0. + BEMB1 = 0. + BEMB2 = 0. + if BINF<0. and BSUP>DIST : + BCOUD1 = DIST + BEMB1 = abs(BINF) + BSUP-DIST + elif BSUP>DIST : + BCOUD1 = DIST - BINF + BEMB1 = BSUP - DIST + elif BINF<0 : + BCOUD2 = BSUP + BEMB2 = abs(BINF) + elif (BINF>=0. and BSUP<=DIST) : + BCOUD1 = ssep['AXE_LONGI'] + BCOUD = BCOUD1+ BCOUD2 + BEMB = BEMB1 + BEMB2 + if GEOM=='COUDE' : BPLAQ = BCOUD/(1.+(RM+EP/2.)/RC*cos(AZIMC)) + else : BPLAQ = BCOUD + ssep.ILONP = BPLAQ+BEMB + if BEMB1>0.: + ssep.ISLP = ALPHA*CG*RC - ssep.ILONP/2. + BEMB1 + print 'CORRECTION CENTRE : SOUS-EP. A CHEVAL SUR EMBOUT' + print 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR PLAQUE : %.2f'%ssep.ISLP + if BEMB2>0.: + ssep.ISLP = ssep.ILONP/2. - BEMB2 + print 'CORRECTION CENTRE : SOUS-EP. A CHEVAL SUR EMBOUT' + print 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR PLAQUE : %.2f'%ssep.ISLP + if ssep.ISLP<0. : ssep.ISLP = 0. + if (ssep.ISLP>ALPHA*CG*RC) : ssep.ISLP = ALPHA*CG*RC +# +# SI LE CENTRE DE LA SOUS-EP CALCULE SUR LA PLAQUE EST DANS L EMBOUT +# ON CORRIGE SA POSITION EN LE METTANT A L INTERFACE SINON CA PLANTE +# DANS LA PROC DE MAILLAGE (A AMELIORER) +# + print 'TAILLE LONGITUDINALE SOUS-EPAISSEUR SUR PLAQUE : %.2f'%ssep.ILONP + print '<=> TAILLE EQUIVALENTE PAR RAPPORT A L ANGLE DU COUDE (DEGRES): %.2f'%(ssep.ILONP*360/(2*pi*RC)) +# + return ier + +# ------------------------------------------------------------------------------ +def ASCTCI(MCL_SOUS_EPAIS,RM): + """ + MACR_ASCOUF_MAIL ASCTCI + APPELEE DANS : ASCSYM et ASCPRE + CALCUL TABLEAU TRIE DES ABSCISSES DES CENTRES DE SOUS-EPAISSEURS + + ------------DONNEES FOURNIES PAR L UTILISATEUR-------------------- + + RM = RAYON MOYEN DU COUDE + + -----------------DONNEES RENVOYEES----------------------- + + IABSC1 = CORRESPONDANCE ABSC. CURVI. CIRCONF. SOUS-EP. I + IABSC2 = CORRESPONDANCE ABSC. GAUCHE ET DROITE CIRCONF. SOUS-EP. I + COORXD = ABSC. DU BORD DROIT DE LA SOUS-EP I + COORXG = ABSC. DU BORD GAUCHE DE LA SOUS-EP I + + """ +# +# --- tri du tableau des abscisses curvilignes circonf. plaque +# + TAMPON = [] + COORXG = [] + COORYG = [] + i=0 + for ssep in MCL_SOUS_EPAIS : + i=i+1 + if (ssep.ISCP>2.*pi*RM) or (ssep.ISCP<0.) : + print ' valeur hors domaine' + print ' SOUS-EPAISSEUR NUMERO :%d'%MCL_SOUS_EPAIS.index(ssep) + print ' ABSC. CURV. CIRCONF. :%.2f'%ssep.ISCP + print ' BORD PLAQUE :%.2f'%(2.*pi*RM) + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + TAMPON.append((ssep.ISCP,i)) + TAMPON.sort() + IABSC1=[] + for j in range(i): + IABSC1.append(TAMPON[j][1]) + print + print 'TRI DES CENTRES ABSC. CURV. CIRCONF. :' + print '------------------------------------' + i=0 + for ssep in TAMPON : + i=i+1 + print '%d) SOUS-EP NO %d <> XC = %.2f'%(i,ssep[1],ssep[0]) +# +# --- calcul des abcisses droites et gauches des sous-epaisseurs +# + COORXD=[] + COORXG=[] + for bid in TAMPON : + XG=bid[0]-MCL_SOUS_EPAIS[bid[1]-1].ICIRP/2. + if XG<0. : XG=XG+2.*pi*RM + COORXG.append(XG) + XD=bid[0]+MCL_SOUS_EPAIS[bid[1]-1].ICIRP/2. + if XD>2.*pi*RM : XD=XD-2.*pi*RM + COORXD.append(XD) +# +# --- tri des bornes d'intervalles en abscisse +# + TAMPON = [] + for j in range(len(MCL_SOUS_EPAIS)): + TAMPON.append((COORXG[j],2*j+1)) + TAMPON.append((COORXD[j],2*j+2)) + TAMPON.sort() + IABSC2=[] + for j in range(2*len(MCL_SOUS_EPAIS)): + IABSC2.append(TAMPON[j][1]) + print + print 'TRI DES INTERVALLES G ET D ABSC. CURV. CIRCONF. :' + print '-----------------------------------------------' + for j in range(2*len(MCL_SOUS_EPAIS)): + if fmod(IABSC2[j],2): + print '%d) SOUS-EP NO %d <> XG = %.2f'%(j+1,IABSC1[IABSC2[j]/2],TAMPON[j][0]) + else: + print '%d) SOUS-EP NO %d <> XD = %.2f'%(j+1,IABSC1[IABSC2[j]/2-1],TAMPON[j][0]) +# + return TAMPON,IABSC1,IABSC2,COORXD,COORXG + +# ------------------------------------------------------------------------------ +def ASCTLO(MCL_SOUS_EPAIS,RC,ALPHA,LTCHAR,LTCLIM): + """ + MACR_ASCOUF_MAIL ASCTLO + APPELEE DANS : ASCSYM et ASCPRE + CALCUL TABLEAU TRIE DES ORDONNEES DES CENTRES DE SOUS-EPAISSEURS + + ------------DONNEES FOURNIES PAR L UTILISATEUR-------------------- + + RC = RAYON MOYEN DU COUDE + ALPHA = ANGLE DU COUDE + LTCHAR = LONGUEUR DE L'EMBOUT DU COTE CHARGEMENT + LTCLIM = LONGUEUR DE L'EMBOUT DU COTE CONDITIONS AUX LIMITES + + -----------------DONNEES RENVOYEES----------------------- + + IORDO1 = CORRESPONDANCE ORDO. CURVI. LONGIT. SOUS-EP. I + IORDO2 = CORRESPONDANCE ORDO. GAUCHE ET DROITE LONGIT. SOUS-EP. I + COORYI = ORDONNEE. DU BORD INTERIEUR DE LA SOUS-EP I + COORYS = ORDONNEE. DU BORD SUPERIEUR DE LA SOUS-EP I + + """ +# +# tri du tableau des abscisses curvilignes axiales plaque +# + ALPHAR = 2.*ALPHA*pi/360. + TAMPON = [] + i=0 + for ssep in MCL_SOUS_EPAIS : + i=i+1 + if (ssep.ISLP>ALPHAR*RC) or (ssep.ISLP<0.) : + print ' valeur hors domaine' + print ' SOUS-EPAISSEUR NUMERO :%d'%MCL_SOUS_EPAIS.index(ssep) + print ' ABSC. CURV. LONGIT. :%.2f'%ssep.ISLP + print ' BORDS PLAQUE :%.2f'%(ALPHAR*RC) + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + TAMPON.append((ssep.ISLP,i)) + TAMPON.sort() + IORDO1=[] + for j in range(i): + IORDO1.append(TAMPON[j][1]) + print + print 'TRI DES CENTRES ABSC. CURV. LONGIT. :' + print '------------------------------------' + i=0 + for ssep in TAMPON : + i=i+1 + print '%d) SOUS-EP NO %d <> YC = %.2f'%(i,ssep[1],ssep[0]) +# +# calcul des abscisses sup. et inf. des sous-ep. +# + COORYI=[] + COORYS=[] + EPS=0.000000000001 + for bid in TAMPON : + i=i+1 + YI=bid[0]-MCL_SOUS_EPAIS[bid[1]-1].ILONP/2. + YS=bid[0]+MCL_SOUS_EPAIS[bid[1]-1].ILONP/2. + if fabs(bid[0]) valeur hors domaine' + print ' SOUS-EPAISSEUR NUMERO :',bid[1] + print ' BORD INFERIEUR :',YI + print ' BORD PLAQUE :',-LTCHAR + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + if YS>(ALPHAR*RC+LTCLIM): + print ' valeur hors domaine' + print ' SOUS-EPAISSEUR NUMERO :',bid[1] + print ' BORD INFERIEUR :',YS + print ' BORD PLAQUE :',ALPHAR*RC+LTCLIM + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + COORYI.append(YI) + COORYS.append(YS) +# +# tri des bornes d'intervalles en abscisse +# + TAMPON = [] + for j in range(len(MCL_SOUS_EPAIS)): + TAMPON.append((COORYI[j],2*j+1)) + TAMPON.append((COORYS[j],2*j+2)) + TAMPON.sort() + IORDO2=[] + for j in range(2*len(MCL_SOUS_EPAIS)): + IORDO2.append(TAMPON[j][1]) + print + print 'TRI DES INTERVALLES I ET S ABSC. CURV. LONGIT. :' + print '-----------------------------------------------' + for j in range(2*len(MCL_SOUS_EPAIS)): + if fmod(IORDO2[j],2): + print '%d) SOUS-EP NO %d <> YI = %.2f'%(j+1,IORDO1[IORDO2[j]/2],TAMPON[j][0]) + else: + print '%d) SOUS-EP NO %d <> YS = %.2f'%(j+1,IORDO1[IORDO2[j]/2-1],TAMPON[j][0]) +# + return TAMPON,IORDO1,IORDO2,COORYI,COORYS +# +# +################################################################################ +################################################################################ +################################################################################ +# MACR_ASCOUF_MAIL ASCNBE +# APPELEE DANS : ASCSYM et ASCPRE +# CALCUL DU NOMBRE D'ELEMENTS LONGI ET CIRCONF. DANS LES SOUS-EPAISSEURS +# +#-----------------DONNEES FOURNIES PAR L UTILISATEUR-------------------- +# +# COORXG = ABSCISSE DU BORD GAUCHE DE LA SOUS-EPAISSEUR I +# COORXD = ABSCISSE DU BORD DROIT DE LA SOUS-EPAISSEUR I +# COORYI = ORDONNEE DU BORD INFERIEUR DE LA SOUS-EPAISSEUR I +# COORYS = ORDONNEE DU BORD SUPERIEUR DE LA SOUS-EPAISSEUR I +# BD = ABSCISSE DU BORD DROIT DE LA ZONE CIRCONF J +# BG = ABSCISSE DU BORD GAUCHE DE LA ZONE CIRCONF J +# BS = ORDONNEE DU BORD SUPERIEUR DE LA ZONE LONGI J +# BI = ORDONNEE DU BORD INFERIEUR DE LA ZONE LONGI J +# DNX = DENSITE ET NOMBRE D'ELEMENTS CIRCONF. DE LA ZONE J +# DNY = DENSITE ET NOMBRE D'ELEMENTS LONGIT. DE LA ZONE J +# INDSEX = NUMERO DE SOUS-EPAISSEUR CONTENU DANS LA ZONE CIRCONF J +# INDSEY = NUMERO DE SOUS-EPAISSEUR CONTENU DANS LA ZONE LONGI J +# RM = RAYON MOYEN DU COUDE +# RC = RAYON DE CINTRAGE DU COUDE +# IABSC1 = CORRESPONDANCE ABSCISSE CURVILIGNE CIRCONF. SOUS-EP. I +# IORDO1 = CORRESPONDANCE ABSCISSE CURVILIGNE LONGIT. SOUS-EP. I +# +#----------------------DONNEES RENVOYEES----------------------- +# +# NLX = NOMBRE TOTAL D'ELEMENTS CIRCONF. DE LA SOUS-EPAISSEUR K +# NLY = NOMBRE TOTAL D'ELEMENTS LONGIT. DE LA SOUS-EPAISSEUR K +# +# ------------------------------------------------------------------------------ +def ASCNBE(MCL_SOUS_EPAIS,COORXG,COORXD,COORYI,COORYS,BD,BG,BS,BI,DNX,DNY,RM,RC, + INDSEX,INDSEY,IABSC1,IORDO1): +# +# calcul du nombre d'elements longi. et circonf. dans les sous-epaisseurs: +# + print + print 'DETERMINATION DU NOMBRE D''ELEMENTS DANS LES SOUS-EPAISSEURS :' + print '------------------------------------------------------------' + NLX=[0]*len(MCL_SOUS_EPAIS) + NLY=[0]*len(MCL_SOUS_EPAIS) + for j in range(len(BD)): + if INDSEX[j]!=0: +# calcul au passage du nombre d'elements sur chaque zone circonf. + RNBEL = (BD[j]-BG[j])*360./(DNX[2*j]*2.*pi*RM) + RNBEL2 = RNBEL - floor(RNBEL) + if RNBEL2 <= 0.5 : NBEL=int(floor(RNBEL)) + else : NBEL=int(floor(RNBEL))+1 + if NBEL <= 1 : NBEL=2 +# calcul au passage du nombre d'elements sur chaque sous-epaisseur circonf. + for i in range(len(MCL_SOUS_EPAIS)): + l=IABSC1[i]-1 + if ((COORXG[l]=COORXG[l] and BD[j]<=COORXD[l])\ + or (COORXG[l]>=COORXD[l] and (BG[j]<=COORXG[l] or BD[j]>=COORXD[l]))): + NLX[i]=NLX[i]+NBEL + print 'SOUS-EP NO %d ZONE CIRC. NO %d NB ELEM. = %d'%(i+1,j+1,NBEL) + + for j in range(len(BS)): + if INDSEY[j]!=0: +# calcul au passage du nombre d'elements sur chaque zone longi. + RNBEL = ((BS[j]-BI[j])*360.)/(DNY[2*j]*2.*pi*RC) + RNBEL2 = RNBEL - floor(RNBEL) + if RNBEL2 <= 0.5 : NBEL=int(floor(RNBEL)) + else : NBEL=int(floor(RNBEL))+1 + if NBEL <= 1 : NBEL=2 +# calcul au passage du nombre d'elements sur chaque sous-epaisseur circonf. + i=0 + for i in range(len(MCL_SOUS_EPAIS)): + l=IORDO1[i]-1 + if (BI[j]>=COORYI[l] and BS[j]<=COORYS[l]): + NLY[i]=NLY[i]+NBEL + print 'SOUS-EP NO %d ZONE LONGI. NO %d NB ELEM. = %d'%(i+1,j+1,NBEL) + + for j in range(len(NLX)): + print 'SOUS-EP NO %d NBE TOTAL ELEMENTS CIRCONF. : %d'%(j+1,NLX[j]) + print 'SOUS-EP NO %d NBE TOTAL ELEMENTS LONGI. : %d'%(j+1,NLY[j]) + +# + return NLX,NLY +# +################################################################################ +################################################################################ +################################################################################ +# MACR_ASCOUF_MAIL ASCSYM +# PREPARATION DES DONNEES POUR LE MAILLAGE DE PLAQUE AVEC +# SOUS-EPAISSEURS : +# CAS D UNE SOUS-EPAISSEUR DANS LE PLAN DE SYMETRIE +# CONSTRUCTION D UN QUART DU MAILLAGE +# - CALCUL TABLEAU TRIE DES ABSCISSES ET ORDONNEES DES CENTRES +# - CALCUL TABLEAU DES ZONES COUVERTES PAR LES SOUS-EPAISSEURS +# +#-----------------DONNEES FOURNIES PAR L UTILISATEUR-------------------- +# +# RM = RAYON MOYEN DU COUDE +# RC = RAYON DE CINTRAGE DU COUDE +# ALPHA = ANGLE DU COUDE +# LT = LONGUEUR DE L EMBOUT DU COTE CHARGEMENT +# LGV = LONGUEUR DE L EMBOUT DU COTE CONDITIONS AUX LIMITES +# NBSEP = NOMBRE DE SOUS-EPAISSEURS +# +#----------------------DONNEES RENVOYEES----------------------- +# +# NZONEX = NOMBRE DE ZONES CIRCONFERENTIELLES +# NZONEY = NOMBRE DE ZONES LONGITUDINALES +# +# ------------------------------------------------------------------------------ +def ASCSYM(MCL_SOUS_EPAIS,RM,RC,ALPHA,LTCHAR,LTCLIM): + ier=0 + DERAFC = 18. + DERAFL = 5. + INDSEX = [] + INDSEY = [] + BG = [] + BD = [] + INDBG = [] + INDBD = [] + DNX = [] + +# +# --- tri des donnees sous-ep. en circonferentiel + TAMPON,IABSC1,IABSC2,COORXD,COORXG=ASCTCI(MCL_SOUS_EPAIS,RM) +# +# --- calcul des zones en circonferentiel +# + ssep=MCL_SOUS_EPAIS[0] + if (ssep.ISCP BORNE INF. = %.2f'\ + ' / BORNE SUP. = %.2f * SOUS-EPAISSEUR'%(j+1,BI[j],BS[j]) + else: + print 'ZONE NO %d <> BORNE INF. = %.2f'\ + ' / BORNE SUP. = %.2f'%(j+1,BI[j],BS[j]) + +# calcul du nombre d'elements longi. et circonf. dans les soue-ep + NLX,NLY=ASCNBE(MCL_SOUS_EPAIS,COORXG,COORXD,COORYI,COORYS,BD,BG,BS,BI, + DNX,DNY,RM,RC,INDSEX,INDSEY,IABSC1,IORDO1) + + return ier,NLX,NLY,NZONEX,NZONEY,BG,BD,BI,BS,INDBG,INDBD,INDBI,INDBS,DNX,DNY +################################################################################ +################################################################################ +################################################################################ +################################################################################ +# MACR_ASCOUF_MAIL ASCPRE +# PREPARATION DES DONNEES POUR LE MAILLAGE DE PLAQUE +# SOUS-EPAISSEURS : +# - CALCUL TABLEAU TRIE DES ABSCISSES ET ORDONNEES DES CENTRES +# - CALCUL TABLEAU DES ZONES COUVERTES PAR LES SOUS-EPAISSEURS +# +#-----------------DONNEES FOURNIES PAR L UTILISATEUR-------------------- +# +# RM = RAYON MOYEN DU COUDE +# RC = RAYON DE CINTRAGE DU COUDE +# ALPHA = ANGLE DU COUDE +# LT = LONGUEUR DE L EMBOUT DU COTE CHARGEMENT +# LGV = LONGUEUR DE L EMBOUT DU COTE CONDITIONS AUX LIMITES +# NBSEP = NOMBRE DE SOUS-EPAISSEURS +# SYME = "QUART" DE STRUCTURE, "DEMI" STRUCTURE OU BIEN "ENTIER" +# +#----------------------DONNEES RENVOYEES----------------------- +# +# NZONEX = NOMBRE DE ZONES CIRCONFERENTIELLES +# NZONEY = NOMBRE DE ZONES LONGITUDINALES +# +# ------------------------------------------------------------------------------ +def ASCPRE(MCL_SOUS_EPAIS,RM,RC,ALPHA,SYME,LTCHAR,LTCLIM): + ier=0 + ALPHAR = 2.*ALPHA*pi/360. + DERAFC = 18. + DERAFL = 5. + EPSI = 0.001 + NBSEP = len(MCL_SOUS_EPAIS) + print 'RECHERCHE DES ZONES DE SOUS-EPAISSEURS DANS LE COUDE\n' + +# tri des donnees sous-epaisseurs en circonferentiel + TAMPON,IABSC1,IABSC2,COORXD,COORXG=ASCTCI(MCL_SOUS_EPAIS,RM) +# --- calcul des recouvrements de zones en circonferentiel +# + NZONEX=0 + j=0 + ICE=1 + NBGAU=0 + NBDRO=0 + TYPG=0 + TYPD=0 + go10=1 + go20=1 +# + BG =[] + BD =[] + INDBG =[] + INDBD =[] + DNX =[] + INDSEX=[] +# + + while go10: + + j=j+1 +# +# definition de la zone courante (borne gauche, borne droite) +# +# TYPG = type de la borne: +# 0 : borne gauche sous-epaisseur +# 1 : borne droite sous-epaisseur +# 2 : centre sous-epaisseur +# + if j>2*NBSEP and ICE= 2*NBSEP : + MIND = TAMPON[2*NBSEP-1][0] + MING = MIND + if fmod(IABSC2[2*NBSEP-1],2): + TYPG = 0 + NUMG = IABSC1[IABSC2[2*NBSEP-1]/2] + else: + TYPG = 1 + NUMG = IABSC1[IABSC2[2*NBSEP-1]/2-1] + TYPD=TYPG + NUMD=NUMG + else: + MING=TAMPON[j-1][0] + MIND=TAMPON[j][0] + if fmod(IABSC2[j-1],2): + TYPG = 0 + NUMG = IABSC1[IABSC2[j-1]/2] + else: + TYPG = 1 + NUMG = IABSC1[IABSC2[j-1]/2-1] + if fmod(IABSC2[j],2): + TYPD = 0 + NUMD = IABSC1[IABSC2[j]/2] + else: + TYPD = 1 + NUMD = IABSC1[IABSC2[j]/2-1] + if fabs(MING-MIND)2*NBSEP and ICE>=NBSEP: + break #on sort de la boucle + + while go20: + i=ICE + if i<=NBSEP: +# recherche des centres a intercaler + INDC=IABSC1[i-1] + if i>1: +# le centre est deja le meme que precedent + if fabs(MCL_SOUS_EPAIS[INDC-1].ISCP-MCL_SOUS_EPAIS[IABSC1[i-2]-1].ISCP) < EPSI : + ICE=ICE+1 + continue + if MCL_SOUS_EPAIS[INDC-1].ISCP < MING : +# le centre est la nouvelle borne gauche + j=j-1 + MIND = MING + TYPD = TYPG + NUMD = NUMG + MING = MCL_SOUS_EPAIS[INDC-1].ISCP + TYPG = 2 + NUMG = INDC + ICE = ICE+1 + elif MCL_SOUS_EPAIS[INDC-1].ISCP < MIND : +# le centre est la nouvelle borne droite + MIND = MCL_SOUS_EPAIS[INDC-1].ISCP + TYPD = 2 + NUMD = INDC + ICE = ICE+1 + continue + else:pass + NZONEX=NZONEX+1 +# +# codes d'intervalles de zones +# 0 0 = zone sous-ep. +# 0 1 = sous-ep. a droite de la zone +# 1 0 = sous-ep. a gauche de la zone +# 1 1 = sous-ep. a droite et a gauche de la zone +# +# cas ou la premiere zone ne commence pas au bord de la plaque + if MING>0. and NZONEX==1 : + BG.append(0.) + BD.append(MING) + if TYPG==0: + INDBG.append(0) + INDBD.append(1) + DNX.append(DERAFC) + DNX.append(0) + INDSEX.append(0) + elif TYPG==1 or TYPG==2: + INDBG.append(0) + INDBD.append(0) + DNX.append(MCL_SOUS_EPAIS[NUMG-1].IDENC) + DNX.append(0) + INDSEX.append(NUMG) + else: pass + NZONEX=NZONEX+1 +# + BG.append(MING) + BD.append(MIND) +# + if TYPG == 0: +# borne gauche zone = borne gauche ssep + NBGAU=NBGAU+1 + INDBG.append(0) + INDBD.append(0) + if TYPD == 0: +# borne droite zone = borne gauche ssep + DNX.append(MCL_SOUS_EPAIS[NUMG-1].IDENC) + DNX.append(0) + INDSEX.append(NUMG) + elif TYPD == 1 or TYPD == 2: +# borne droite zone = borne droite ssep : TYPD=1 +# borne droite zone = centre ssep : TYPD=2 + LTMP=[] + LTMP.append((MCL_SOUS_EPAIS[NUMG-1].IDENC,NUMG)) + LTMP.append((MCL_SOUS_EPAIS[NUMD-1].IDENC,NUMD)) + LTMP.sort() + DNX.append(LTMP[0][0]) + DNX.append(0) + INDSEX.append(LTMP[0][1]) + else: pass +# + elif TYPG == 1: +# borne gauche zone = borne droite ssep + NBDRO = NBDRO+1 + if TYPD == 0: +# borne droite zone = borne gauche ssep + if NBDRO==NBGAU: + INDBG.append(1) + INDBD.append(1) + DNX.append(DERAFC) + DNX.append(0) + INDSEX.append(0) + else: +# cas tordu: une sous-ep enveloppe le tout + INDBG.append(0) + INDBD.append(0) + DNX.append(MCL_SOUS_EPAIS[NUMG-1].IDENC) + DNX.append(0) + INDSEX.append(NUMG) + elif TYPD == 1 or TYPD == 2: +# borne droite zone = borne droite ssep : TYPD=1 +# borne droite zone = centre ssep : TYPD=2 + INDBG.append(0) + INDBD.append(0) + DNX.append(MCL_SOUS_EPAIS[NUMD-1].IDENC) + DNX.append(0) + INDSEX.append(NUMD) + else: pass +# + elif TYPG == 2: +# borne gauche zone = centre ssep + INDBG.append(0) + INDBD.append(0) + if TYPD == 0: +# borne droite zone = borne gauche ssep + DNX.append(MCL_SOUS_EPAIS[NUMG-1].IDENC) + DNX.append(0) + INDSEX.append(NUMG) + elif TYPD == 1 or TYPD == 2: +# borne droite zone = borne droite ssep : TYPD=1 +# borne droite zone = centre ssep : TYPD=2 + LTMP=[] + LTMP.append((MCL_SOUS_EPAIS[NUMG-1].IDENC,NUMG)) + LTMP.append((MCL_SOUS_EPAIS[NUMD-1].IDENC,NUMD)) + LTMP.sort() + DNX.append(LTMP[0][0]) + DNX.append(0) + INDSEX.append(LTMP[0][1]) + else:pass + else:pass + if j<=(2*NBSEP-2) or ICE<=NBSEP or (TYPD==2 and j<2*NBSEP): + iout=0 + break #on retourne dans la boucle go10 + else : + iout=1 + break #on sort definitivement + if iout:break + + if MIND<2.*pi*RM: + NZONEX=NZONEX+1 + BG.append(MIND) + BD.append(2.*pi*RM) + if TYPD==0 or TYPD==2: + INDBG.append(0) + INDBD.append(0) + DNX.append(MCL_SOUS_EPAIS[NUMD-1].IDENC) + DNX.append(0) + INDSEX.append(NUMD) + elif TYPD==1: + INDBG.append(1) + INDBD.append(0) + DNX.append(DERAFC) + DNX.append(0) + INDSEX.append(0) + else:pass + +# au cas ou 2.*pi*RM correspond a une borne d'intevalle de sous-ep ou a +# un centre de sous-ep. + if fabs(BG[NZONEX-1]-BD[NZONEX-1]) BORNE GAUCHE = %.2f'\ + ' / BORNE DROITE = %.2f * SOUS-EPAISSEUR'%(BG[j],BD[j]) + else: + print 'ZONE NO',j+1,'<> BORNE GAUCHE = %.2f'\ + ' / BORNE DROITE = %.2f'%(BG[j],BD[j]) + + +# --- tri des donnees sous-ep. en axial + TAMPON,IORDO1,IORDO2,COORYI,COORYS=ASCTLO(MCL_SOUS_EPAIS,RC,ALPHA,LTCHAR,LTCLIM) + + BI = [] + BS = [] + INDBI = [] + INDBS = [] + DNY = [] + INDSEY = [] + + if SYME == 'DEMI': +# calcul des zones en axial : +# zones (0,bord inferieur) et (bord inferieur,centre sous-ep.) + ssep = MCL_SOUS_EPAIS[0] + BI.append(0.) + BI.append(ssep.ISLP-ssep.ILONP/2.) + BS.append(ssep.ISLP-ssep.ILONP/2.) + BS.append(ssep.ISLP) + INDBI.append(0) + INDBI.append(0) + INDBS.append(1) + INDBS.append(0) + DNY.append(DERAFL) + DNY.append(0) + DNY.append(ssep.IDENL) + DNY.append(0) + INDSEY.append(0) + INDSEY.append(1) + NZONEY=1 +# + else: +# +# calcul des recouvrements de zones en axial + j = 0 + ICE = 1 + NBINF = 0 + NBSUP = 0 + TYPI=0 + TYPS=0 + go40=1 + go50=1 + NZONEY=0 +# + while go40: + j=j+1 +# +# definition de la zone courante (borne inf, borne sup) +# +# typi = type de la borne +# 0 : borne inf. sous-ep. +# 1 : borne sup. sous-ep. +# 2 : centre sous-ep. +# + if TYPS==2: +# cas ou la borne sup. de la zone prec. etait un centre + MINI=MINS + TYPI=TYPS + NUMI=NUMS + MINS=TAMPON[j-1][0] + if fmod(IORDO2[j-1],2): + TYPS = 0 + NUMS = IORDO1[IORDO2[j-1]/2] + else: + TYPS = 1 + NUMS = IORDO1[IORDO2[j-1]/2-1] + j=j-1 + else: + if j>= 2*NBSEP : + MINI = TAMPON[2*NBSEP-1][0] + MINS = MINI + if fmod(IORDO2[2*NBSEP-1],2): + TYPI = 0 + NUMI = IORDO1[IORDO2[2*NBSEP-1]/2] + else: + TYPI = 1 + NUMI = IORDO1[IORDO2[2*NBSEP-1]/2-1] + TYPS=TYPI + NUMS=NUMI + else: + MINI=TAMPON[j-1][0] + MINS=TAMPON[j][0] + if fmod(IORDO2[j-1],2): + TYPI = 0 + NUMI = IORDO1[IORDO2[j-1]/2] + else: + TYPI = 1 + NUMI = IORDO1[IORDO2[j-1]/2-1] + if fmod(IORDO2[j],2): + TYPS = 0 + NUMS = IORDO1[IORDO2[j]/2] + else: + TYPS = 1 + NUMS = IORDO1[IORDO2[j]/2-1] + if fabs(MINI-MINS)1: +# le centre est deja le meme que le precedent + if fabs(MCL_SOUS_EPAIS[INDC-1].ISLP-MCL_SOUS_EPAIS[IORDO1[i-2]-1].ISLP)0. and NZONEY==1: + first=0 + BI.append(0.) + BS.append(MINI) + if TYPI==0: + INDBI.append(0) + INDBS.append(1) + DNY.append(DERAFL) + DNY.append(0) + INDSEY.append(0) + elif TYPI==1 or TYPI==2: + INDBI.append(0) + INDBS.append(0) + DNY.append(MCL_SOUS_EPAIS[NUMI-1].IDENL) + DNY.append(0) + INDSEY.append(NUMI) + else:pass + NZONEY = NZONEY+1 +# + BI.append(MINI) + BS.append(MINS) + + if TYPI==0: +# borne inferieure zone = borne inferieure ssep + NBINF = NBINF+1 + INDBI.append(0) + INDBS.append(0) + if TYPS==0: +# borne superieure zone = borne inferieur ssep + DNY.append(MCL_SOUS_EPAIS[NUMI-1].IDENL) + DNY.append(0) + INDSEY.append(NUMI) + elif TYPS==1 or TYPS==2: +# borne superieure zone = borne superieure ssep:TYPS==1 +# borne superieure zone = centre ssep:TYPS==2 + LTMP=[] + LTMP.append((MCL_SOUS_EPAIS[NUMI-1].IDENL,NUMI)) + LTMP.append((MCL_SOUS_EPAIS[NUMS-1].IDENL,NUMS)) + LTMP.sort() + DNY.append(LTMP[0][0]) + DNY.append(0) + INDSEY.append(LTMP[0][1]) + else:pass + elif TYPI==1: +# borne inferieure zone=borne superieure ssep + NBSUP = NBSUP+1 + if TYPS==0: +# borne superieure zone = borne inferieur ssep + if NBSUP==NBINF: + INDBI.append(1) + INDBS.append(1) + DNY.append(DERAFL) + DNY.append(0) + INDSEY.append(0) + else: +# cas tordu: une sous-ep. enveloppe le tout + INDBI.append(0) + INDBS.append(0) + DNY.append(MCL_SOUS_EPAIS[NUMI-1].IDENL) + DNY.append(0) + INDSEY.append(NUMI) + elif TYPS==1 or TYPS==2: +# borne superieure zone = borne superieure ssep:TYPS==1 +# borne superieure zone = centre ssep:TYPS==2 + INDBI.append(0) + INDBS.append(0) + DNY.append(MCL_SOUS_EPAIS[NUMS-1].IDENL) + DNY.append(0) + INDSEY.append(NUMS) + else:pass + elif TYPI==2: +# borne inferieure zone = centre ssep + INDBI.append(0) + INDBS.append(0) + if TYPS==0: +# borne superieure zone = borne inferieure ssep + DNY.append(MCL_SOUS_EPAIS[NUMI-1].IDENL) + DNY.append(0) + INDSEY.append(NUMI) + elif TYPS==1 or TYPS==2: +# borne superieure zone = borne superieure ssep + LTMP=[] + LTMP.append((MCL_SOUS_EPAIS[NUMI-1].IDENL,NUMI)) + LTMP.append((MCL_SOUS_EPAIS[NUMS-1].IDENL,NUMS)) + LTMP.sort() + DNY.append(LTMP[0][0]) + DNY.append(0) + INDSEY.append(LTMP[0][1]) + else:pass + else:pass + if j<=(2*NBSEP-2) or TYPS==2: + iout=0 + break #on retourne dans la boucle go40 + else: + iout=1 + break #on sort definitivement + if iout:break + +# cas ou la derniere zone ne finit pas au bout de la plaque + if MINS BORNE INF. = %.2f'\ + ' / BORNE SUP. = %.2f * SOUS-EPAISSEUR'%(BI[j],BS[j]) + else: + print 'ZONE NO',j+1,'<> BORNE INF. = %.2f'\ + ' / BORNE SUP. = %.2f '%(BI[j],BS[j]) + +# calcul du nombre d'elements longi. et circonf. dans les sous-ep + NLX,NLY=ASCNBE(MCL_SOUS_EPAIS,COORXG,COORXD,COORYI,COORYS,BD,BG,BS,BI, + DNX,DNY,RM,RC,INDSEX,INDSEY,IABSC1,IORDO1) + + + return ier,NLX,NLY,NZONEX,NZONEY,BG,BD,BI,BS,INDBG,INDBD,INDBI,INDBS,DNX,DNY +################################################################################ +################################################################################ +################################################################################ +# MACR_ASCOUF_MAIL write_file_dgib_ASCFDO +# +# ECRIT DANS UN FICHIER LES DONNES GIBI DE LA PROCEDURE +# "PLAQUE FISSUREE" +# + +# ------------------------------------------------------------------------------ +def write_file_dgib_ASCFDO(nomFichierDATG,RM,RC,ALPHA,NBTRAN,EP1,EP2,EPI,TETA1, + TETA2,LTRAN,SUREP,LTCHAR,LTCLIM,TYPBOL,AXEAP,AXECP,NT,NS,NC, + SFP,ORIEN,AZIM,RC0,RC2,RC3,POSIT,EPSI,NIVMAG,SYME, loc_datg) : + + if TYPBOL!= None: + if TYPBOL=='CUVE' : TYPEMB = 'typcuv' + if TYPBOL=='GV' : TYPEMB = 'typegv' + if TYPBOL=='ASP_MPP' : TYPEMB = 'typapp' + else: + TYPEMB =' ' + + if POSIT =='DEB_INT' : + POSIT2 = 'interne' + else: + POSIT2 = 'externe' + if SYME[:6]=='ENTIER' : ZSYME = 'entier' + elif SYME[:5]=='QUART' : ZSYME = 'quart' + else : ZSYME = 'demi' + C=AXECP/2. + TETAF=AZIM*pi/180. + + POIVIR = ' ;\n' + texte='* DEBUT PARAMETRES UTILISATEUR\n' + texte=texte+'*\n' + texte=texte+'c = '+str(C) +POIVIR + texte=texte+'a = '+str(AXEAP) +POIVIR + texte=texte+'nt = '+str(NT) +POIVIR + texte=texte+'ns = '+str(NS) +POIVIR + texte=texte+'nc = '+str(NC) +POIVIR + texte=texte+'rm = '+str(RM) +POIVIR + texte=texte+'rc = '+str(RC) +POIVIR + texte=texte+'alphac = '+str(ALPHA) +POIVIR + texte=texte+'nbtranep = '+str(NBTRAN) +POIVIR + texte=texte+'ep1 = '+str(EP1) +POIVIR + texte=texte+'ep2 = '+str(EP2) +POIVIR + texte=texte+'epi = '+str(EPI) +POIVIR + texte=texte+'teta1 = '+str(TETA1) +POIVIR + texte=texte+'teta2 = '+str(TETA2) +POIVIR + texte=texte+'ltran = '+str(LTRAN) +POIVIR + texte=texte+'posfis = '+str(SFP) +POIVIR + texte=texte+'ksiref = '+str(ORIEN) +POIVIR + texte=texte+'surep = '+str(SUREP) +POIVIR + texte=texte+'teta_f = '+str(TETAF) +POIVIR + texte=texte+'rc0 = '+str(RC0) +POIVIR + texte=texte+'rc2 = '+str(RC2) +POIVIR + texte=texte+'rc3 = '+str(RC3) +POIVIR + texte=texte+"pos = '"+POSIT2+"'" +POIVIR + texte=texte+'lt = '+str(LTCHAR) +POIVIR + texte=texte+'lgv = '+str(LTCLIM) +POIVIR + texte=texte+"typembou = '"+TYPEMB+"'" +POIVIR + texte=texte+"zsyme = '"+ZSYME+"'" +POIVIR + texte=texte+'epsif = '+str(EPSI) +POIVIR + texte=texte+'nivmag = '+str(NIVMAG) +POIVIR + texte=texte+'*\n' + texte=texte+'* FIN PARAMETRES UTILISATEUR\n' + texte = texte + open(os.path.join(loc_datg, 'ascouf_fiss_v4.datg'), 'r').read() +# texte=texte+'opti donn ' +# texte=texte+"'"+loc_datg+'ascouf_fiss_v4.datg'+"';\n" + fdgib=open(nomFichierDATG,'w') + fdgib.write(texte) + fdgib.close() + +################################################################################ +################################################################################ +################################################################################ +# MACR_ASCOUF_MAIL write_file_dgib_ASCSQO +# +# ECRIT DANS UN FICHIER LES DONNEES GIBI DE LA PROCEDURE +# "PLAQUE SOUS-EPAISSEUR" +# +#-----------------DONNEES FOURNIES PAR L'UTILISATEUR-------------------- +# +# RM = RAYON MOYEN DU COUDE +# RC = RAYON DE CINTRAGE DU COUDE +# ALPHA = ANGLE DU COUDE +# NBTRAN = NOMBRE DE TRANSITION D'EPAISSEUR (0, 1 OU 2) +# EP1 = EPAISSEUR DU COUDE (COTE EMBOUT 1 SI TRANSITION) +# EP2 = EPAISSEUR DU COUDE (COTE EMBOUT 2 SI TRANSITION) +# EPI = EPAISSEUR DU COUDE INTERMEDIAIRE SI TRANSITION A 2 PENTES +# TETA1 = ANGLE DE LA PREMIERE TRANSITION D'EPAISSEUR EVENTUELLE +# TETA2 = ANGLE DE LA DEUXIEME TRANSITION D'EPAISSEUR EVENTUELLE +# LTRAN = LONGUEUR ENTRE FIN DE L'EMBOUT 1 ET DEBUT DE TRANSITION +# LTCHAR = LONGUEUR DE L'EMBOUT DU COTE CHARGEMENT +# LCLIM = LONGUEUR DE L'EMBOUT DU COTE CONDITIONS AUX LIMITES +# GEOM = TYPE DE GEOMETRIE MODELISEE (COUDE OU TUBE) +# SYME = "QUART" DE STRUCTURE, "DEMI" STRUCTURE OU BIEN "ENTIER" +# NBEP = NOMBRE D'ELEMENTS DANS LE COUDE +# NLX = NOMBRE D'ELEMENTS CIRCONF. DE LA SOUS-EPAISSEUR +# NLY = NOMBRE D'ELEMENTS LONGI DE LA SOUS-EPAISSEUR + +# ------------------------------------------------------------------------------ +def write_file_dgib_ASCSQO(nomFichierDATG,TYPELE,RM,RC,ALPHA,NBTRAN,EP1,EP2, + EPI,TETA1,MCL_SOUS_EPAIS,TETA2,LTRAN,LTCHAR,LTCLIM,GEOM, + SYME,NBEP,NLX,NLY,NIVMAG,loc_datg) : + + ssep= MCL_SOUS_EPAIS[0] + POIVIR = ' ;\n' + texte=' nivmag = '+str(NIVMAG) +POIVIR + texte=texte+' option dime 3 elem '+TYPELE+' nive nivmag echo 0'+POIVIR + texte=texte+'*\n' + texte=texte+'coory = table '+POIVIR + texte=texte+'coorz = table '+POIVIR + texte=texte+'prof = table '+POIVIR + texte=texte+'posit = table '+POIVIR + texte=texte+'axisym = table '+POIVIR + texte=texte+'axecir = table '+POIVIR + texte=texte+'axelon = table '+POIVIR + texte=texte+'sousep = table '+POIVIR + texte=texte+'coorzc = table '+POIVIR + texte=texte+'axelonc = table '+POIVIR + texte=texte+'*\n' + texte=texte+'* DEBUT PARAMETRES UTILISATEUR\n' + texte=texte+'*\n' + texte=texte+'* parametres generaux\n' + texte=texte+'*\n' + texte=texte+' pirad = '+str(pi) +POIVIR + texte=texte+' rm = '+str(RM) +POIVIR + texte=texte+' rc = '+str(RC) +POIVIR + texte=texte+' alpha = '+str(ALPHA) +POIVIR + texte=texte+' lt1 = '+str(LTCHAR) +POIVIR + texte=texte+' lt2 = '+str(LTCLIM) +POIVIR + texte=texte+' nbtranep = '+str(NBTRAN) +POIVIR + texte=texte+' ep1 = '+str(EP1) +POIVIR + texte=texte+' ep2 = '+str(EP2) +POIVIR + texte=texte+' epI = '+str(EPI) +POIVIR + texte=texte+' teta1 = '+str(TETA1) +POIVIR + texte=texte+' teta2 = '+str(TETA2) +POIVIR + texte=texte+' ltran = '+repr(LTRAN) +POIVIR + if GEOM == 'COUDE': + texte=texte+" zcoude = 'oui' "+POIVIR + else: + texte=texte+" zcoude = 'non' "+POIVIR + if SYME == 'ENTIER': + texte=texte+" zsyme = 'entier' "+POIVIR + elif SYME == 'QUART': + texte=texte+" zsyme = 'quart' "+POIVIR + else: + texte=texte+" zsyme = 'demi' "+POIVIR + if TYPELE == 'CU20': + texte=texte+" zquad = 'oui' "+POIVIR + else: + texte=texte+" zquad = 'non' "+POIVIR + SCP=pi*RM + texte=texte+' nxep = '+str(NBEP) +POIVIR + texte=texte+'*\n' + texte=texte+'* Caracteristiques de la sous-epaisseur\n' + texte=texte+'*\n' + texte=texte+' tysep = '+str(ssep.ICIRP) +POIVIR + texte=texte+' tzsep = '+str(ssep.ILONP) +POIVIR + texte=texte+' prof . 1 = '+str(ssep['PROFONDEUR']) +POIVIR + texte=texte+' ycsep = '+str(SCP-pi*RM) +POIVIR + texte=texte+' theta = '+str(ssep.IPHIC) +POIVIR + texte=texte+' zcsep = '+repr(ssep.ISLP) +POIVIR + + texte=texte+" posit . 1 = '"+str(ssep['SOUS_EPAIS'].lower())+"'"+POIVIR + texte=texte+' nby = '+str(int(NLX[0])) +POIVIR + texte=texte+' nbz = '+str(int(NLY[0])) +POIVIR + texte=texte+' nbxse = '+str(ssep['NB_ELEM_RADI']) +POIVIR + texte=texte+' axelonc . 1 = '+str(ssep['AXE_LONGI'])+POIVIR + if ssep['POSI_CURV_LONGI']!=None: + texte=texte+' coorzc . 1 = '+repr(ssep['POSI_CURV_LONGI'])+POIVIR + else: + DZC=ssep.BETA*pi*(RC+(RM+EP1/2.)*cos(pi/2.))/180. + texte=texte+' coorzc . 1 = '+repr(DZC)+POIVIR + if ssep['TYPE']=='AXIS': + texte=texte+" zaxis = 'oui' "+POIVIR + else: + texte=texte+" zaxis = 'non' "+POIVIR + if ssep['EMPREINTE'] == 'OUI': + texte=texte+" sousep . 1 = 'oui'"+POIVIR + else: + texte=texte+" sousep . 1 = 'non'"+POIVIR + texte=texte+'*\n' + texte=texte+'* FIN PARAMETRES UTILISATEUR \n' + texte = texte + open(os.path.join(loc_datg, 'ascouf_ssep_mono_v1.datg'), 'r').read() +# texte=texte+'opti donn ' +# texte=texte+"'"+loc_datg+'ascouf_ssep_mono_v1.datg'+"'"+POIVIR + fdgib=open(nomFichierDATG,'w') + fdgib.write(texte) + fdgib.close() +################################################################################ +################################################################################ +################################################################################ +# MACR_ASCOUF_MAIL write_subpart_file_pgib_POST +# +# APPELEE DANS : write_file_pgib_ASCSQ2 , write_file_pgib_ASCSD2 +# DEFINIE UNE CHAINE DE CARACTERES UTILISEE LORS DE L'ECRITURE DU +# FICHIER GIBI DE POST-TRAITEMENTS +# +#-----------------DONNEES FOURNIES PAR L'UTILISATEUR-------------------- +# +# NLX = NOMBRE D'ELEMENTS CIRCONF. DE LA SOUS-EPAISSEUR +# NLY = NOMBRE D'ELEMENTS LONGI DE LA SOUS-EPAISSEUR +# +#-----------------DONNEE RENVOYEE PAR ASTER-------------------- +# +# texte = chaine de caracteres contenant des instructions gibi +# de post-traitements +# +# ------------------------------------------------------------------------------ +def write_subpart_file_pgib_POST(MCL_SOUS_EPAIS,NLX,NLY): + CAR3 = ('fdro','exdr','extr','exga','fgau','inga','intr','indr') + + POIVIR = ' ;\n' + texte='* DEBUT POINTS DE POST-TRAITEMENT\n' + texte=texte+'*\n' + issep=0 + for ssep in MCL_SOUS_EPAIS: + issep=issep+1 + texte=texte+'*\n' + texte=texte+'* sous-epaisseur No '+str( issep)+'\n' + texte=texte+'*\n' + if ssep['TYPE'] == 'ELLI': + texte=texte+'*\n' + texte=texte+'* plans circonf longi et colonne centrale \n' + texte=texte+'*\n' + texte=texte+'pcirc'+str( issep)+' = circo .'+str(issep).rjust(4)+POIVIR + texte=texte+'plong'+str( issep)+' = longi .'+str(issep).rjust(4)+POIVIR + texte=texte+'pcent'+str( issep)+' = centr .'+str(issep).rjust(4)+POIVIR + texte=texte+'*\n' + texte=texte+'* ligaments tous les 45 degres a epaisseur minimale \n' + texte=texte+'*\n' + texte=texte+'isep = '+str( issep)+POIVIR + for k in range(8): + texte=texte+'ilig = '+str(k+1)+POIVIR + texte=texte+'rlig = ilig/10. + isep'+POIVIR + texte=texte+str(CAR3[k])+str( issep)+' = lig45 . rlig'+POIVIR + if ssep['TYPE'] == 'ELLI': + texte=texte+'*\n' + texte=texte+"* ligaments circonferentiels a l'epaisseur minimale\n" + texte=texte+'*\n' + texte=texte+'isep = '+str(issep)+POIVIR + for k in range(2*NLX[issep-1]+1): + texte=texte+'ilig = '+str(k+1)+POIVIR + texte=texte+'rlig = ilig/100. + isep'+POIVIR + texte=texte+'cir'+str(issep)+'_'+str(k+1)+' = ligcir . rlig'+POIVIR + texte=texte+'*\n' + texte=texte+"* ligaments longitudinaux a l'epaisseur minimale\n" + texte=texte+'* \n' + for k in range(2*NLY[issep-1]+1): + texte=texte+'ilig = '+str(k+1)+POIVIR + texte=texte+'rlig = ilig/100. + isep'+POIVIR + texte=texte+'lon'+str(issep)+'_'+str(k+1)+' = liglon . rlig'+POIVIR + texte=texte+'* FIN POINTS DE POST-TRAITEMENT\n' + return texte + +################################################################################ +################################################################################ +################################################################################ +# MACR_ASCOUF_MAIL write_file_pgib_ASCSQ2 +# +# ECRIT DANS UN FICHIER LES DONNEES GIBI DE LA PROCEDURE +# "PLAQUE SOUS-EPAISSEURS" +# IL S'AGIT DE LA DEUXIEME PARTIE ( APRES LES DONNEES UTILISATEUR ) +# +# +#-----------------DONNEES FOURNIES PAR L'UTILISATEUR-------------------- +# +# NLX = NOMBRE TOTAL D'ELEMENTS CIRCONF. DE LA SOUS-EPAISSEUR K +# NLY = NOMBRE TOTAL D'ELEMENTS LONGIT. DE LA SOUS-EPAISSEUR K + +# ------------------------------------------------------------------------------ +def write_file_pgib_ASCSQ2(MCL_SOUS_EPAIS,NLX,NLY): + POIVIR = ' ;\n' + texte=write_subpart_file_pgib_POST(MCL_SOUS_EPAIS,NLX,NLY) + texte=texte+'*\n' + texte=texte+'p1 = 0. 0. (-1.*lt1)'+POIVIR + texte=texte+'p2 = 0. 0. (coor 3 bou3)'+POIVIR + texte=texte+'ma = coude et p1 et p2'+POIVIR + texte=texte+"opti sauv form 'fort.8'"+POIVIR + texte=texte+'sort ma'+POIVIR + texte=texte+'sauv form ma'+POIVIR + texte=texte+'fin'+POIVIR + fpgib=open('fort.71','w') + fpgib.write(texte) + fpgib.close() + +################################################################################ +################################################################################ +################################################################################ +# MACR_ASCOUF_MAIL write_file_pgib_ASCSP1 +# +# ECRIT DANS UN FICHIER LES DONNEES GIBI DE LA PROCEDURE +# "PLAQUE SOUS-EPAISSEURS" +# IL S'AGIT DE LA PREMIERE PARTIE ( AVANT LES DONNEES UTILISATEUR ) +# +# +# ------------------------------------------------------------------------------ +def write_file_dgib_ASCSP1(nomFichierDATG,TYPELE,MCL_SOUS_EPAIS,NIVMAG,loc_datg): + + POIVIR = ' ;\n' + texte=' nivmag = '+str(NIVMAG)+POIVIR + texte=texte+' option dime 3 elem '+TYPELE+' nive nivmag echo 0 '+POIVIR + texte=texte+'*\n' + texte=texte+'bg = table '+POIVIR + texte=texte+'bd = table '+POIVIR + texte=texte+'bi = table '+POIVIR + texte=texte+'bs = table '+POIVIR + texte=texte+'indbg = table '+POIVIR + texte=texte+'indbd = table '+POIVIR + texte=texte+'indbi = table '+POIVIR + texte=texte+'indbs = table '+POIVIR + texte=texte+'axecir = table '+POIVIR + texte=texte+'axelon = table '+POIVIR + texte=texte+'axelonc = table '+POIVIR + texte=texte+'coorzc = table '+POIVIR + texte=texte+'prof = table '+POIVIR + texte=texte+'posit = table '+POIVIR + texte=texte+'coory = table '+POIVIR + texte=texte+'coorz = table '+POIVIR + texte=texte+'deny = table '+POIVIR + texte=texte+'nbely = table '+POIVIR + texte=texte+'denz = table '+POIVIR + texte=texte+'nbelz = table '+POIVIR + texte=texte+'axisym = table '+POIVIR + texte=texte+'sousep = table '+POIVIR + texte=texte+'* \n' + texte = texte + open(os.path.join(loc_datg, 'ascouf_ssep_mult_v1.datg'), 'r').read() +# texte=texte+'opti donn ' +# texte=texte+"'"+loc_datg+'ascouf_ssep_mult_v1.datg'+"';\n" + fdgib=open(nomFichierDATG,'w') + fdgib.write(texte) + fdgib.close() + +################################################################################ +################################################################################ +################################################################################ +# MACR_ASCOUF_MAIL write_file_pgib_ASCSDO +# +# ECRIT DANS UN FICHIER LES DONNEES GIBI DE LA PROCEDURE +# "PLAQUE SOUS-EPAISSEURS" +# +#-----------------DONNEES FOURNIES PAR L'UTILISATEUR-------------------- +# +# RM = RAYON MOYEN DU COUDE +# RC = RAYON DE CINTRAGE DU COUDE +# ALPHA = ANGLE DU COUDE +# EP = EPAISSEUR DU COUDE +# LTCHAR = LONGUEUR DE L'EMBOUT DU COTE CHARGEMENT +# LCLIM = LONGUEUR DE L'EMBOUT DU COTE CONDITIONS AUX LIMITES +# GEOM = TYPE DE GEOMETRIE MODELISEE (COUDE OU TUBE) +# SYME = QUART DE STRUCTURE SI 'OUI' +# INDBG = INDICATEUR BORD GAUCHE DE LA ZONE CIRCONF J +# INDBD = INDICATEUR BORD DROIT DE LA ZONE CIRCONF J +# BG = ABSCISSE DU BORD GAUCHE DE LA ZONE CIRCONF J +# BD = ABSCISSE DU BORD DROIT DE LA ZONE CIRCONF J +# BI = ORDONNEE DU BORD INFERIEUR DE LA ZONE LONGI J +# BS = ORDONNEE DU BORD SUPERIEUR DE LA ZONE LONGI J +# INDBI = INDICATEUR BORD INFERIEUR DE LA ZONE LONGI J +# INDBS = INDICATEUR BORD SUPERIEUR DE LA ZONE LONGI J +# INDSEX = NUMERO DE SOUS-EPAISSEUR CONTENU DANS LA ZONE CIRCONF J +# INDSEY = NUMERO DE SOUS-EPAISSEUR CONTENU DANS LA ZONE LONGI J +# DNX = DENSITE ET NOMBRE D'ELEMENTS CIRCONF. DE LA ZONE J +# DNY = DENSITE ET NOMBRE D'ELEMENTS LONGIT. DE LA ZONE J +# NZONEX = NOMBRE DE ZONES CIRCONFERENTIELLES +# NZONEY = NOMBRE DE ZONES LONGITUDINALES +# +# ------------------------------------------------------------------------------ +def write_file_pgib_ASCSDO(RM,RC,ALPHA,EP,LTCLIM,LTCHAR,NBEP, + NZONEX,NZONEY,BG,BD,BI,BS,INDBG,INDBD,INDBI,INDBS, + DNX,DNY,MCL_SOUS_EPAIS,GEOM,SYME): + + POIVIR = ' ;\n' + NY=20 + DELTAY=2.*pi*RM/NY + + def nint(x): + if 0 les quart et demi structure' + print ' ne peuvent etre realisees ' + print ' sur un modele comportant une transition ' + print ' d epaisseur ' + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier +# + DEXT = COUDE['DEXT_T1'] + EP1 = COUDE['EPAIS_T1'] + EP2 = COUDE['EPAIS_T2'] + TETA1 = COUDE['ANGL_TETA1'] + TETA2 = 0.0 + EPI = 0.0 + if COUDE['ANGL_TETA2']!=None : + NBTRAN = 2 + TETA2 = COUDE['ANGL_TETA2'] + EPI = COUDE['EPAIS_TI'] +# + if COUDE['ABSC_CURV_TRAN']!=None : + LTRAN = COUDE['ABSC_CURV_TRAN'] + else : + LTRAN = COUDE['POSI_ANGU_TRAN']* RC * pi / 180.0 +# + RM = (DEXT-EP1)/2.0 + RM2 = RM + (EP2-EP1)/2.0 + R1 = RC + R2 = RM + E = EP1 +# + if COUDE['SYME']!='ENTIER' and (LTCHAR!=LTCLIM) : + print ' les deux embouts doivent etre' + print ' de meme longueur pour les cas de symetrie ' + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier +# + LAMOR = 3.0/2.0 * sqrt( RM*RM*RM / EP1) + if LTCHAR longueur d embout P1 inferieure' + print ' a la longueur d amortissement = ',LAMOR + print ' alarme' +# + LAMOR = 3.0/2.0 * sqrt( RM2*RM2*RM2 / EP2) + if LTCLIM longueur d embout P2 inferieure' + print ' a la longueur d amortissement = ',LAMOR + print ' alarme' +# + if TYPBOL!=None: + if TYPBOL[:1]=='GV' : + print ' la condition aux limites raccord' + print ' 3d-poutre appliquee avec la macro de calcul' + print ' ascouf n est pas licite avec un embout' + print ' de type conique' + print ' alarme' +# +################################################################################ +# --- caracteristiques de la fissure --- +################################################################################ +# + if FISS_COUDE!=None: + if NBEP!=3: + print ' le nombre d elements dans l epaisseur' + print ' du coude n est pas parametrable pour' + print ' un coude avec fissure' + print ' mot-cle NB_ELEM_EPAIS ignore' + print ' alarme' + FPROF = FISS_COUDE['PROFONDEUR'] + FAXI = FISS_COUDE['AXIS'] + if FAXI=='NON' and FISS_COUDE['LONGUEUR']==None : + print ' pour les fissures non axisymetriques' + print ' la longueur doit etre specifiee ' + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + if FAXI=='OUI' and FISS_COUDE['LONGUEUR']!=None : + print ' la fissure est axisymetrique : on ne' + print ' tient pas compte de la longueur specifiee' + print ' alarme' + if FISS_COUDE['LONGUEUR']!=None : FLONG = FISS_COUDE['LONGUEUR'] + if FAXI=='OUI' : +#### on prend une marge de securite a cause des modifs dans ascfis + FLONG = 2.0 * pi * (RM + EP1) + if FISS_COUDE['ABSC_CURV']!=None : + SF = FISS_COUDE['ABSC_CURV'] + LDEFAU = SF + BETA = 0.0 + else: + SF = 0.0 + BETA = FISS_COUDE['POSI_ANGUL'] + LDEFAU = BETA * RC * pi / 180.0 + AZIM = FISS_COUDE['AZIMUT'] + ORIEN = FISS_COUDE['ORIEN'] + POSIT = FISS_COUDE['FISSURE'] + NT = FISS_COUDE['NB_TRANCHE'] + NS = FISS_COUDE['NB_SECTEUR'] + NC = FISS_COUDE['NB_COURONNE'] + if FISS_COUDE['RAYON_TORE']!=None : RC0 = FISS_COUDE['RAYON_TORE'] + else : RC0 = 0. + if FISS_COUDE['COEF_MULT_RC2']!=None : RC2 = FISS_COUDE['COEF_MULT_RC2'] + else : RC2 = 0. + if FISS_COUDE['COEF_MULT_RC3']!=None : RC3 = FISS_COUDE['COEF_MULT_RC3'] + else : RC3 = 0. + EPSI = FISS_COUDE['ANGL_OUVERTURE'] + OR = ORIEN + AZ = AZIM + POS = POSIT + DGAXEC = FLONG/2.0 + DC = DGAXEC + if ORIEN!=90.0 and NBTRAN!=0 : + print ' avec une transition d epaisseur' + print ' la fissure doit obligatoirement etre transverse ' + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + if ORIEN!=90.0 and NBTRAN!=0 : + print ' avec une transition d epaisseur' + print ' la fissure doit obligatoirement etre transverse ' + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + if ORIEN!=90.0 and COUDE['SYME']!='ENTIER' : + print ' l orientation de la fissure doit' + print ' etre transverse (orien : 90.) pour modeliser ' + print ' un quart ou une demi structure ' + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + if ORIEN!=90.0 and FAXI=='OUI' : + print ' la fissure est axisymetrique : son' + print ' orientation doit etre transverse (ORIEN : 90.)' + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier +# +################################################################################ +# --- caracteristiques des sous epaisseurs --- +################################################################################ +# + isep = 0 + MCL_SOUS_EPAIS = None + if SOUS_EPAIS_MULTI!=None : MCL_SOUS_EPAIS = SOUS_EPAIS_MULTI + if SOUS_EPAIS_COUDE!=None : MCL_SOUS_EPAIS = SOUS_EPAIS_COUDE + if SOUS_EPAIS_MULTI!=None and NBTRAN!=0 : + print ' il ne peut pas y avoir plusieurs' + print ' sous-epaisseurs en meme temps qu une' + print ' transition d epaisseur : si une seule' + print ' sous-epaisseur utiliser sous_epais_coude' + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + if SOUS_EPAIS_COUDE!=None and FISS_COUDE!=None and NBTRAN!=0 : + print ' avec une transition d epaisseur' + print ' il doit obligatoirement y avoir un defaut' + print ' soit une fissure soit une sous-epaisseur' + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + if MCL_SOUS_EPAIS!=None : + AZIM = 90.0 + if MCL_SOUS_EPAIS.__class__.__name__ !='MCList' : MCL_SOUS_EPAIS=[MCL_SOUS_EPAIS,] + if len(MCL_SOUS_EPAIS)!=1 and COUDE['SYME']!='ENTIER' : + print ' ne modeliser qu une seule' + print ' sous-epaisseur pour un quart ou demi-coude' + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + for ssep in MCL_SOUS_EPAIS : + isep=isep+1 + if ssep['AXE_CIRC']!=None and ssep['TYPE']=='AXIS' : + print ' vous ne pouvez declarer la sous-' + print ' epaisseur comme axisymetrique et donner' + print ' une taille d axe circonferentiel' + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + if ssep['AXE_CIRC']==None and ssep['TYPE']=='ELLI' : + print ' vous devez donner une taille d axe' + print ' circonferentiel pour une sous-epaisseur de' + print ' type elliptique' + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + if ssep['POSI_CURV_LONGI']!=None: + if ssep['POSI_CURV_LONGI']>(ALPHA*RC*pi/180.0) : + print ' valeur hors domaine de validite' + print ' sous-epaisseur numero :',isep + print ' abscisse curv. longit. :',ssep['POSI_CURV_LONGI'] + print ' valeur maximale autorisee :',(ALPHA*RC*pi/180.0) + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + LDEFAU = ssep['POSI_CURV_LONGI'] + ssep['AXE_LONGI']/2.0 + BETA = 0.0 + else: + BETA=ssep['POSI_ANGUL'] + if (BETA<0.) or (BETA>ALPHA) : + print ' valeur hors domaine de validite' + print ' sous-epaisseur numero :',isep + print ' position angulaire centre sous-ep :',BETA + print ' valeur limite autorisee :',ALPHA + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + LDEFAU = (BETA*RC*pi/180.0) + ssep['AXE_LONGI']/2.0 +# + if ssep['POSI_CURV_CIRC']!=None: + if ssep['POSI_CURV_CIRC']>(2*pi*RM) : + print ' valeur hors domaine de validite' + print ' sous-epaisseur numero :',isep + print ' abscisse curv. circonf. :',ssep['POSI_CURV_CIRC'] + print ' valeur maximale autorisee :',(2*pi*RM) + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + if ssep['POSI_CURV_CIRC']!=(pi*RM) and ssep['TYPE']=='AXIS': + print ' le centre d une sous-epaisseur' + print ' axisymetrique est impose en intrados (pi*RM)' + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + else: + ssep.IPHIC=ssep['AZIMUT'] + if ssep['AZIMUT']!=180. and ssep['TYPE']=='AXIS': + print ' le centre d une sous-epaisseur' + print ' axisymetrique est impose en intrados' + print ' l azimut est fixe a 180 degres' + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier +# l_ITYPE.append(ssep['TYPE' ]) +# l_ICIRC.append(ssep['AXE_CIRC' ]) +# l_ILONC.append(ssep['AXE_LONGI' ]) +# l_IPROC.append(ssep['PROFONDEUR' ]) +# l_ISLC.append( ssep['POSI_CURV_LONGI']) +# l_IBETC.append(BETA) + ssep.BETA=BETA +# l_ISCC.append( ssep['POSI_CURV_CIRC' ]) +# l_IPHIC.append(ssep['AZIMUT' ]) +# l_IPOS.append( ssep['SOUS_EPAIS' ]) +# l_INBEL.append(ssep['NB_ELEM_LONGI' ]) +# l_INBEC.append(ssep['NB_ELEM_CIRC' ]) +# l_IEVID.append(ssep['EMPREINTE' ]) + + if SOUS_EPAIS_COUDE!=None and COUDE['NB_ELEM_EPAIS']!=3 : + print ' le nombre d elements dans l' + print ' epaisseur du coude n est pas parametrable pour' + print ' la version 2 de la procedure de plaque avec sous' + print ' -epaisseur : mot-cle NB_ELEM_EPAIS ignore' + print ' alarme' +# +################################################################################ +# --- verifications de coherences --- +################################################################################ +# +# donnees globales + if COUDE['TRANSFORMEE']=='COUDE' or COUDE['TRAN_EPAIS']=='NON' : + if SUREP<0. or SUREP>(RM-EP1/2.0): + print ' valeur hors domaine de validite' + print ' surepaisseur :',SUREP + print ' valeur limite autorisee (RM-EP1/2) :',(RM-EP1/2.0) + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + if RC<=(RM+EP1/2.0): + print ' valeur hors domaine de validite' + print ' le rayon de cintrage :',RC + print ' doit etre superieur a (RM+EP1/2) :',(RM+EP1/2.0) + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier +# +# coude fissure +# + if FISS_COUDE!=None: + if (RM/EP1)<5. or (RM/EP1)>12.: + print ' valeur hors domaine de validite (5,12)' + print ' rapport RM/EP1 :',(RM/EP1) + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + if FISS_COUDE['ABSC_CURV']!=None: + if SF<0. or SF>(ALPHA*RC*pi/180.0) : + print ' valeur hors domaine de validite' + print ' abscisse curviligne centre fissure :',SF + print ' valeur limite autorisee :',(ALPHA*RC*pi/180.0) + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + if (NT-2*(NT/2))!=0: + print ' valeur hors domaine de validite' + print ' nombre de tranches :',NT + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + if FISS_COUDE['ABSC_CURV'] and ((BETA<0.) or (BETA>ALPHA)): + print ' valeur hors domaine de validite' + print ' position angulaire centre fissure :',BETA + print ' posi_angul doit etre >= 0 et <= ',ALPHA + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier +# +# transition d epaisseur +# + if NBTRAN!=0: + LCOUDE = ALPHA * RC * pi / 180.0 + DEXT = 2.0*RM + EP1 + if (LTRANLCOUDE) : + print ' valeur hors domaine de validite' + print ' debut transition d epaisseur :',LTRAN + print ' valeur minimale autorisee :',LDEFAU + print ' valeur maximale autorisee :',LCOUDE + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + if (TETA1<0.) or (TETA1>30.) : + print ' valeur hors domaine de validite' + print ' angle de transition TETA1 :',TETA1 + print ' valeur minimale autorisee :',0. + print ' valeur maximale autorisee :',30. + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier +# +# transition d epaisseur a une pente +# + if NBTRAN==1: + if (EP1<12.) or (EP1>80.) : + print ' valeur hors domaine de validite' + print ' epaisseur avant la transition :',EP1 + print ' valeur minimale autorisee :',12. + print ' valeur maximale autorisee :',80. + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + if (EP2<20.) or (EP2>110.) : + print ' valeur hors domaine de validite' + print ' epaisseur apres la transition :',EP2 + print ' valeur minimale autorisee :',20. + print ' valeur maximale autorisee :',110. + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + if (EP1>EP2) : + print ' l epaisseur avant la transition' + print ' doit etre inferieure ' + print ' a celle apres la transition' + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + LTRANF = LTRAN + ((EP2-EP1)/(tan(TETA1))) + if (LTRANF>LCOUDE) : + print ' valeur hors domaine de validite' + print ' fin transition d epaisseur :',LTRANF + print ' valeur limite autorisee :',LCOUDE + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + if DEXT<112. or DEXT>880. : + print ' valeur hors domaine de validite' + print ' diam ext du tube avant transition:',DEXT + print ' valeur minimum autorisee :',112. + print ' valeur maximum autorisee :',880. + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier +# +# transition d epaisseur a une pente +# + else: + if (TETA2<0.) or (TETA2>45.) : + print ' valeur hors domaine de validite' + print ' angle de transition TETA2 :',TETA2 + print ' valeur minimale autorisee :',0. + print ' valeur maximale autorisee :',45. + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + if (EP1<7.) or (EP1>35.) : + print ' valeur hors domaine de validite' + print ' epaisseur avant 1ere transition :',EP1 + print ' valeur minimale autorisee :',7. + print ' valeur maximale autorisee :',35. + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + if (EP2<15.) or (EP2>40.) : + print ' valeur hors domaine de validite' + print ' epaisseur avant 2eme transition :',EP2 + print ' valeur minimale autorisee :',15. + print ' valeur maximale autorisee :',40. + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + if (EPI<15.) or (EPI>40.) : + print ' valeur hors domaine de validite' + print ' epaisseur intermediaire :',EPI + print ' valeur minimale autorisee :',15. + print ' valeur maximale autorisee :',40. + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + if (EP1>EPI) : + print ' valeur hors domaine de validite' + print ' l epaisseur avant la transition' + print ' doit etre inferieure a l epaisseur intermediaire' + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + if (EP2 valeur hors domaine de validite' + print ' l epaisseur apres la transition' + print ' doit etre inferieure a l epaisseur intermediaire' + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + LTRANF = LTRAN + (EPI-EP1)/(tan(TETA1)) + LTRANF = LTRANF + (EP2-EPI)/(tan(TETA2)) + if (LTRANF>LCOUDE) : + print ' valeur hors domaine de validite' + print ' fin transition d epaisseur :',LTRANF + print ' valeur limite autorisee :',LCOUDE + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + if (DEXT<77.) or (DEXT>355.) : + print ' valeur hors domaine de validite' + print ' diam ext du tube avant transition:',LTRANF + print ' valeur minimale autorisee :',77. + print ' valeur maximale autorisee :',355. + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier +# +################################################################################ +# --- calcul taille initiale des defauts sur la plaque --- +################################################################################ +# +# + if FISS_COUDE!=None: + DSF=(FISS_COUDE['ABSC_CURV']!=None) + AXEAP,AXECP,SFP = ASCFIS(ALPHA, RM, RC, EP1, SUREP, GEOM, FPROF, + DGAXEC, AZIM, POSIT, SF, DSF, BETA, ORIEN) + elif MCL_SOUS_EPAIS!=None : + ier= ASCSEP(MCL_SOUS_EPAIS,ALPHA,RM,RC,EP1,GEOM,SYME) + for ssep in MCL_SOUS_EPAIS: + ssep.IDENL = ssep.ILONP/ssep['NB_ELEM_LONGI']*180./(pi*RC) + ssep.IDENC = ssep.ICIRP/ssep['NB_ELEM_CIRC']*180./(pi*RM) + if SYME=='QUART' : +# quart de structure + ier,NLX,NLY,NZONEX,NZONEY,BG,BD,BI,BS,INDBG,INDBD,INDBI,INDBS,DNX,DNY\ + = ASCSYM(MCL_SOUS_EPAIS,RM,RC,ALPHA,LTCHAR,LTCLIM) + else : +# demi-structure ou entiere + ier,NLX,NLY,NZONEX,NZONEY,BG,BD,BI,BS,INDBG,INDBD,INDBI,INDBS,DNX,DNY\ + = ASCPRE(MCL_SOUS_EPAIS,RM,RC,ALPHA,SYME,LTCHAR,LTCLIM) +# +# + loc_gibi=aster.repout() + logiel = EXEC_MAILLAGE['LOGICIEL' ] + UNITD = EXEC_MAILLAGE['UNITE_DATG'] + UNITP = EXEC_MAILLAGE['UNITE_MGIB'] + if logiel=='GIBI98' : logiel = loc_gibi+'gibi98' + elif logiel=='GIBI2000': logiel = loc_gibi+'gibi2000' + else : + self.cr.fatal(" seuls gibi98 et gibi2000 sont appelableS") + ier = ier+1 + return ier +# +# --- ecriture sur le fichier .datg de la procedure --- +# +# Nom du fichier de commandes pour GIBI + nomFichierDATG = 'fort.'+str(UNITD) +# Nom du fichier de maillage GIBI + nomFichierGIBI = 'fort.'+str(UNITP) + loc_datg = aster.repdex() +# + if FISS_COUDE!=None: +# procedure coude fissure (MOT-CLE FISS_COUDE) + write_file_dgib_ASCFDO(nomFichierDATG,RM,RC,ALPHA,NBTRAN,EP1,EP2,EPI,TETA1, + TETA2,LTRAN,SUREP,LTCHAR,LTCLIM,TYPBOL,AXEAP,AXECP,NT,NS,NC,SFP, + ORIEN,AZIM,RC0,RC2,RC3,POSIT,EPSI,NIVMAG,SYME,loc_datg) + elif MCL_SOUS_EPAIS!=None : + if SOUS_EPAIS_MULTI==None : +# procedure coude sous-ep.: (MOT-CLE SOUS_EPAIS_COUDE) + write_file_dgib_ASCSQO(nomFichierDATG,TYPELE,RM,RC,ALPHA,NBTRAN,EP1,EP2, + EPI,TETA1,MCL_SOUS_EPAIS,TETA2,LTRAN,LTCHAR,LTCLIM,GEOM, + SYME,NBEP,NLX,NLY,NIVMAG,loc_datg) + write_file_pgib_ASCSQ2(MCL_SOUS_EPAIS,NLX,NLY) + else: +# procedure coude sous-ep.:(MOT-CLE SOUS_EPAIS_MULTI) + write_file_dgib_ASCSP1(nomFichierDATG,TYPELE,MCL_SOUS_EPAIS,NIVMAG,loc_datg) + write_file_pgib_ASCSDO(RM,RC,ALPHA,EP1,LTCLIM,LTCHAR,NBEP, + NZONEX,NZONEY,BG,BD,BI,BS,INDBG,INDBD,INDBI,INDBS, + DNX,DNY,MCL_SOUS_EPAIS,GEOM,SYME) + write_file_pgib_ASCSP2(MCL_SOUS_EPAIS,NLX,NLY) + else: +# procedure coude regle + write_file_dgib_ASCRDO(nomFichierDATG,TYPELE,NIVMAG,TYPBOL,ALPHA,RC,RM,EP1,SUREP, + LTCLIM,LTCHAR,NBEP,loc_datg) + + +# GIBI + EXEC_LOGICIEL( LOGICIEL = logiel , + ARGUMENT = ( _F(NOM_PARA=nomFichierDATG), + _F(NOM_PARA=nomFichierGIBI), ), ) +# PRE_GIBI + PRE_GIBI() + + if SYME == 'QUART' : self.DeclareOut('nomres',self.sd) +# LIRE_MAILLAGE + nomres=LIRE_MAILLAGE(INFO=INFO) + +# DEFI_GROUP 1 + + motscles={} + l_CREA_GROUP_NO=[] + l_CREA_GROUP_NO.append('BORD1') + l_CREA_GROUP_NO.append('CLGV') + l_CREA_GROUP_NO.append('BORD2') + l_CREA_GROUP_NO.append('PEAUINT') + l_CREA_GROUP_NO.append('PEAUEXT') + +# cas des fissures axisymetriques + if FISS_COUDE!=None: + if FISS_COUDE['AXIS']=='OUI': + motscles['CREA_GROUP_MA']=[] + motscles['CREA_GROUP_MA'].append(_F(GROUP_MA = 'FONDFISS', + NOM = 'MAIL_ORI', + POSITION = 'INIT' , ),) + +# conversion des groupes de mailles en groupes du bloc fissure + if FISS_COUDE!=None: + if SYME == 'ENTIER': + l_CREA_GROUP_NO.append('NOLIG1') + l_CREA_GROUP_NO.append('FACE1') + l_CREA_GROUP_NO.append('NOLIG2') + l_CREA_GROUP_NO.append('FACE2') + l_CREA_GROUP_NO.append('FONDFISS') + + motscles['CREA_GROUP_NO']=[] + motscles['CREA_GROUP_NO'].append(_F(GROUP_MA=tuple(l_CREA_GROUP_NO))) + +# conversion des groupes de mailles en groupes de noeuds pour les +# ligaments des sous-ep. + if MCL_SOUS_EPAIS!=None: + issep=0 + for ssep in MCL_SOUS_EPAIS: + issep=issep+1 + if ssep['TYPE']=='ELLI': + for k in range(2*NLX[issep-1]+1): + chtmp=str(issep)+'_'+str(k+1) + ch1='CIR'+chtmp + ch2='ICI'+chtmp + motscles['CREA_GROUP_NO'].append(_F(NOM = ch2, + GROUP_MA = ch1,),) + motscles['CREA_GROUP_NO'].append(_F(NOM = 'IPCEN'+str(issep), + GROUP_MA = 'PCENT'+str(issep),),) + for k in range(2*NLY[issep-1]+1): + chtmp=str(issep)+'_'+str(k+1) + ch1='LON'+chtmp + ch2='ILO'+chtmp + motscles['CREA_GROUP_NO'].append(_F(NOM = ch2, + GROUP_MA = ch1,),) + for k in range(2*NLX[issep-1]+1): + chtmp=str(issep)+'_'+str(k+1) + ch1='ICI'+chtmp + ch2='OCI'+chtmp + ch3='ECI'+chtmp + motscles['CREA_GROUP_NO'].append(_F(NOM = ch2, + INTERSEC = ('PEAUEXT',ch1),),) + motscles['CREA_GROUP_NO'].append(_F(NOM = ch3, + INTERSEC = ('PEAUINT',ch1),),) + motscles['CREA_GROUP_NO'].append(_F(NOM = 'OPCEN'+str(issep), + INTERSEC = ('PEAUEXT','IPCEN'+str(issep),),),) + motscles['CREA_GROUP_NO'].append(_F(NOM = 'EPCEN'+str(issep), + INTERSEC = ('PEAUINT','IPCEN'+str(issep),),),) + for k in range(2*NLY[issep-1]+1): + chtmp=str(issep)+'_'+str(k+1) + ch1='ILO'+chtmp + ch2='OLO'+chtmp + ch3='ELO'+chtmp + motscles['CREA_GROUP_NO'].append(_F(NOM = ch2, + INTERSEC = ('PEAUEXT',ch1),),) + motscles['CREA_GROUP_NO'].append(_F(NOM = ch3, + INTERSEC = ('PEAUINT',ch1),),) + for k in range(2*NLX[issep-1]+1): + chtmp=str(issep)+'_'+str(k+1) + ch1='CIR'+chtmp + ch2='ICI'+chtmp + ch3='OCI'+chtmp + ch4='ECI'+chtmp + motscles['CREA_GROUP_NO'].append(_F(OPTION = 'SEGM_DROI_ORDO', + NOM = ch1, + GROUP_NO = ch2, + GROUP_NO_ORIG = ch3, + GROUP_NO_EXTR = ch4, + PRECISION = PRECIS, + CRITERE = CRITER,),) + motscles['CREA_GROUP_NO'].append(_F(OPTION = 'SEGM_DROI_ORDO', + NOM = 'PCENT'+str(issep), + GROUP_NO = 'IPCEN'+str(issep), + GROUP_NO_ORIG = 'OPCEN'+str(issep), + GROUP_NO_EXTR = 'EPCEN'+str(issep), + PRECISION = PRECIS, + CRITERE = CRITER,),) + for k in range(2*NLY[issep-1]+1): + chtmp=str(issep)+'_'+str(k+1) + ch1='LON'+chtmp + ch2='ILO'+chtmp + ch3='OLO'+chtmp + ch4='ELO'+chtmp + motscles['CREA_GROUP_NO'].append(_F(OPTION = 'SEGM_DROI_ORDO', + NOM = ch1, + GROUP_NO = ch2, + GROUP_NO_ORIG = ch3, + GROUP_NO_EXTR = ch4, + PRECISION = PRECIS, + CRITERE = CRITER,),) +# 1/ noms intermediaires des groupes de noeuds representant les ligaments +# des sections: TU,MI,GV et sous-ep. + for k in range(8): + motscles['CREA_GROUP_NO'].append(_F( NOM = CAR3[k]+str(issep), + GROUP_MA = CAR6[k]+str(issep),),) + + for k in range(3): + if SYME == 'ENTIER' or k!=2: + for j in range(8): + motscles['CREA_GROUP_NO'].append(_F( NOM = CAR3[j]+SECT[k], + GROUP_MA = CAR6[j]+SECT[k],),) + +# 2/ determination et nommage des noeuds origine et extremite des groupes de noeuds +# representant les ligaments de la ou des sections: sous-ep. + issep=0 + for ssep in MCL_SOUS_EPAIS: + issep=issep+1 + for k in range(8): + motscles['CREA_GROUP_NO'].append(_F( NOM = CAR4[k]+str(issep), + INTERSEC = ('PEAUEXT',CAR3[k]+str(issep),),),) + motscles['CREA_GROUP_NO'].append(_F( NOM = CAR5[k]+str(issep), + INTERSEC = ('PEAUINT',CAR3[k]+str(issep),),),) +# 3/ nommage final des groupes de noeuds representant les ligaments +# de la ou des sections: sous-ep. + for k in range(8): + motscles['CREA_GROUP_NO'].append(_F(OPTION = 'SEGM_DROI_ORDO', + NOM = CAR6[k]+str(issep), + GROUP_NO = CAR3[k]+str(issep), + GROUP_NO_ORIG = CAR4[k]+str(issep), + GROUP_NO_EXTR = CAR5[k]+str(issep), + PRECISION = PRECIS, + CRITERE = CRITER,),) + +# 4/ determination et nommage des noeuds origine et extremite des groupes de noeuds +# representant les ligaments des sections: TU,MI,GV + for k in range(3): + if SYME == 'ENTIER' or k!=2: + for j in range(8): + motscles['CREA_GROUP_NO'].append(_F( NOM = CAR4[j]+SECT[k], + INTERSEC = ('PEAUEXT',CAR3[j]+SECT[k],),),) + motscles['CREA_GROUP_NO'].append(_F( NOM = CAR5[j]+SECT[k], + INTERSEC = ('PEAUINT',CAR3[j]+SECT[k],),),) +# 5/ nommage final des groupes de noeuds representant les ligaments des sections: TU,MI,GV + for j in range(8): + motscles['CREA_GROUP_NO'].append(_F(OPTION = 'SEGM_DROI_ORDO', + NOM = CAR6[j]+SECT[k], + GROUP_NO = CAR3[j]+SECT[k], + GROUP_NO_ORIG = CAR4[j]+SECT[k], + GROUP_NO_EXTR = CAR5[j]+SECT[k], + PRECISION = PRECIS, + CRITERE = CRITER,),) + + + nomres=DEFI_GROUP(reuse =nomres, + MAILLAGE=nomres, + **motscles ) +# +# DEFI_GROUP 2 + if FISS_COUDE!=None: +# creation des groupes petit axe et grand axe fissure par +# intersection de groupes existants + motscles={} + motscles['CREA_GROUP_NO']=[] + l_peau=[] + l_intersec=[] + if POSIT == 'DEB_INT': + l_peau.append('PEAUINT') + else: + l_peau.append('PEAUEXT') + + if SYME == 'ENTIER' : + l_intersec.append('FACE1') + motscles['CREA_GROUP_NO'].append(_F(NOM = 'P_AXE_1', + INTERSEC = ('NOLIG1','FACE1'),),) + motscles['CREA_GROUP_NO'].append(_F(NOM = 'G_AXE_1', + INTERSEC = tuple(l_peau+l_intersec),),) + l_intersec=[] + l_intersec.append('FACE2') + motscles['CREA_GROUP_NO'].append(_F(NOM = 'P_AXE_2', + INTERSEC = ('NOLIG2','FACE2'),),) + motscles['CREA_GROUP_NO'].append(_F(NOM = 'G_AXE_2', + INTERSEC = tuple(l_peau+l_intersec),),) + + nomres=DEFI_GROUP(reuse =nomres, + MAILLAGE=nomres, + **motscles ) + +# AFFE_MODELE + __MODELE=AFFE_MODELE( MAILLAGE=nomres, + AFFE=_F( GROUP_MA = 'COUDE' , + PHENOMENE = 'MECANIQUE' , + MODELISATION = '3D' , ) + ) + +# MODI_MAILLAGE 1 + motscles={} + if GEOM == 'COUDE': + motscles['TUBE_COUDE']=[] + motscles['TUBE_COUDE'].append(_F(ANGLE=ALPHA, + R_CINTR=RC, + L_TUBE_P1=LTCHAR),) + motscles['PLAQ_TUBE']=[] + D_PLAQ_TUBE={} + D_PLAQ_TUBE['DEXT']=DEXT + D_PLAQ_TUBE['EPAIS']=EP1 + D_PLAQ_TUBE['L_TUBE_P1']=LTCHAR + if SYME == 'QUART' : D_PLAQ_TUBE['COUTURE']='NON' + if FISS_COUDE!=None: + D_PLAQ_TUBE['AZIMUT']=AZIM + elif SOUS_EPAIS_COUDE!=None : + D_PLAQ_TUBE['AZIMUT']=MCL_SOUS_EPAIS[0].IPHIC + else:pass + motscles['PLAQ_TUBE'].append(_F(**D_PLAQ_TUBE),) + nomres=MODI_MAILLAGE( reuse =nomres, + MAILLAGE=nomres, + **motscles ) + +# MODI_MAILLAGE 2 + motscles={} + motscles['ORIE_PEAU_3D']=_F(GROUP_MA=('PEAUINT','EXTUBE'),) + if FISS_COUDE!=None: + if FISS_COUDE['FISSURE'] == 'DEB_INIT': + motscles['ORIE_PEAU_3D']=_F(GROUP_MA=('PEAUINT','EXTUBE','FACE1','FACE2'),) + nomres=MODI_MAILLAGE(reuse =nomres, + MAILLAGE=nomres, + MODELE =__MODELE, + **motscles) + +# CREA_MAILLAGE + if SYME != 'QUART': + self.DeclareOut('nomre2',self.sd) + motscles={} + motscles['CREA_POI1']=[] + motscles['CREA_POI1'].append(_F(NOM_GROUP_MA='P1', + GROUP_NO='P1'),) + if TYPBOL == None : + motscles['CREA_POI1'].append(_F(NOM_GROUP_MA='P2', + GROUP_NO='P2'),) + nomre2=CREA_MAILLAGE( MAILLAGE=nomres, + **motscles) + else: + nomre2=nomres + + +# IMPRESSSION + if IMPRESSION!=None: + if IMPRESSION.__class__.__name__ !='MCList' : IMPRESSION =[IMPRESSION,] + for impr in IMPRESSION : +# + motscles={} + if impr['FORMAT']=='IDEAS' : motscles['VERSION'] =impr['VERSION'] + if impr['FORMAT']=='CASTEM' : motscles['NIVE_GIBI'] =impr['NIVE_GIBI'] + if impr['UNITE']!=None : motscles['UNITE'] =impr['UNITE'] + impr_resu = _F( MAILLAGE = nomre2,) +# + IMPR_RESU( RESU = impr_resu, + FORMAT= impr['FORMAT'],**motscles) + + + + return ier + + diff --git a/Aster/Cata/cataSTA7/Macro/macr_aspic_calc_ops.py b/Aster/Cata/cataSTA7/Macro/macr_aspic_calc_ops.py new file mode 100644 index 00000000..5bd34c5e --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/macr_aspic_calc_ops.py @@ -0,0 +1,822 @@ +#@ MODIF macr_aspic_calc_ops Macro DATE 03/05/2006 AUTEUR CIBHHLV L.VIVAN +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + + +def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM, + FOND_FISS_1,FOND_FISS_2,CHARGE,RESU_THER,AFFE_MATERIAU,EQUILIBRE, + PRES_REP,ECHANGE,TORS_CORP,TORS_TUBU,COMP_INCR,COMP_ELAS, + THETA_3D,OPTION,SOLVEUR,CONVERGENCE,NEWTON,RECH_LINEAIRE, + INCREMENT,PAS_AZIMUT,IMPRESSION,INFO,TITRE,BORNES ,**args): + """ + Ecriture de la macro MACR_ASPIC_CALC + """ + from Accas import _F + import types + ier=0 +#------------------------------------------------------------------ + # On recopie le mot cle affe_materiau pour le proteger + mc_AFFE_MATERIAU=AFFE_MATERIAU +#------------------------------------------------------------------ + # On importe les definitions des commandes a utiliser dans la macro + AFFE_MODELE =self.get_cmd('AFFE_MODELE' ) + AFFE_MATERIAU =self.get_cmd('AFFE_MATERIAU' ) + AFFE_CARA_ELEM =self.get_cmd('AFFE_CARA_ELEM' ) + AFFE_CHAR_THER_F =self.get_cmd('AFFE_CHAR_THER_F') + THER_LINEAIRE =self.get_cmd('THER_LINEAIRE' ) + AFFE_CHAR_MECA =self.get_cmd('AFFE_CHAR_MECA' ) + STAT_NON_LINE =self.get_cmd('STAT_NON_LINE' ) + CALC_ELEM =self.get_cmd('CALC_ELEM' ) + POST_RELEVE_T =self.get_cmd('POST_RELEVE_T' ) + IMPR_TABLE =self.get_cmd('IMPR_TABLE' ) + POST_RCCM =self.get_cmd('POST_RCCM' ) + DEFI_FOND_FISS =self.get_cmd('DEFI_FOND_FISS' ) + CALC_THETA =self.get_cmd('CALC_THETA' ) + CALC_G_THETA_T =self.get_cmd('CALC_G_THETA_T' ) + CALC_G_LOCAL_T =self.get_cmd('CALC_G_LOCAL_T' ) + IMPR_RESU =self.get_cmd('IMPR_RESU' ) + + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + +#------------------------------------------------------------------ +# data + GRMAIL= ('EQUERRE','PEAUINT','EXCORP1','EXCORP2','EXTUBU','LEVRTUBU','LEVRCORP') + NOMNOE= ('P1_CORP','P2_CORP','P_TUBU ') + IMPRT1= ('NUME_ORDRE','INTITULE','RESU' ,'NOM_CHAM', + 'ABSC_CURV' ,'COOR_X' ,'COOR_Y','COOR_Z' , + 'SIXX' ,'SIXY' ,'SIXZ' ) + IMPRT2= ('NUME_ORDRE','INTITULE','RESU' ,'NOM_CHAM', + 'ABSC_CURV' ,'COOR_X' ,'COOR_Y','COOR_Z' , + 'SIYY' ,'SIXY' ,'SIYZ' ) + IMPRT3= ('NUME_ORDRE','INTITULE','RESU' ,'NOM_CHAM', + 'ABSC_CURV' ,'COOR_X' ,'COOR_Y','COOR_Z' , + 'TEMP' ) + APPRES= ('PEAUINT ','LEVRTUBU','LEVRCORP') +#------------------------------------------------------------------ +# + i=0 + for mate in mc_AFFE_MATERIAU: + if mate['RCCM']=='OUI' : + i=i+1 + MRCCM=mate['MATER'] + if i>1 : + ier=ier+1 + self.cr.fatal(""" vous affectez plus d un materiau contenant l option rccm""") + return ier +# + if (TYPE_MAILLAGE[:4]=='SAIN') and (TUBULURE==None) : + ier=ier+1 + self.cr.fatal(""" pour les piquages sains, TUBULURE doit etre renseigne""") + return ier +# + if EQUILIBRE['NOEUD'] not in ('P1_CORP','P2_CORP') : + ier=ier+1 + self.cr.fatal(""" EQUILIBRE[NOEUD] : on attend 'P1_CORP ' ou 'P2_CORP'""") + return ier +# + if PRES_REP['EFFE_FOND']=='OUI' : + if PRES_REP['NOEUD']==None : + ier=ier+1 + self.cr.fatal(""" il faut preciser un noeud pour EFFE_FOND""") + return ier + if PRES_REP['NOEUD'] not in ('P1_CORP','P2_CORP') : + ier=ier+1 + self.cr.fatal(""" PRES_REP[NOEUD] : on attend 'P1_CORP' ou 'P2_CORP'""") + return ier + if PRES_REP['NOEUD']==EQUILIBRE['NOEUD'] : + ier=ier+1 + self.cr.fatal(""" on ne peut appliquer un EFFE_FOND sur PRES_REP[NOEUD] car ce noeud est bloque""") + return ier +# + if TORS_CORP!=None : + for tors in TORS_CORP : + if tors['NOEUD'] not in ('P1_CORP','P2_CORP') : + ier=ier+1 + self.cr.fatal(""" TORS_CORP[NOEUD] : on attend 'P1_CORP' ou 'P2_CORP'""") + return ier + if tors['NOEUD']==EQUILIBRE['NOEUD'] : + ier=ier+1 + self.cr.fatal(""" on ne peut appliquer un torseur sur TORS_CORP[NOEUD] car ce noeud est bloque""") + return ier +# + if (TYPE_MAILLAGE[:4]=='SAIN') and (THETA_3D!=None) : + ier=ier+1 + self.cr.fatal(""" si TYPE_MAILLAGE SAIN : mecanique de la rupture impossible""") + return ier +# + if OPTION in ('CALC_G_MAX','CALC_G_MAX_LOCAL') : + if BORNES==None : + ier=ier+1 + self.cr.fatal(""" mot-clef obligatoire avec cette option""") + return ier +# + if IMPRESSION!=None : + if IMPRESSION['FORMAT'] in ('IDEAS','CASTEM') : + if IMPRESSION['NOM_CHAM']==None : + ier=ier+1 + self.cr.fatal(""" impression de resultats demandée sans preciser le nom des champs + cf. la documentation utilisateur : U4.PC.20.""") + return ier +# +#------------------------------------------------------------------ +# +# --- commande AFFE_MODELE --- +# + if MODELE!=None : self.DeclareOut('modele',MODELE) + mcfact=[] + if (PRES_REP['PRES_LEVRE']=='OUI') and (TYPE_MAILLAGE[-4:]=='_DEB') : + mcfact.append(_F(GROUP_MA=GRMAIL, PHENOMENE='MECANIQUE',MODELISATION='3D' )) + else: + mcfact.append(_F(GROUP_MA=GRMAIL[:-2],PHENOMENE='MECANIQUE',MODELISATION='3D' )) + mcfact.append( _F(GROUP_MA='P1_CORP' ,PHENOMENE='MECANIQUE',MODELISATION='DIS_TR')) + mcfact.append( _F(GROUP_MA='P2_CORP' ,PHENOMENE='MECANIQUE',MODELISATION='DIS_TR')) + mcfact.append( _F(GROUP_MA='P_TUBU' ,PHENOMENE='MECANIQUE',MODELISATION='DIS_TR')) + modele = AFFE_MODELE( MAILLAGE = MAILLAGE , + AFFE = mcfact ) + if ECHANGE!=None : # modele thermique + __modthe = AFFE_MODELE( MAILLAGE = MAILLAGE , + AFFE = _F(GROUP_MA =GRMAIL[:-2], + PHENOMENE ='THERMIQUE', + MODELISATION='3D' ) ) +# +# --- commande AFFE_MATERIAU --- +# + if CHAM_MATER!=None : self.DeclareOut('affmat',CHAM_MATER) + mcfact=[] + for mater in mc_AFFE_MATERIAU : + if mater['TOUT']!=None : mcfact.append(_F(TOUT =mater['TOUT' ],MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF'])) + else : mcfact.append(_F(GROUP_MA=mater['GROUP_MA'],MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF'])) + affmat = AFFE_MATERIAU( MAILLAGE = MAILLAGE , + MODELE = modele , + AFFE = mcfact ) +# +# --- commande AFFE_CARA_ELEM --- +# + if CARA_ELEM!=None : self.DeclareOut('carael',CARA_ELEM) + carael = AFFE_CARA_ELEM( MODELE = modele , + DISCRET = ( _F( GROUP_MA='P1_CORP' , + CARA ='K_TR_D_N', + VALE = ( 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 ) ), + _F( GROUP_MA='P2_CORP' , + CARA ='K_TR_D_N', + VALE = ( 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 ) ), + _F( GROUP_MA='P_TUBU' , + CARA ='K_TR_D_N', + VALE = ( 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 ) ), ) ) +# +# --- commande AFFE_CHAR_THER_F --- +# condition aux limites +# + if ECHANGE!=None : + __chther = AFFE_CHAR_THER_F( MODELE = __modthe , + ECHANGE=( _F(GROUP_MA='PEAUTUBU', + COEF_H =ECHANGE['COEF_H_TUBU'], + TEMP_EXT=ECHANGE['TEMP_EXT'],), + _F(GROUP_MA='PEAUCORP', + COEF_H =ECHANGE['COEF_H_CORP'], + TEMP_EXT=ECHANGE['TEMP_EXT'],),)) +# +# --- calcul thermique --- +# + if RESU_THER!=None : self.DeclareOut('resuth',RESU_THER) + mcsimp={} + if INCREMENT['NUME_INST_INIT']!=None : mcsimp['NUME_INIT']=INCREMENT['NUME_INST_INIT'] + if INCREMENT['NUME_INST_FIN' ]!=None : mcsimp['NUME_FIN' ]=INCREMENT['NUME_INST_FIN' ] + mcfact=_F(LIST_INST=INCREMENT['LIST_INST'],**mcsimp) + resuth = THER_LINEAIRE( MODELE = __modthe , + CHAM_MATER = affmat , + TEMP_INIT = _F(STATIONNAIRE='OUI',), + EXCIT = _F(CHARGE=__chther,), + INCREMENT = mcfact, ) +# + if CHARGE!=None : self.DeclareOut('chmeth',CHARGE) + chmeth = AFFE_CHAR_MECA( MODELE = modele , + TEMP_CALCULEE = resuth ) +# +# --- commande AFFE_CHAR_MECA --- +# condition aux limites +# + if EQUILIBRE['NOEUD']=='P1_CORP' : + NENCAS = EQUILIBRE['NOEUD'] + AEFOCO = 'EXCORP2' + ATORCO = 'P2_CORP' + LINTC = 'L_INT_C2' + elif EQUILIBRE['NOEUD']=='P2_CORP' : + NENCAS = EQUILIBRE['NOEUD'] + AEFOCO = 'EXCORP1' + ATORCO = 'P1_CORP' + LINTC = 'L_INT_C1' + __conlim = AFFE_CHAR_MECA( MODELE = modele , + LIAISON_ELEM = ( _F( OPTION ='3D_POU' , + GROUP_MA_1='EXCORP1', + GROUP_NO_2='P1_CORP'), + _F( OPTION ='3D_POU' , + GROUP_MA_1='EXCORP2' , + GROUP_NO_2='P2_CORP'), + _F( OPTION ='3D_POU' , + GROUP_MA_1='EXTUBU', + GROUP_NO_2='P_TUBU'), ), + DDL_IMPO = _F( GROUP_NO = NENCAS , + DX = 0.0 , + DY = 0.0 , + DZ = 0.0 , + DRX = 0.0 , + DRY = 0.0 , + DRZ = 0.0 , ) ) +# +# --- commande AFFE_CHAR_MECA --- +# chargement mecanique : pres_rep, effet de fond +# + motscles={} + if (PRES_REP['PRES_LEVRE']=='OUI') and (TYPE_MAILLAGE[-4:]=='_DEB') : + motscles['PRES_REP' ]= _F(GROUP_MA=APPRES, PRES=PRES_REP['PRES']) + else : + motscles['PRES_REP' ]= _F(GROUP_MA=APPRES[0],PRES=PRES_REP['PRES']) + if PRES_REP['EFFE_FOND' ]!=None : + motscles['EFFE_FOND' ]=(_F(GROUP_MA ='EXTUBU ', + GROUP_MA_INT='L_INT_TU', + PRES =PRES_REP['PRES']), + _F(GROUP_MA =AEFOCO, + GROUP_MA_INT=LINTC, + PRES =PRES_REP['PRES'])) + __chpres = AFFE_CHAR_MECA( MODELE = modele ,**motscles) +# +# --- commande AFFE_CHAR_MECA --- +# chargement mecanique : torseur sur le corps +# + if TORS_CORP!=None: + __chtrc = [None]*6 + i=0 + for tors in TORS_CORP : + mcsimp={} + if tors['FX']!=None : mcsimp['FX']=tors['FX'] + if tors['FY']!=None : mcsimp['FY']=tors['FY'] + if tors['FZ']!=None : mcsimp['FZ']=tors['FZ'] + if tors['MX']!=None : mcsimp['MX']=tors['MX'] + if tors['MY']!=None : mcsimp['MY']=tors['MY'] + if tors['MZ']!=None : mcsimp['MZ']=tors['MZ'] + mcfact=_F(GROUP_NO=ATORCO,**mcsimp) + __chtrc[i] = AFFE_CHAR_MECA( MODELE = modele , + FORCE_NODALE = mcfact , ) + i=i+1 +# +# --- commande AFFE_CHAR_MECA --- +# chargement mecanique : torseur sur la tubulure +# + if TORS_TUBU!=None: + __chtrt = [None]*6 + i=0 + for tors in TORS_TUBU : + mcsimp={} + if tors['FX']!=None : mcsimp['FX']=tors['FX'] + if tors['FY']!=None : mcsimp['FY']=tors['FY'] + if tors['FZ']!=None : mcsimp['FZ']=tors['FZ'] + if tors['MX']!=None : mcsimp['MX']=tors['MX'] + if tors['MY']!=None : mcsimp['MY']=tors['MY'] + if tors['MZ']!=None : mcsimp['MZ']=tors['MZ'] + mcfact=_F(GROUP_NO='P_TUBU ',**mcsimp) + __chtrt[i] = AFFE_CHAR_MECA( MODELE = modele , + FORCE_NODALE = mcfact , ) + i=i+1 +# +# --- commande STAT_NON_LINE --- +# + motscles={} +# + mcfex=[] # mot clé facteur EXCIT + mcfex.append(_F(CHARGE=__conlim,)) + if ECHANGE!=None : + mcfex.append(_F(CHARGE=chmeth,)) + if PRES_REP['FONC_MULT']!=None : + mcfex.append(_F(CHARGE=__chpres,FONC_MULT=PRES_REP['FONC_MULT'])) + else : + mcfex.append(_F(CHARGE=__chpres,)) + if TORS_CORP!=None: + i=0 + for tors in TORS_CORP : + if tors['FONC_MULT']!=None : + mcfex.append(_F(CHARGE=__chtrc[i],FONC_MULT=tors['FONC_MULT'])) + else : + mcfex.append(_F(CHARGE=__chtrc[i],)) + i=i+1 + if TORS_TUBU!=None: + i=0 + for tors in TORS_TUBU : + if tors['FONC_MULT']!=None : + mcfex.append(_F(CHARGE=__chtrt[i],FONC_MULT=tors['FONC_MULT'])) + else : + mcfex.append(_F(CHARGE=__chtrt[i],)) + i=i+1 + motscles['EXCIT'] =mcfex +# + mcfci=[] # mot clé facteur COMP_INCR :obligatoire pour les noeuds discrets + if COMP_INCR!=None : + mcfci.append(_F(TOUT ='OUI' ,RELATION=COMP_INCR['RELATION'])) + mcfci.append( _F(GROUP_MA=NOMNOE,RELATION='ELAS')) + motscles['COMP_INCR'] =mcfci +# + if COMP_ELAS!=None : + motscles['COMP_ELAS'] =_F(GROUP_MA=GRMAIL[:-2] ,RELATION=COMP_ELAS['RELATION']) +# + dSolveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste) + for i in dSolveur.keys(): + if dSolveur[i]==None : del dSolveur[i] +# + dConverg=CONVERGENCE[0].cree_dict_valeurs(CONVERGENCE[0].mc_liste) + for i in dConverg.keys(): + if dConverg[i]==None : del dConverg[i] +# + dNewton=NEWTON[0].cree_dict_valeurs(NEWTON[0].mc_liste) + for i in dNewton.keys(): + if dNewton[i]==None : del dNewton[i] +# + dRechlin=RECH_LINEAIRE[0].cree_dict_valeurs(RECH_LINEAIRE[0].mc_liste) + for i in dRechlin.keys(): + if dRechlin[i]==None : del dRechlin[i] +# + dIncrem=INCREMENT[0].cree_dict_valeurs(INCREMENT[0].mc_liste) + for i in dIncrem.keys(): + if dIncrem[i]==None : del dIncrem[i] +# + if TITRE!=None : + motscles['TITRE' ] =TITRE + motscles ['SOLVEUR' ] =dSolveur + motscles ['CONVERGENCE' ] =dConverg + motscles ['NEWTON' ] =dNewton + motscles ['RECH_LINEAIRE'] =dRechlin + motscles ['INCREMENT' ] =dIncrem + self.DeclareOut('nomres',self.sd) + nomres = STAT_NON_LINE( MODELE = modele , + CHAM_MATER = affmat , + CARA_ELEM = carael , + INFO = INFO , **motscles) +# + nomres = CALC_ELEM( reuse = nomres, + RESULTAT = nomres , + TOUT_ORDRE = 'OUI' , + OPTION = ('SIEF_ELNO_ELGA','VARI_ELNO_ELGA','EQUI_ELNO_SIGM') , + INFO = INFO ,) +# +#----------------------------------------------------------------------- + if TYPE_MAILLAGE[:4]=='SAIN' : +#----------------------------------------------------------------------- +# +# --- post traitement : POST_RELEVE_T --- azimuts droits +# +# ---- champs de contrainte SI, SII ET SIII ---- +# + if TYPE_MAILLAGE=='SAIN_GROS' : NBAZIM = 40 + else : NBAZIM = 48 + mcfact=[] + TYPSOU=None + if TUBULURE!=None : TYPSOU = TUBULURE['TYPE'] + for i in range(1,NBAZIM+1,PAS_AZIMUT): + if i<10 : NUME = '0'+str(i) + else : NUME = str(i) + mcsimp={} + if TYPSOU=='TYPE_1': + mcsimp['REPERE' ]='CYLINDRIQUE', + mcsimp['ORIGINE']=( 0.0 , 0.0 , 0.0 ) + mcsimp['AXE_Z' ]=( 0.0 , 0.0 , 1.0 ) + INTITD = 'AZI_'+NUME+'_D-REP_CYL' + else: + mcsimp['REPERE' ]='LOCAL' + mcsimp['VECT_Y' ]=( 0.0 , 0.0 , 1.0 ) + INTITD = 'AZI_'+NUME+'_D-REP_LOC' + mcsimp['INTITULE' ]=INTITD + mcsimp['GROUP_NO' ]='LD'+str(i) + mcfact.append( _F( RESULTAT = nomres, + TOUT_ORDRE ='OUI', + NOM_CHAM ='SIEF_ELNO_ELGA', + PRECISION =55.E-1, + TOUT_CMP ='OUI', + OPERATION ='EXTRACTION',**mcsimp)) + __noposd=POST_RELEVE_T(ACTION = mcfact, + TITRE = '-- TRAITEMENT DES AZIMUTS DROITS --') +# +# --- IMPR_TABLE dans un repere cylindrique ou local +# des champs de contrainte SI, SII ET SIII +# + if TYPSOU=='TYPE_1' : nompara=IMPRT1 + else : nompara=IMPRT2 + IMPR_TABLE(TABLE = __noposd, + NOM_PARA = nompara ) +# +# ---- Pm, Pm+Pb sur les lignes de depouillement ---- +# + if mc_AFFE_MATERIAU[0]['RCCM']=='OUI': + mcfact=[] + for i in range(1,NBAZIM+1,PAS_AZIMUT): + if i<10 : NUME = '0'+str(i) + else : NUME = str(i) + mcsimp={} + mcsimp['PRECISION']=55.E-1 + mcsimp['GROUP_NO' ]='LD'+str(i) + mcfact.append( _F(**mcsimp) ) + __pmpbsd=POST_RCCM(MATER = MRCCM, + MAILLAGE = MAILLAGE, + TYPE_RESU_MECA = 'EVOLUTION', + TYPE_RESU = 'VALE_MAX', + OPTION = 'PM_PB', + SEGMENT = mcfact, + TRANSITOIRE = _F(RESULTAT =nomres, + NOM_CHAM ='SIEF_ELNO_ELGA', + TOUT_ORDRE='OUI',), + TITRE = '-- TRAITEMENT DES AZIMUTS DROITS --',) + IMPR_TABLE(TABLE = __pmpbsd, ) +# +# ---- champ de temperature, si il a ete calcule, sur les lignes de depouillement ---- +# + if ECHANGE!=None : + mcfact=[] + for i in range(1,NBAZIM+1,PAS_AZIMUT): + if i<10 : NUME = '0'+str(i) + else : NUME = str(i) + mcsimp={} + mcsimp['GROUP_NO' ]='LD'+str(i) + mcsimp['RESULTAT' ]=resuth + mcsimp['TOUT_ORDRE' ]='OUI' + mcsimp['NOM_CHAM' ]='TEMP' + mcsimp['PRECISION' ]=55.E-1 + mcsimp['TOUT_CMP' ]='OUI' + mcsimp['INTITULE' ]='AZI_'+NUME+'_D' + mcsimp['OPERATION' ]='EXTRACTION' + mcfact.append( _F(**mcsimp) ) + __rthazd=POST_RELEVE_T(ACTION=mcfact) + IMPR_TABLE(TABLE = __rthazd, ) +# +# ---- parametres caracterisant la distribution de temperature, +# si elle a ete calculee, dans l epaisseur du ligament ---- +# + mcfact=[] + for i in range(1,NBAZIM+1,PAS_AZIMUT): + if i<10 : NUME = '0'+str(i) + else : NUME = str(i) + mcsimp={} + mcsimp['GROUP_NO' ]='LD'+str(i) + mcsimp['RESULTAT' ]=resuth + mcsimp['TOUT_ORDRE' ]='OUI' + mcsimp['NOM_CHAM' ]='TEMP' + mcsimp['PRECISION' ]=55.E-1 + mcsimp['TOUT_CMP' ]='OUI' + mcsimp['INTITULE' ]='AZI_'+NUME+'_D' + mcsimp['OPERATION' ]='MOYENNE' + mcfact.append( _F(**mcsimp) ) + __rmothd=POST_RELEVE_T(ACTION=mcfact) + IMPR_TABLE(TABLE = __rmothd, ) +# +#----------------------------------------------------------------------- +# +# --- post traitement : POST_RELEVE_T --- azimuts inclines +# --- champs de contrainte SI, SII ET SIII ---- +# + mcfact=[] + for i in range(1,NBAZIM+1,PAS_AZIMUT): + if i<10 : NUME = '0'+str(i) + else : NUME = str(i) + mcsimp={} + mcsimp['GROUP_NO' ]='LI'+str(i) + mcsimp['RESULTAT' ]=nomres + mcsimp['TOUT_ORDRE' ]='OUI' + mcsimp['NOM_CHAM' ]='SIEF_ELNO_ELGA' + mcsimp['PRECISION' ]=55.E-1 + mcsimp['TOUT_CMP' ]='OUI' + mcsimp['REPERE' ]='LOCAL' + mcsimp['VECT_Y' ]=( 0.0 , 0.0 , 1.0 ) + mcsimp['INTITULE' ]='AZI_'+NUME+'_I-REP_LOC' + mcsimp['OPERATION' ]='EXTRACTION' + mcfact.append( _F(**mcsimp) ) + __noposi=POST_RELEVE_T(ACTION=mcfact) + IMPR_TABLE(TABLE = __noposi, ) +# +# ---- Pm, Pm+Pb sur les lignes de depouillement ---- +# + if mc_AFFE_MATERIAU[0]['RCCM']=='OUI': + mcfact=[] + for i in range(1,NBAZIM+1,PAS_AZIMUT): + if i<10 : NUME = '0'+str(i) + else : NUME = str(i) + mcsimp={} + mcsimp['PRECISION']=55.E-1 + mcsimp['GROUP_NO' ]='LI'+str(i) + mcfact.append( _F(**mcsimp) ) + __pmpbsi=POST_RCCM(MATER = MRCCM, + MAILLAGE = MAILLAGE, + TYPE_RESU_MECA = 'EVOLUTION', + TYPE_RESU = 'VALE_MAX', + OPTION = 'PM_PB', + SEGMENT = mcfact, + TRANSITOIRE = _F(RESULTAT =nomres, + NOM_CHAM ='SIEF_ELNO_ELGA', + TOUT_ORDRE='OUI',), + TITRE = '-- TRAITEMENT DES AZIMUTS INCLINES --',) + IMPR_TABLE(TABLE = __pmpbsi, ) +# +# ---- champs de temperature,si il a ete calcule, sur les lignes de depouillement ---- +# + if ECHANGE!=None : + mcfact=[] + for i in range(1,NBAZIM+1,PAS_AZIMUT): + if i<10 : NUME = '0'+str(i) + else : NUME = str(i) + mcsimp={} + mcsimp['GROUP_NO' ]='LI'+str(i) + mcsimp['RESULTAT' ]=resuth + mcsimp['TOUT_ORDRE' ]='OUI' + mcsimp['NOM_CHAM' ]='TEMP' + mcsimp['PRECISION' ]=55.E-1 + mcsimp['TOUT_CMP' ]='OUI' + mcsimp['INTITULE' ]='AZI_'+NUME+'_I' + mcsimp['OPERATION' ]='EXTRACTION' + mcfact.append( _F(**mcsimp) ) + __rthazi=POST_RELEVE_T(ACTION=mcfact) + IMPR_TABLE(TABLE = __rthazi, + NOM_PARA = IMPRT3 ) +# +# ---- parametres caracterisant la distribution de temperature, +# si elle a ete calculee, dans l epaisseur du ligament ---- +# + mcfact=[] + for i in range(1,NBAZIM+1,PAS_AZIMUT): + if i<10 : NUME = '0'+str(i) + else : NUME = str(i) + mcsimp={} + mcsimp['GROUP_NO' ]='LI'+str(i) + mcsimp['RESULTAT' ]=resuth + mcsimp['TOUT_ORDRE' ]='OUI' + mcsimp['NOM_CHAM' ]='TEMP' + mcsimp['PRECISION' ]=55.E-1 + mcsimp['TOUT_CMP' ]='OUI' + mcsimp['INTITULE' ]='AZI_'+NUME+'_I' + mcsimp['OPERATION' ]='MOYENNE' + mcfact.append( _F(**mcsimp) ) + __rmothi=POST_RELEVE_T(ACTION=mcfact) + IMPR_TABLE(TABLE = __rmothi, ) +# +#----------------------------------------------------------------------- + elif TYPE_MAILLAGE[:4]=='FISS' : +#----------------------------------------------------------------------- +# + NOMGRO=[] + NOMGRE=[] + TABMA8=[] + NOMMA =[] + if TYPE_MAILLAGE in ('FISS_COUR_DEB','FISS_LONG_DEB','FISS_AXIS_DEB','FISS_COUR_NONDEB') : + NBFIS = 1 + NOMGRO.append(('P_FON1' ,'P_FIS1' ),) + NOMGRE.append(('P_FON2' ,'P_FIS2' ),) + TABMA8.append('FONDFISS') + if TYPE_MAILLAGE in ('FISS_COUR_DEB','FISS_LONG_DEB') : FERME=0 + else : + FERME=1 + NOMMA.append('MAIL_ORI') + elif TYPE_MAILLAGE in ('FISS_LONG_NONDEB','FISS_AXIS_NONDEB') : + NBFIS = 2 + NOMGRO.append(('P_FON1' ,'P_FIS1' ),) + NOMGRE.append(('P_FON2' ,'P_FIS2' ),) + NOMGRO.append(('PI_FON1','PI_FIS1'),) + NOMGRE.append(('PI_FON2','PI_FIS2'),) + TABMA8.append('FOND_SUP') + TABMA8.append('FOND_INF') + if TYPE_MAILLAGE=='FISS_LONG_NONDEB' : FERME=0 + else : + FERME=1 + NOMMA.append('MA_ORI_S') + NOMMA.append('MA_ORI_I') +# + if ECHANGE!=None: +# +# ---- champs de temperature en fond de fissure +# si il a ete calcule, cas 1 fond de fissure ---- +# + if NBFIS==1: + __rthfis=POST_RELEVE_T(ACTION=_F(GROUP_NO ='FONDFISS', + RESULTAT =resuth, + TOUT_ORDRE ='OUI', + NOM_CHAM ='TEMP', + PRECISION =55.E-1, + TOUT_CMP ='OUI', + INTITULE ='FONDFISS', + OPERATION ='EXTRACTION',)) + IMPR_TABLE(TABLE = __rthfis, ) +# +# ---- champs de temperature en fond de fissure +# si il a ete calcule, cas 2 fonds de fissure ---- +# + elif NBFIS==2: +# + __rthfis1=POST_RELEVE_T(ACTION=_F(GROUP_NO ='FOND_SUP', + RESULTAT =resuth, + TOUT_ORDRE ='OUI', + NOM_CHAM ='TEMP', + PRECISION =55.E-1, + TOUT_CMP ='OUI', + INTITULE ='FOND_SUP', + OPERATION ='EXTRACTION',)) + IMPR_TABLE(TABLE = __rthfis1, ) + __rthfis2=POST_RELEVE_T(ACTION=_F(GROUP_NO ='FOND_INF', + RESULTAT =resuth, + TOUT_ORDRE ='OUI', + NOM_CHAM ='TEMP', + PRECISION =55.E-1, + TOUT_CMP ='OUI', + INTITULE ='FOND_INF', + OPERATION ='EXTRACTION',)) + IMPR_TABLE(TABLE = __rthfis2, ) +# +# boucle sur le nombre de fond de fissure +# + fond3d = [None]*2 + for j in range(NBFIS): + if FOND_FISS_1!=None : self.DeclareOut('fond3d_0',FOND_FISS_1) + if FOND_FISS_2!=None : self.DeclareOut('fond3d_1',FOND_FISS_2) +# +# --- commande DEFI_FOND_FISS --- +# + motscles={} + if not FERME: + motscles['FOND_FISS']=_F(GROUP_MA =TABMA8[j], + GROUP_NO_ORIG=NOMGRO[j][0], + GROUP_NO_EXTR=NOMGRE[j][0],) + motscles['VECT_GRNO_ORIG']=NOMGRO[j] + motscles['VECT_GRNO_EXTR']=NOMGRE[j] + else: + if TYPE_MAILLAGE.find('AXIS')!=-1 : grnoorig=NOMGRE[j][0] +# si AXIS, P_FON1 est remplace par P_FON2 pour +# fermer le fond de fissure + else : grnoorig=NOMGRO[j][0] + motscles['FOND_FERME']=_F(GROUP_MA =TABMA8[j], + GROUP_NO_ORIG=grnoorig, + GROUP_MA_ORIG=NOMMA[j],) + fond3d[j]=DEFI_FOND_FISS( MAILLAGE = MAILLAGE, + LEVRE_SUP = _F(GROUP_MA='LEVRCORP',), + LEVRE_INF = _F(GROUP_MA='LEVRTUBU',),**motscles) + if THETA_3D!=None: + for tht3d in THETA_3D : +# +# --- commande CALC_THETA --- +# + __theta = CALC_THETA( MODELE = modele, + FOND_FISS = fond3d[j], + THETA_3D = _F( TOUT = 'OUI', + MODULE = 1.0 , + R_INF = tht3d['R_INF'], + R_SUP = tht3d['R_SUP'], ) ) +# +# --- commande CALC_G_THETA_T --- +# + montit = 'G_THETA AVEC R_INF = '+str(tht3d['R_INF'])+' ET R_SUP = '+str(tht3d['R_SUP']) + motscles={} + if COMP_ELAS!=None: motscles['COMP_ELAS']= _F(TOUT = 'OUI', + RELATION = COMP_ELAS['RELATION'],) + if COMP_INCR!=None: motscles['COMP_INCR']= _F(RELATION = COMP_INCR['RELATION'],) + print motscles + __gtheta = CALC_G_THETA_T( MODELE = modele, + CHAM_MATER = affmat, + THETA = __theta, + RESULTAT = nomres, + TOUT_ORDRE = 'OUI', + TITRE = montit,**motscles) + IMPR_TABLE(TABLE = __gtheta, ) +# +# recherche du g max +# + if OPTION=='CALC_G_MAX' : + if BORNES!=None: + mcfact=[] + for born in BORNES : + mcfact.append(_F( NUME_ORDRE = born['NUME_ORDRE'] , + VALE_MIN = born['VALE_MIN' ] , + VALE_MAX = born['VALE_MAX' ] ) ) + __gbil = CALC_G_THETA_T( MODELE = modele, + CHAM_MATER = affmat, + THETA = __theta, + RESULTAT = nomres, + TOUT_ORDRE = 'OUI', + COMP_ELAS = _F(TOUT = 'OUI', + RELATION = COMP_ELAS['RELATION'],), + TITRE = montit, + OPTION = OPTION, + BORNES = mcfact,) + IMPR_TABLE(TABLE = __gbil, ) +# +# --- commande CALC_G_LOCAL_T --- +# + montit = 'G_LOCAL AVEC R_INF = '+str(tht3d['R_INF'])+' ET R_SUP = '+str(tht3d['R_SUP']) + motscles={} + if COMP_ELAS!=None: motscles['COMP_ELAS' ]= _F(TOUT = 'OUI', + RELATION = COMP_ELAS['RELATION'],) + if FERME: + motscles['LISSAGE_THETA']= 'LAGRANGE' + motscles['LISSAGE_G' ]= 'LAGRANGE' + __glocal = CALC_G_LOCAL_T( MODELE = modele, + CHAM_MATER = affmat, + FOND_FISS = fond3d[j], + RESULTAT = nomres, + TOUT_ORDRE = 'OUI', + R_INF = tht3d['R_INF'], + R_SUP = tht3d['R_SUP'], + TITRE = montit,**motscles) + IMPR_TABLE(TABLE = __glocal, ) +# +# recherche du g max local +# + if OPTION=='CALC_G_MAX_LOCAL' : + if BORNES!=None: + motscles={} + mcfact=[] + if FERME: + motscles['LISSAGE_THETA']= 'LAGRANGE' + motscles['LISSAGE_G' ]= 'LAGRANGE' + for born in BORNES : + mcfact.append(_F( NUME_ORDRE = born['NUME_ORDRE'] , + VALE_MIN = born['VALE_MIN' ] , + VALE_MAX = born['VALE_MAX' ] ) ) + motscles['BORNES']=mcfact + __glbil = CALC_G_LOCAL_T( MODELE = modele, + CHAM_MATER = affmat, + FOND_FISS = fond3d[j], + RESULTAT = nomres, + TOUT_ORDRE = 'OUI', + COMP_ELAS = _F(TOUT = 'OUI', + RELATION = COMP_ELAS['RELATION'],), + TITRE = montit, + OPTION = 'CALC_G_MAX', + R_INF = tht3d['R_INF'], + R_SUP = tht3d['R_SUP'],**motscles) + IMPR_TABLE(TABLE = __glbil, ) +# +# --- commande IMPR_RESU --- +# + if IMPRESSION!=None: + mcfresu =[] + motscles={} + motsclei={} + if IMPRESSION['FORMAT'] in ('IDEAS','CASTEM') : + ncham =[] + if IMPRESSION['NOM_CHAM']!=None : + if type(IMPRESSION['NOM_CHAM']) in (types.TupleType,types.ListType) : ncham= IMPRESSION['NOM_CHAM'] + else : ncham=[IMPRESSION['NOM_CHAM'],] + if len(ncham)==3 : motscles['NOM_CHAM' ]=('DEPL','EQUI_ELNO_SIGM') + elif (len(ncham)==1) and (ncham[0][:4]!='TEMP') : + motscles['NOM_CHAM' ]= ncham[0] + elif (len(ncham)==2) and (ncham[0][:4]!='TEMP') and (ncham[1][:4]!='TEMP') : + motscles['NOM_CHAM' ]=(ncham[0],ncham[1]) + elif (len(ncham)==2) and (ncham[0][:4]=='TEMP') : + motscles['NOM_CHAM' ]= ncham[1] + elif (len(ncham)==2) and (ncham[1][:4]=='TEMP') : + motscles['NOM_CHAM' ]= ncham[0] + if IMPRESSION['TOUT_ORDRE']!=None : + motscles['TOUT_ORDRE']= IMPRESSION['TOUT_ORDRE'] + elif IMPRESSION['NUME_ORDRE']!=None : + motscles['NUME_ORDRE']= IMPRESSION['NUME_ORDRE'] + elif IMPRESSION['INST']!=None : + motscles['INST' ]= IMPRESSION['INST'] + if IMPRESSION['FORMAT']=='IDEAS' : + motsclei['VERSION' ]= IMPRESSION['VERSION'] + if IMPRESSION['FORMAT']=='CASTEM' : + motsclei['NIVE_GIBI' ]= IMPRESSION['NIVE_GIBI'] + mcfresu.append(_F(MAILLAGE=MAILLAGE,RESULTAT=nomres,**motscles)) + if ECHANGE!=None: + motscles={} + if IMPRESSION['FORMAT'] in ('IDEAS','CASTEM') : + if len(ncham)==3 : motscles['NOM_CHAM' ]=('TEMP',) + elif (len(ncham)==1) and (ncham[0][:4]=='TEMP') : + motscles['NOM_CHAM' ]= ncham[0] + elif (len(ncham)==2) and (ncham[0][:4]=='TEMP') : + motscles['NOM_CHAM' ]= ncham[0] + elif (len(ncham)==2) and (ncham[1][:4]=='TEMP') : + motscles['NOM_CHAM' ]= ncham[1] + if IMPRESSION['TOUT_ORDRE']!=None : + motscles['TOUT_ORDRE']= IMPRESSION['TOUT_ORDRE'] + elif IMPRESSION['NUME_ORDRE']!=None : + motscles['NUME_ORDRE']= IMPRESSION['NUME_ORDRE'] + elif IMPRESSION['INST']!=None : + motscles['INST' ]= IMPRESSION['INST'] + if IMPRESSION['FORMAT']=='IDEAS' : + motsclei['VERSION' ]= IMPRESSION['VERSION'] + if IMPRESSION['FORMAT']=='CASTEM' : + motsclei['NIVE_GIBI' ]= IMPRESSION['NIVE_GIBI'] + mcfresu.append(_F(RESULTAT=resuth,**motscles)) + IMPR_RESU( MODELE = modele, + RESU = mcfresu, + FORMAT=IMPRESSION['FORMAT'],**motsclei) +# + return ier diff --git a/Aster/Cata/cataSTA7/Macro/macr_aspic_mail_ops.py b/Aster/Cata/cataSTA7/Macro/macr_aspic_mail_ops.py new file mode 100644 index 00000000..d1140f87 --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/macr_aspic_mail_ops.py @@ -0,0 +1,927 @@ +#@ MODIF macr_aspic_mail_ops Macro DATE 31/05/2006 AUTEUR CIBHHLV L.VIVAN +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + + +import os.path +from math import sqrt, cos, sin, pi, pow, tan + +# Ecriture du fichier GIBI principal (dgib) - ASPID0 +def write_file_dgib_ASPID0(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ZMAX, H, + ALPHA, JEU, EPC, DEC, XMAX, TYPMAI, THETA, TYPELE, + ITYPSO, DPENE, NIVMAG, loc_datg) : + + import aster +# Ouverture du fichier d'entrée de commandes + fdgib=open(nomFichierDATG,'w') + POIVIR = ' ; \n' + texte='****************************************************************\n' + texte=texte+'opti echo 0 ; \n' + texte=texte+'epT1 = '+str(EPT1) +POIVIR + texte=texte+'DeT1 = '+str(DET1) +POIVIR + texte=texte+'d1 = '+str(D1) +POIVIR + texte=texte+'d2 = '+str(D2) +POIVIR + texte=texte+'epT2 = '+str(EPT2) +POIVIR + texte=texte+'DeT2 = '+str(DET2) +POIVIR + texte=texte+'Zmax = '+str(ZMAX) +POIVIR + texte=texte+'type_s = '+str(ITYPSO) +POIVIR + texte=texte+'d_pene = '+str(DPENE) +POIVIR + texte=texte+'h = '+str(H) +POIVIR + texte=texte+'angl_s = '+str(ALPHA) +POIVIR + texte=texte+'jeu = '+str(JEU) +POIVIR + texte=texte+'epC = '+str(EPC) +POIVIR + texte=texte+'DeC = '+str(DEC) +POIVIR + texte=texte+'Xmax = '+str(XMAX) +POIVIR + texte=texte+'typmai = MOT '+TYPMAI +POIVIR + texte=texte+'theta = '+str(THETA) +POIVIR + texte=texte+'typele = MOT '+TYPELE +POIVIR + texte=texte+'typ_eque = MOT '+'SAINE' +POIVIR + texte=texte+'nivmag = '+str(NIVMAG) +POIVIR + texte=texte+'* \n' + texte = texte + open(os.path.join(loc_datg, 'aspic.datg'), 'r').read() + print texte + fdgib.write(texte) + fdgib.close() + +# Ecriture du fichier GIBI principal (dgib) - ASPID1 +def write_file_dgib_ASPID1(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ZMAX, H, + ALPHA, JEU, EPC, DEC, XMAX, TYPMAI,THETA, + A,C,EPS, RC0, NS,NC,NT,POSI, NDT,FETIRF,FETIRP, + TFISS,ZETA,ITYPSO,DPENE, NIVMAG, loc_datg) : + + import aster +# Ouverture du fichier d'entrée de commandes + fdgib=open(nomFichierDATG,'w') + POIVIR = ' ; \n' + texte='****************************************************************\n' + texte=texte+'opti echo 0 ; \n' + texte=texte+'epT1 = '+str(EPT1) +POIVIR + texte=texte+'DeT1 = '+str(DET1) +POIVIR + texte=texte+'d1 = '+str(D1) +POIVIR + texte=texte+'d2 = '+str(D2) +POIVIR + texte=texte+'epT2 = '+str(EPT2) +POIVIR + texte=texte+'DeT2 = '+str(DET2) +POIVIR + texte=texte+'Zmax = '+str(ZMAX) +POIVIR + texte=texte+'type_s = '+str(ITYPSO) +POIVIR + texte=texte+'d_pene = '+str(DPENE) +POIVIR + texte=texte+'h = '+str(H) +POIVIR + texte=texte+'angl_s = '+str(ALPHA) +POIVIR + texte=texte+'jeu = '+str(JEU) +POIVIR + texte=texte+'epC = '+str(EPC) +POIVIR + texte=texte+'DeC = '+str(DEC) +POIVIR + texte=texte+'Xmax = '+str(XMAX) +POIVIR + texte=texte+'typmai = MOT '+TYPMAI +POIVIR + texte=texte+'theta = '+str(THETA) +POIVIR + texte=texte+'a = '+str(A) +POIVIR + texte=texte+'c = '+str(C) +POIVIR + texte=texte+'zeta = '+str(ZETA) +POIVIR + texte=texte+'eps = '+str(EPS) +POIVIR + texte=texte+'rc0 = '+str(RC0) +POIVIR + texte=texte+'ns = '+str(NS) +POIVIR + texte=texte+'nc = '+str(NC) +POIVIR + texte=texte+'nt = '+str(NT) +POIVIR + texte=texte+'dir_fiss = MOT '+POSI +POIVIR + texte=texte+'pos_fiss = MOT '+TFISS +POIVIR + texte=texte+'ndt = '+str(NDT) +POIVIR + texte=texte+'f_etir_f = '+str(FETIRF) +POIVIR + texte=texte+'f_etir_p = '+str(FETIRP) +POIVIR + texte=texte+'typ_eque = MOT '+'FISS_LON' +POIVIR + texte=texte+'nivmag = '+str(NIVMAG) +POIVIR + texte=texte+'* \n' + texte = texte + open(os.path.join(loc_datg, 'aspic_v2.datg'), 'r').read() + print texte + fdgib.write(texte) + fdgib.close() + +# Ecriture du fichier GIBI principal (dgib) - ASPID2 +def write_file_dgib_ASPID2(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ZMAX, + H, ALPHA, JEU, EPC, DEC, XMAX, TYPMAI, + THETA, A, C, EPS, RC0, RC1, RC2, RC3, + ALP,BETA, NS, NC, NT, POSI ,NDT,NSDT,TFISS, + ZETA,ITYPSO,DPENE, NIVMAG, loc_datg) : +# + import aster + CALPHA = cos(ALPHA*pi/180.) + SALPHA = sin(ALPHA*pi/180.) + CTHETA = cos(THETA*pi/180.) + STHETA = sin(THETA*pi/180.) +# + AOLD = A +# + if (ITYPSO == 1) : +# PIQUAGE TYPE 1 + if (POSI == 'DROIT') : +# PIQUAGE DROIT + if (TFISS == 'DEB_INT') : +# POSITION INTERNE + SGAMMA = STHETA * (DET1/2.0)/( (DEC/2.0) -EPC) + SGAMME = STHETA * (DET1/2.0)/( (DEC/2.0) ) + RAPPA = sqrt(1.0 - pow(SGAMMA,2)) + RAPPE = sqrt(1.0 - pow(SGAMME,2)) + AP = A - (1.0 - RAPPA)*A + RAPP = (AP/EPC*RAPPE) + (1.0-(AP/EPC))*RAPPA + XA = (DET1/2.0) * CTHETA + YA = (DET1/2.0) * STHETA + ZA = ((DEC/2.0) -EPC) * sqrt(1.0 - pow(SGAMMA,2)) + ZA0 = (DEC/2.0) - EPC + XA0 = DET1/2.0 + XN0 = XA0 + YN0 = 0.0 + ZN0 = ZA0 + A + XN = XN0 * CTHETA + YN = XN0 * STHETA + SGAMN = YN / ZN0 + ZN = ZN0 * sqrt(1.0 - (SGAMN*SGAMN)) + D0N0 = sqrt( pow((XA0 - XN0),2) + pow((ZA0 - ZN0),2) ) + DN = sqrt( pow((XA - XN),2) + pow((YA - YN),2) + pow((ZA - ZN),2) ) + RAPP = D0N0 / DN + ECART = (1.0 - RAPP) * D0N0 + A = A - ECART + elif (TFISS == 'DEB_EXT') : +# POSITION EXTERNE + SGAMME = STHETA * (DET1/2.0)/ (DEC/2.0) + RAPPE = sqrt(1.0 - pow(SGAMME,2)) + A = A -(1.0 - RAPPE)*A + + elif (POSI == 'INCLINE') : +# PIQUAGE INCLINE + SGAMMA = STHETA * (DET1/2.0)/ ( (DEC/2.0) -EPC) + XA = (DET1/2.0) * CTHETA + YA = (DET1/2.0) * STHETA + ZA = ((DEC/2.0) - EPC) * sqrt(1.0 - pow(SGAMMA,2)) + ZA0 = (DEC/2.0) - EPC + ZD0 = DEC/2.0 + XA0 = DET1/2.0 + XD0 = XA0 + (tan(ALPHA*pi/180.0) * EPC) + A0D0 = sqrt( pow((ZD0 - ZA0),2) + pow((XD0 - XA0),2) ) + EPSIL = STHETA * tan(ALPHA*pi/180.0) + PHI = (EPSIL * ZA) - YA + DELTA = pow(PHI,2) - ((1 + pow(EPSIL,2))*(pow(PHI,2) - (pow((DEC/2.0),2)*pow(EPSIL,2)))) + if (STHETA > 0) : + YD = ( sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) + else : + YD = ( -1.0*sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) + + ZD = sqrt(pow((DEC/2.0),2) - pow(YD,2)) + + if ( (abs(THETA - 0.0) < 1.e-3) or ((abs(THETA - 180.0)) < 1.e-3) ) : + XD = CTHETA * XD0 + else : + XD = YD / tan(THETA*pi/180.0) + + AD = sqrt( pow((XA - XD),2) + pow((YA - YD),2) + pow((ZA - ZD),2) ) + RAPP = A0D0 / AD + + if (TFISS == 'DEB_EXT') : + XN0 = XD0 - A*SALPHA + YN0 = 0.0 + ZN0 = ZD0 - A*CALPHA + XN = XN0 * CTHETA + YN = XN0 * STHETA + DNXY = sqrt(pow(XD,2) + pow(YD,2)) - sqrt(pow(XN,2) + pow(YN,2)) + DNXY0 = XD0 - XN0 + RAPP = DNXY/DNXY0 + # Correction necessaire dans le cas theta et/ou alpha grand + if (RAPP < 0.5) : + DXY = sqrt(pow(XD,2) + pow(YD,2) ) + XN = XN * DXY/XD0 + YN = YN * DXY/XD0 + SGAMN = YN / ZN0 + ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2)) + D0N0 = sqrt( pow((XD0 - XN0),2) + pow((ZD0 - ZN0),2) ) + DN = sqrt( pow((XD - XN),2) + pow((YD - YN),2) + pow((ZD - ZN),2) ) + RAPP = D0N0 / DN + ECART = (RAPP - 1.0) * D0N0 + A = A + ECART + + if (TFISS == 'DEB_INT') : + XN0 = XA0 + A*SALPHA + YN0 = 0.0 + ZN0 = ZA0 + A*CALPHA + XN = XN0 * CTHETA + YN = XN0 * STHETA + SGAMN = YN / ZN0 + ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2)) + D0N0 = sqrt( pow((XA0 - XN0),2) + pow((ZA0 - ZN0),2) ) + DN = sqrt( pow((XA - XN),2) + pow((YA - YN),2) + pow((ZA - ZN),2) ) + RAPP = D0N0 / DN + ECART = (RAPP - 1.0) * D0N0 + A = A + ECART + + elif (ITYPSO == 2) : +# PIQUAGE TYPE 2 + if (POSI == 'DROIT') : +# PIQUAGE DROIT + SGAMMI = STHETA * ((DET1/2.0) - EPT1)/(DEC/2.0) + XI = ((DET1/2.0) - EPT1) * CTHETA + YI = ((DET1/2.0) - EPT1) * STHETA + ZI = (DEC/2.0) * sqrt(1.0 - pow(SGAMMI,2)) + XI0 = (DET1/2.0) -EPT1 + YI0 = 0.0 + ZI0 = (DEC/2.0) + + SGAMMA = STHETA * (DET1/2.0)/((DEC/2.0) -EPC) + YA = (DET1/2.0) * STHETA + ZA = ((DEC/2.0) - EPC) * sqrt(1.0 - pow(SGAMMA,2)) + TGALP = H / EPC + EPSIL = STHETA * TGALP + PHI = (EPSIL * ZA) - YA + DELTA = pow(PHI,2) - (1.0 + pow(EPSIL,2))*(pow(PHI,2) - pow((DEC/2.0),2)*pow(EPSIL,2)) + if (STHETA > 0) : + YD = (sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) + else : + YD = (-1.0*sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) + + ZD = sqrt( pow((DEC/2.0),2) - pow(YD,2) ) + if ( (abs(THETA - 0.0) < 1.0e-3) or + (abs(THETA - 180.0) < 1.0e-3) or + (abs(THETA + 180.0) < 1.0e-3) or + (abs(THETA + 90.0) < 1.0e-3) or + (abs(THETA - 90.0) < 1.0e-3) ) : + XD = CTHETA * ((DET1/2.0) + H) + else : + XD = YD / (tan(THETA*pi/180.0)) + + XD0 = (DET1/2.0) + H + YD0 = 0.0 + ZD0 = (DEC/2.0) + + if (TFISS == 'DEB_EXT') : + XN0 = XD0 - A + YN0 = 0.0 + ZN0 = ZI0 + XN = XN0 * CTHETA + YN = XN0 * STHETA + DZID = abs(ZI - ZD) + DXYID = sqrt( pow((XD - XI),2) + pow((YD - YI),2) ) + DXYIN = sqrt( pow((XN - XI),2) + pow((YN - YI),2) ) + DZIN = (DXYIN * DZID) / DXYID + ZN = ZI - DZIN + D0N0 = sqrt( pow((XD0 - XN0),2) + pow((ZD0 - ZN0),2) ) + DN = sqrt( pow((XD - XN),2) + pow((YD - YN),2) + pow((ZD - ZN),2) ) + RAPP = D0N0 / DN + ECART = DN - D0N0 + A = A - ECART + + if (TFISS == 'DEB_INT') : + XN0 = XI0 + A + YN0 = 0.0 + ZN0 = ZI0 + XN = XN0 * CTHETA + YN = XN0 * STHETA + SGAMN = YN / ZN0 + ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2)) + I0N0 = sqrt( pow((XI0 - XN0),2) + pow((ZI0 - ZN0),2) ) + IN = sqrt( pow((XI - XN),2) + pow((YI - YN),2) + pow((ZI - ZN),2) ) + RAPP = I0N0 / IN + ECART = I0N0 * ( 1.0 - RAPP ) + A = A - ECART + + elif (POSI == 'INCLINE') : +# PIQUAGE INCLINE + TGALPHA = SALPHA/CALPHA + REPB = (DEC/2.0) + JEU + (EPT1*TGALPHA) + SGAMB = (STHETA * DET1/2.0 ) / REPB + CGAMB = sqrt(1.0 - pow(SGAMB,2)) + XB = (DET1/2.0) * CTHETA + YB = (DET1/2.0) * STHETA + ZB = ( (DEC/2.0) + JEU + (EPT1*TGALPHA) ) * CGAMB + XB0 = (DET1/2.0) + YB0 = 0.0 + ZB0 = (DEC/2.0) + JEU + (EPT1*TGALPHA) +# + RIT1 = (DET1/2.0) - EPT1 + REPG = (DEC/2.0) + JEU + SGAMG = ((STHETA ) * RIT1) / REPG + CGAMG = sqrt(1.0 - pow(SGAMG,2)) + XG = RIT1 * CTHETA + YG = RIT1 * STHETA + ZG = ((DEC/2.0) + JEU) * CGAMG + XG0 = RIT1 + YG0 = 0.0 + ZG0 = (DEC/2.0) + JEU +# + if (TFISS == 'DEB_INT') : + XN0 = XG0 + A*CALPHA + YN0 = 0.0 + ZN0 = ZG0 + A*SALPHA + XN = XN0 * CTHETA + YN = XN0 * STHETA + SGAMN = YN / ZN0 + ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2)) + G0N0 = sqrt( pow((XG0 - XN0),2) + pow((ZG0 - ZN0),2) ) + GN = sqrt( pow((XG - XN),2) + pow((YG - YN),2) + pow((ZG - ZN),2) ) + RAPP = G0N0 / GN + ECART = (RAPP - 1.0) * G0N0 + A = A + ECART + + if (TFISS == 'DEB_EXT') : + XN0 = XB0 - A*CALPHA + YN0 = 0.0 + ZN0 = ZB0 - A*SALPHA + XN = XN0 * CTHETA + YN = XN0 * STHETA + SGAMN = YN / ZN0 + ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2)) + B0N0 = sqrt( pow((XB0 - XN0),2) + pow((ZB0 - ZN0),2) ) + BN = sqrt( pow((XB - XN),2) + pow((YB - YN),2) + pow((ZB - ZN),2) ) + RAPP = B0N0 / BN + ECART = (RAPP - 1.0) * B0N0 + A = A + ECART + + print ' CORRECTION PROFONDEUR DEFAUT' + print ' PROFONDEUR SUR PIQUAGE : ', AOLD + print ' PROFONDEUR SUR EQUERRE : ', A + +# Ouverture du fichier d'entrée de commandes + + fdgib=open(nomFichierDATG,'w') + POIVIR = ' ; \n' + texte='****************************************************************\n' + texte=texte+'opti echo 0 ; \n' + texte=texte+'epT1 = '+str(EPT1) +POIVIR + texte=texte+'DeT1 = '+str(DET1) +POIVIR + texte=texte+'d1 = '+str(D1) +POIVIR + texte=texte+'d2 = '+str(D2) +POIVIR + texte=texte+'epT2 = '+str(EPT2) +POIVIR + texte=texte+'DeT2 = '+str(DET2) +POIVIR + texte=texte+'Zmax = '+str(ZMAX) +POIVIR + texte=texte+'type_s = '+str(ITYPSO) +POIVIR + texte=texte+'d_pene = '+str(DPENE) +POIVIR + texte=texte+'h = '+str(H) +POIVIR + texte=texte+'angl_s = '+str(ALPHA) +POIVIR + texte=texte+'jeu = '+str(JEU) +POIVIR + texte=texte+'epC = '+str(EPC) +POIVIR + texte=texte+'DeC = '+str(DEC) +POIVIR + texte=texte+'Xmax = '+str(XMAX) +POIVIR + texte=texte+'typmai = MOT '+TYPMAI +POIVIR + texte=texte+'theta = '+str(THETA) +POIVIR + texte=texte+'a = '+str(A) +POIVIR + texte=texte+'c = '+str(C) +POIVIR + texte=texte+'zeta = '+str(ZETA) +POIVIR + texte=texte+'eps = '+str(EPS) +POIVIR + texte=texte+'rc0 = '+str(RC0) +POIVIR + texte=texte+'rc1 = '+str(RC1) +POIVIR + texte=texte+'rc2 = '+str(RC2) +POIVIR + texte=texte+'rc3 = '+str(RC3) +POIVIR + texte=texte+'alpha = '+str(ALP) +POIVIR + texte=texte+'beta = '+str(BETA) +POIVIR + texte=texte+'ns = '+str(NS) +POIVIR + texte=texte+'nc = '+str(NC) +POIVIR + texte=texte+'nt = '+str(NT) +POIVIR + texte=texte+'dir_fiss = MOT '+POSI +POIVIR + texte=texte+'pos_fiss = MOT '+TFISS +POIVIR + texte=texte+'ndt = '+str(NDT) +POIVIR + texte=texte+'nsdt = '+str(NSDT) +POIVIR + texte=texte+'typ_eque = MOT '+'FISS_COU' +POIVIR + texte=texte+'nivmag = '+str(NIVMAG) +POIVIR + texte=texte+'* \n' + texte=texte+'list epc ;\n' + texte = texte + open(os.path.join(loc_datg, 'aspic.datg'), 'r').read() + print texte + fdgib.write(texte) + fdgib.close() + +def macr_aspic_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,RAFF_MAIL,TUBULURE, + SOUDURE,CORPS,FISS_SOUDURE,IMPRESSION,INFO, + **args): + """ + Ecriture de la macro MACR_ASPIC_MAIL + """ + from Accas import _F + import types + import aster + ier=0 + +# On importe les definitions des commandes a utiliser dans la macro + EXEC_LOGICIEL =self.get_cmd('EXEC_LOGICIEL') + PRE_GIBI =self.get_cmd('PRE_GIBI') + LIRE_MAILLAGE =self.get_cmd('LIRE_MAILLAGE') + DEFI_GROUP =self.get_cmd('DEFI_GROUP') + MODI_MAILLAGE =self.get_cmd('MODI_MAILLAGE') + AFFE_MODELE =self.get_cmd('AFFE_MODELE') + CREA_MAILLAGE =self.get_cmd('CREA_MAILLAGE') + IMPR_RESU =self.get_cmd('IMPR_RESU') + +# La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + TYPELE = TYPE_ELEM + NIVMAG = EXEC_MAILLAGE['NIVE_GIBI'] +# +# --- raffinement maillage --- +# + TYPMAI = RAFF_MAIL + GROS = (TYPMAI=='GROS') + if GROS : NBAZIT = 40 + else : NBAZIT = 48 +# +# --- caracteristiques de la tubulure --- +# + EPT1 = TUBULURE['E_BASE' ] + DET1 = TUBULURE['DEXT_BASE'] + D1 = TUBULURE['L_BASE' ] + D2 = TUBULURE['L_CHANF' ] + EPT2 = TUBULURE['E_TUBU' ] + DET2 = TUBULURE['DEXT_TUBU'] + ZMAX = TUBULURE['Z_MAX' ] + TYPSOU= TUBULURE['TYPE' ] + DPENE = TUBULURE['L_PENETR' ] + if TYPSOU=='TYPE_2' and DPENE>0.0 : + self.cr.fatal(" les piquages penetrants sont autorises uniquement avec les soudures de type 1") + ier = ier+1 + return ier + if TYPSOU=='TYPE_2' : + ITYPSO = 2 + else : + ITYPSO = 1 +# +# --- caracteristiques de la soudure --- +# + H = SOUDURE['H_SOUD' ] + ALPHA = SOUDURE['ANGL_SOUD'] + JEU = SOUDURE['JEU_SOUD' ] +# +# --- caracteristiques du corps --- +# + EPC = CORPS ['E_CORP' ] + DEC = CORPS ['DEXT_CORP'] + XMAX = CORPS ['X_MAX' ] + EPSI = 1.E-03 + RMB = ( DET1 - EPT1 ) / 2.0 + VAL1 = 1.5 * sqrt( RMB**3 / EPT1 ) + VAL3 = 3.0 * sqrt( RMB * EPT1 ) + RMT = ( DET2 - EPT2 ) / 2.0 + VAL2 = 1.5 * sqrt( RMT**3 / EPT2 ) + VAL4 = 3.0 * sqrt( RMT * EPT2 ) + LZMAX = max ( VAL1 , VAL2, VAL3, VAL4 ) + ZMAXC = LZMAX + ( DEC/2.0 ) + D1 + D2 + LOK = ( abs(ZMAX-ZMAXC) <= EPSI * abs(ZMAXC) ) + if not LOK : + print ' erreur donnees' + print ' Z_MAX FOURNIE : ', ZMAX + print ' Z_MAX CALCULEE : ', ZMAXC + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + RMC = ( DEC - EPC ) / 2.0 + VAL1 = 1.5 * sqrt( RMC**3 / EPC ) + VAL2 = 3.0 * sqrt( RMC * EPC ) + LXMAX = max( VAL1 , VAL2 ) + XMAXC = LXMAX + ( DET1 / 2.0 ) + LOK = ( abs(XMAX-XMAXC) <= EPSI * abs(XMAXC) ) + if not LOK : + print ' erreur donnees' + print ' Z_MAX FOURNIE : ', ZMAX + print ' Z_MAX CALCULEE : ', ZMAXC + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + print ' MACR_ASPIC_MAIL / X_MAX CALCULEE : ',XMAX + print ' MACR_ASPIC_MAIL / Z_MAX CALCULEE : ',XMAXC +# +# --- caracteristiques de la fissure --- +# + SAIN = 0 + FISLON = 0 + FISCOU = 0 + THETA = 0.0 + TFISS = None + if FISS_SOUDURE==None : + SAIN = 1 + else : + if FISS_SOUDURE['TYPE']=='LONGUE' : FISLON = 1 + elif FISS_SOUDURE['TYPE']=='COURTE' : FISCOU = 1 + THETA = FISS_SOUDURE['AZIMUT' ] + EPS = FISS_SOUDURE['ANGL_OUVERTURE'] + AXIS = FISS_SOUDURE['AXIS' ] + POSI = FISS_SOUDURE['POSITION' ] + TFISS = FISS_SOUDURE['FISSURE' ] + A = FISS_SOUDURE['PROFONDEUR' ] + if FISS_SOUDURE['LONGUEUR' ]!=None : + C = FISS_SOUDURE['LONGUEUR' ] + N1 = 1 + else : N1 = 0 + if (TFISS=='DEB_INT') and (POSI=='INCLINE') and (DPENE>0.0) and (JEU>0.0) : + print ' erreur donnees' + print ' dans le cas de fissures' + print ' inclinees debouchant en peau interne avec' + print ' piquage penetrant le jeu doit etre nul' + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + ZETA = 0.5 + if TFISS not in ('DEB_INT','DEB_EXT') : + if FISS_SOUDURE['LIGA_INT']==None : + print ' erreur donnees' + print ' dans le cas de fissures internes' + print ' (NON_DEB) le ligament inferieur est obligatoire' + self.cr.fatal(" erreur donnees ") + ier = ier+1 + return ier + LIGA = FISS_SOUDURE['LIGA_INT'] + if POSI=='DROIT' : + if ITYPSO==1 : ZETA = (A+LIGA)/(EPC+H) + else : ZETA = (A+LIGA)/(EPT1+H) + else : + if ITYPSO==1 : ZETA = (A+LIGA)*cos(ALPHA*pi/180.0)/EPC + else : ZETA = (A+LIGA)*cos(ALPHA*pi/180.0)/EPT1 + if ZETA < 0.1 : + self.cr.fatal(" dans le cas de fissures internes (NON_DEB) le ligament est trop petit ") + ier = ier+1 + return ier + if ZETA > 0.9 : + self.cr.fatal(" dans le cas de fissures internes (NON_DEB) le ligament est trop grand ") + ier = ier+1 + return ier + if LIGA < 0.1*EPC : + self.cr.fatal(" dans le cas de fissures internes (NON_DEB) le ligament est trop petit ") + ier = ier+1 + return ier + if (LIGA + 2.0*A) > 0.9*EPC : + self.cr.fatal(" dans le cas de fissures internes (NON_DEB) le ligament est trop grand ") + ier = ier+1 + return ier + if N1==0 : + if FISCOU : + self.cr.fatal(" dans le cas de fissures courte il faut preciser la longueur ") + ier = ier+1 + return ier + if AXIS=='NON' : + self.cr.fatal(" dans le cas de la fissure longue il faut preciser la longueur ou axis=oui ") + ier = ier+1 + return ier + C = 0.0 + else : + if AXIS=='OUI' : print ' fissure axisymetrique : le mot clef ne doit pas etre renseigne' + C = 0.5 * C + LEQU=2.*(pi*(DEC-EPC)-DET1+2.*EPT1) +# +# LPIQ est une valeur qui depend theoriquement de la fissure. la valeur +# ci-dessous est approchee car elle ne sert qu'a calculer les facteurs d'etirement +# + LPIQ=pi*(DET1) + if AXIS=='OUI' : C=100.0*LPIQ + RAPL=LEQU/LPIQ + if FISCOU : + RAP=A/C + CAS1=RAP<0.3499 + CAS3=RAP>0.4999 + CAS2= not (CAS1 or CAS3) + if CAS1 : ALP=0.8 + if CAS2 : ALP=0.4 + if CAS3 : ALP=0.0 + BETA=1.0 + if GROS and not CAS1 : + NDT=1 + NSDT=2 + else : + NDT=2 + NSDT=4 +# + if FISLON : + if GROS : + NDT=2 + FETIRF=30.*RAPL + FETIRP=60.*RAPL + else : + NDT=3 + FETIRF=15.*RAPL + FETIRP=30.*RAPL +# + RC0 = FISS_SOUDURE['RAYON_TORE'] + if (FISCOU and RC0==None) : + if GROS : RC0=0.12 + else : RC0=0.10 + if CAS1 : RC0=0.08 + RC0=RC0*A + if (FISLON and RC0==None) : RC0=A/(NDT+1) +# + RC1 = FISS_SOUDURE['COEF_MULT_RC1'] + if (FISCOU and RC1==None) : + if GROS : RC1=1.2 + else : RC1=1.0 +# + RC2 = FISS_SOUDURE['COEF_MULT_RC2'] + if (FISCOU and RC2==None) : + if GROS : RC2=1.4 + else : RC2=1.2 +# + RC3 = FISS_SOUDURE['COEF_MULT_RC3'] + if (FISCOU and RC3==None) : + if GROS : + if CAS1 : RC3=2.5 + else : RC3=1.0 # valeur non utilisee + else : + if CAS3 : RC3=2.2 + else : RC3=2.0 +# + NT = FISS_SOUDURE['NB_TRANCHE'] + if (FISCOU and NT==None) : + if GROS : NT = 8 + else : NT = 16 + if CAS1 : NT = NT*2 + if (FISLON and NT==None) : NT=0 +# + NS = FISS_SOUDURE['NB_SECTEUR'] + if (FISCOU and NS==None) : + if GROS : NS = 2 + else : NS = 4 + if (FISLON and NS==None) : + if GROS : NS = 2 + else : NS = 4 +# + NC = FISS_SOUDURE['NB_COURONNE'] + if (FISCOU and NC==None) : + if GROS : NC = 3 + else : NC = 4 + if (FISLON and NC==None) : + if GROS : NC = 3 + else : NC = 4 +# + loc_gibi=aster.repout() + logiel = EXEC_MAILLAGE['LOGICIEL' ] + UNITD = EXEC_MAILLAGE['UNITE_DATG'] + UNITS = EXEC_MAILLAGE['UNITE_MGIB'] + if logiel=='GIBI98' : logiel = loc_gibi+'gibi98' + elif logiel=='GIBI2000': logiel = loc_gibi+'gibi2000' + else : + self.cr.fatal(" seuls gibi98 et gibi2000 sont appelableS") + ier = ier+1 + return ier +# +# --- ecriture sur le fichier .datg de la procedure --- +# +# Nom du fichier de commandes pour GIBI + nomFichierDATG = 'fort.'+str(UNITD) +# Nom du fichier de maillage GIBI + nomFichierGIBI = 'fort.'+str(UNITS) + loc_datg = aster.repdex() + if SAIN : write_file_dgib_ASPID0(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ZMAX, H, + ALPHA, JEU, EPC, DEC, XMAX, TYPMAI, THETA, TYPELE, + ITYPSO, DPENE, NIVMAG,loc_datg) + if FISLON : write_file_dgib_ASPID1(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ZMAX, H, + ALPHA, JEU, EPC, DEC, XMAX, TYPMAI,THETA, + A,C,EPS, RC0,NS,NC,NT,POSI, NDT,FETIRF,FETIRP, + TFISS,ZETA,ITYPSO,DPENE, NIVMAG,loc_datg) + if FISCOU : write_file_dgib_ASPID2(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ZMAX, + H, ALPHA, JEU, EPC, DEC, XMAX, TYPMAI, + THETA, A, C, EPS, RC0, RC1, RC2, RC3, + ALP,BETA, NS, NC, NT, POSI ,NDT,NSDT,TFISS, + ZETA,ITYPSO,DPENE, NIVMAG,loc_datg) +# + EXEC_LOGICIEL( LOGICIEL = logiel , + ARGUMENT = ( _F(NOM_PARA=nomFichierDATG), + _F(NOM_PARA=nomFichierGIBI), ), ) +# + PRE_GIBI() +# + __MAPROV=LIRE_MAILLAGE(INFO=INFO) +# + motscles={} + motscles['CREA_GROUP_MA']=[] + l_CREA_GROUP_NO=[] + if SAIN : + l_CREA_GROUP_NO.append('S_LAT1') + l_CREA_GROUP_NO.append('S_LAT2') + else : + l_CREA_GROUP_NO.append('S_LAT1_C') + l_CREA_GROUP_NO.append('S_LAT2_C') + l_CREA_GROUP_NO.append('S_LAT1_T') + l_CREA_GROUP_NO.append('S_LAT2_T') + if (TFISS=='NON_DEB') and (FISS_SOUDURE['TYPE']=='LONGUE') : + l_CREA_GROUP_NO.append('PFONDINF') + l_CREA_GROUP_NO.append('PFONDSUP') + else : + l_CREA_GROUP_NO.append('PFONDFIS') + if (TFISS=='NON_DEB') and (FISS_SOUDURE['TYPE']=='COURTE') : + motscles['CREA_GROUP_MA'].append(_F(GROUP_MA = 'FONDFISS', + NOM = 'MAIL_ORI', + POSITION = 'INIT' )) + if (TFISS[:4]=='DEB_') and (AXIS=='OUI') : + motscles['CREA_GROUP_MA'].append(_F(GROUP_MA = 'FONDFISS', + NOM = 'MAIL_ORI', + POSITION = 'INIT' )) + if (TFISS=='NON_DEB') and (FISS_SOUDURE['TYPE']=='LONGUE') : + motscles['CREA_GROUP_MA'].append(_F(GROUP_MA = 'FOND_SUP', + NOM = 'MA_ORI_S', + POSITION = 'INIT' )) + motscles['CREA_GROUP_MA'].append(_F(GROUP_MA = 'FOND_INF', + NOM = 'MA_ORI_I', + POSITION = 'INIT' )) + l_CREA_GROUP_NO.append('S_FOND1') + l_CREA_GROUP_NO.append('S_FOND2') + l_CREA_GROUP_NO.append('EQUERRE') + motscles['CREA_GROUP_NO']=_F(GROUP_MA=l_CREA_GROUP_NO) +# + __MAPROV=DEFI_GROUP(reuse =__MAPROV, + MAILLAGE=__MAPROV, + **motscles ) +# + if not SAIN : + motscles={} + motscles['CREA_GROUP_NO']=[] + if not (TFISS=='NON_DEB') : + motscles['CREA_GROUP_NO'].append(_F(GROUP_MA = 'FONDFISS',)) + if (TFISS=='NON_DEB') and (FISS_SOUDURE['TYPE']=='LONGUE') : + motscles['CREA_GROUP_NO'].append(_F(GROUP_MA = ('FOND_SUP','FOND_INF',),)) + __MAPROV=DEFI_GROUP(reuse =__MAPROV, + MAILLAGE=__MAPROV, + **motscles ) +# + __MAPROV=MODI_MAILLAGE(reuse =__MAPROV, + MAILLAGE=__MAPROV, + EQUE_PIQUA=_F( GROUP_NO = 'EQUERRE' , + E_BASE = EPT1 , + DEXT_BASE = DET1 , + L_BASE = D1 , + L_CHANF = D2 , + TYPE = TYPSOU, + H_SOUD = H , + ANGL_SOUD = ALPHA , + JEU_SOUD = JEU , + E_CORP = EPC , + DEXT_CORP = DEC , + AZIMUT = THETA , + RAFF_MAIL = TYPMAI, + X_MAX = XMAX , ) + ) +# + __MODELE=AFFE_MODELE( MAILLAGE=__MAPROV, + AFFE=_F( GROUP_MA = ('EQUERRE','PEAUINT','EXCORP1','EXCORP2','EXTUBU'), + PHENOMENE = 'MECANIQUE' , + MODELISATION = '3D' , ) + ) +# + motscles={} + if TFISS=='DEB_INT' : + motscles['ORIE_PEAU_3D']=_F(GROUP_MA=('PEAUINT','EXCORP1','EXCORP2','EXTUBU','LEVRTUBU','LEVRCORP'),) + else : + motscles['ORIE_PEAU_3D']=_F(GROUP_MA=('PEAUINT','EXCORP1','EXCORP2','EXTUBU',),) + __MAPROV=MODI_MAILLAGE(reuse =__MAPROV, + MAILLAGE=__MAPROV, + MODELE =__MODELE, + **motscles + ) +# + if SAIN : + __MAPROV=DEFI_GROUP(reuse = __MAPROV, + MAILLAGE = __MAPROV, + CREA_GROUP_NO = _F(GROUP_MA=('NIDXT','NEDXT','NIIXT','NEIXT')) ) +# + for i in range(1,NBAZIT+1): + prec = EPC / 5.0 + __MAPROV=DEFI_GROUP(reuse = __MAPROV, + MAILLAGE = __MAPROV, + CREA_GROUP_NO = ( _F( NOM = 'NID'+str(i) , + GROUP_NO = 'NIDXT' , + NUME_INIT = i , + NUME_FIN = i ,), + _F( NOM = 'NED'+str(i) , + GROUP_NO = 'NEDXT' , + NUME_INIT = i , + NUME_FIN = i ,), + _F( NOM = 'NII'+str(i) , + GROUP_NO = 'NIIXT' , + NUME_INIT = i , + NUME_FIN = i ,), + _F( NOM = 'NEI'+str(i) , + GROUP_NO = 'NEIXT' , + NUME_INIT = i , + NUME_FIN = i ,), + _F( NOM = 'LDN'+str(i) , + GROUP_MA = 'LD' +str(i) ,), + _F( NOM = 'LD' +str(i) , + GROUP_NO = 'LDN'+str(i) , + OPTION = 'SEGM_DROI_ORDO', + PRECISION = prec , + CRITERE = 'ABSOLU' , + GROUP_NO_ORIG = 'NID'+str(i), + GROUP_NO_EXTR = 'NED'+str(i),), + _F( NOM = 'LIN'+str(i) , + GROUP_MA = 'LI' +str(i) ,), + _F( NOM = 'LI' +str(i) , + GROUP_NO = 'LIN'+str(i) , + OPTION = 'SEGM_DROI_ORDO', + PRECISION = prec , + CRITERE = 'ABSOLU' , + GROUP_NO_ORIG = 'NII'+str(i), + GROUP_NO_EXTR = 'NEI'+str(i),),)) +# +# +# --- commande CREA_MAILLAGE --- +# + self.DeclareOut('nomres',self.sd) + nomres=CREA_MAILLAGE( MAILLAGE=__MAPROV, + CREA_POI1 = ( _F( NOM_GROUP_MA = 'P1_CORP ' , + GROUP_NO = 'P1_CORP ' , ), + _F( NOM_GROUP_MA = 'P2_CORP ' , + GROUP_NO = 'P2_CORP ' , ), + _F( NOM_GROUP_MA = 'P_TUBU ' , + GROUP_NO = 'P_TUBU ' , ),) + ) +# + if IMPRESSION!=None: + for impr in IMPRESSION : +# + motscles={} + if impr['FORMAT']=='IDEAS' : motscles['VERSION'] =impr['VERSION'] + if impr['FORMAT']=='CASTEM' : motscles['NIVE_GIBI']=impr['NIVE_GIBI'] + if impr['UNITE']!=None : motscles['UNITE'] =impr['UNITE'] + impr_resu = _F( MAILLAGE = nomres,) +# + IMPR_RESU( RESU = impr_resu, + FORMAT = impr['FORMAT'],**motscles ) +# +# +# --- Verification profondeur fissure (courte debouchante) --- +# + if FISCOU and not (TFISS=='NON_DEB') : + nomres=DEFI_GROUP( reuse=nomres, + MAILLAGE=nomres, + CREA_GROUP_NO=(_F( GROUP_MA = 'LEVRTUBU',), + _F( NOM = 'FONDORDO', + GROUP_MA = 'FONDFISS', + OPTION = 'NOEUD_ORDO',),),); + + nommail=nomres.nom + coord =aster.getvectjev(nommail.ljust(8)+'.COORDO .VALE') + collgrno=aster.getcolljev(nommail.ljust(8)+'.GROUPENO') + + grfo=collgrno['FONDORDO'] + Nbno = len(grfo) + listx = [None]*Nbno + listy = [None]*Nbno + listz = [None]*Nbno + k = 0 + for node in grfo: + listx[k] = coord[3*(node-1)] + listy[k] = coord[3*(node-1)+1] + listz[k] = coord[3*(node-1)+2] + k = k+1 + + XAB = listx[Nbno-1] - listx[0] + YAB = listy[Nbno-1] - listy[0] + ZAB = listz[Nbno-1] - listz[0] + AB = sqrt(XAB*XAB + YAB*YAB +ZAB*ZAB) + d = 0 + for k in range(0,Nbno) : + XAM = listx[k] - listx[0] + YAM = listy[k] - listy[0] + ZAM = listz[k] - listz[0] + Xvect = YAB*ZAM-ZAB*YAM + Yvect = ZAB*XAM-XAB*ZAM + Zvect = XAB*YAM-YAB*XAM + AM = sqrt(Xvect*Xvect+ Yvect*Yvect +Zvect*Zvect) + dk = AM/AB + if dk > d : + XC = listx[k] + YC = listy[k] + ZC = listz[k] + d = max(dk, d) + + grlev=collgrno['LEVRTUBU'] + Nbnol = len(grlev) + listxl = [None]*Nbnol + listyl = [None]*Nbnol + listzl = [None]*Nbnol + k = 0 + for node in grlev: + listxl[k] = coord[3*(node-1)] + listyl[k] = coord[3*(node-1)+1] + listzl[k] = coord[3*(node-1)+2] + k = k+1 + dist = 0 + for k in range(0,Nbnol) : + XAM = listxl[k] - listx[0] + YAM = listyl[k] - listy[0] + ZAM = listzl[k] - listz[0] + Scal = (XAB*XAM + YAB*YAM + ZAB*ZAM)/(AB*AB) + if (abs(Scal) < 0.51) and (abs(Scal) > 0.49) : + Xk = listxl[k] -XC + Yk = listyl[k] -YC + Zk = listzl[k] -ZC + dk = sqrt(Xk**2+ Yk**2 +Zk**2) + dist = max(dk, dist) + + print '\n PROFONDEUR DE LA FISSURE DANS LE MAILLAGE : ', dist + print ' \n' +# + return ier + diff --git a/Aster/Cata/cataSTA7/Macro/macr_cabri_calc_ops.py b/Aster/Cata/cataSTA7/Macro/macr_cabri_calc_ops.py new file mode 100644 index 00000000..a829425f --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/macr_cabri_calc_ops.py @@ -0,0 +1,542 @@ +#@ MODIF macr_cabri_calc_ops Macro DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + + + + +def macr_cabri_calc_ops(self,MAILLAGE,MODELE_MECA,MODELE_THER,CHAR_THER, + CHAR_MECA,RESU_THER, + AFFE_MATERIAU,DEFI_CHAR_THER,DEFI_CHAR_MECA,RELATION,SOLVEUR,CONVERGENCE,NEWTON, + INCREMENT,CHAM_MATER,**args): + """ + Ecriture de la macro MACR_CABRI_CALC + """ + + ################################################################# + ########## PREPARATION MACRO + ################################################################# + + from Accas import _F + + ier =0 + + # On met certains mots-clefs dans des variables locales pour les proteger + affemateriau = AFFE_MATERIAU + mail = MAILLAGE + + + # On importe les definitions des commandes a utiliser dans la macro + # Le nom de la variable doit etre obligatoirement le nom de la commande + DEFI_GROUP = self.get_cmd('DEFI_GROUP') + AFFE_MATERIAU = self.get_cmd('AFFE_MATERIAU') + AFFE_MODELE = self.get_cmd('AFFE_MODELE') + MODI_MAILLAGE = self.get_cmd('MODI_MAILLAGE') + AFFE_CHAR_THER_F = self.get_cmd('AFFE_CHAR_THER_F') + AFFE_CHAR_THER = self.get_cmd('AFFE_CHAR_THER') + AFFE_CHAR_MECA_F = self.get_cmd('AFFE_CHAR_MECA_F') + AFFE_CHAR_MECA = self.get_cmd('AFFE_CHAR_MECA') + DEFI_FONCTION = self.get_cmd('DEFI_FONCTION') + DEFI_LIST_REEL = self.get_cmd('DEFI_LIST_REEL') + THER_LINEAIRE = self.get_cmd('THER_LINEAIRE') + STAT_NON_LINE = self.get_cmd('STAT_NON_LINE') + + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + # Le concept sortant (de type evol_noli) est nomme 'resumeca' dans + # le contexte de la macro + self.DeclareOut('resumeca',self.sd) + self.DeclareOut('mail',MAILLAGE) + + ################################################################# + ########## PREPARATION DES MODELES + ################################################################# + + # Definition des groupes + mail=DEFI_GROUP(reuse =mail,MAILLAGE=mail, + CREA_GROUP_NO=( + _F(GROUP_MA='M_GOU',NOM='N_M_GOU',), + _F(GROUP_MA='M_JOI',NOM='N_M_JOI',), + _F(GROUP_MA='SCBJ',NOM='N_SCBJ',), + _F(GROUP_MA='SCJB',NOM='N_SCJB',), + _F(GROUP_MA='M_L_AA',NOM='N_M_L_AA',), + _F(GROUP_MA='SCEG',NOM='N_SCEG',), + _F(GROUP_MA='SCGE',NOM='N_SCGE',),),) + + # Creation du modele thermique + if MODELE_THER != None: + self.DeclareOut('modther',MODELE_THER) + + modther=AFFE_MODELE(MAILLAGE=mail, + AFFE=_F(GROUP_MA=('VTOT','M_GOU','M_TUB','M_JOI','SCBJ','SCJB', + 'M_L_AA','M_INT','M_L_SA','M_EXT','SCEG','SCGE',), + PHENOMENE='THERMIQUE', + MODELISATION='3D_DIAG',), + ); + + # Creation du modele mecanique + if MODELE_MECA != None: + self.DeclareOut('modmeca',MODELE_MECA) + + modmeca = AFFE_MODELE(MAILLAGE=mail, + AFFE=_F(GROUP_MA=('VTOT','M_GOU','M_TUB','M_JOI','SCBJ','SCJB', + 'M_L_AA','M_L_SA','SCEG','SCGE','M_INT','M_EXT',), + PHENOMENE='MECANIQUE', + MODELISATION='3D',), + ); + + # Orientation des mailles + mail=MODI_MAILLAGE(reuse =mail, + MAILLAGE=mail, + ORIE_PEAU_3D=(_F(GROUP_MA=('M_INT','M_TUB',),), + _F(GROUP_MA=('M_L_AA','M_JOI','M_L_SA',),),), + MODELE=modmeca,); + + + + # Affectation des materiaux + if CHAM_MATER != None: + self.DeclareOut('_cham',CHAM_MATER) + motscles={} + motscles['AFFE']=[] + for mat in affemateriau: + if mat['TOUT'] == None: + # Creation de mots-cles pour les AFFE_CHAR_MECA + motscles['AFFE'].append(_F(GROUP_MA=mat['GROUP_MA'], + MATER = mat['MATER'], + TEMP_REF = mat['TEMP_REF'],) ) + else: + # Creation de mots-cles pour les AFFE_CHAR_MECA + motscles['AFFE'].append(_F(TOUT='OUI', + MATER = mat['MATER'], + TEMP_REF = mat['TEMP_REF'],) ) + + _cham = AFFE_MATERIAU(MAILLAGE=mail, + MODELE=modther, + AFFE=motscles['AFFE'], + ) + + ################################################################# + ########## CONDITIONS AUX LIMITES THERMIQUES + ################################################################# + # Recuperation des parametres thermiques + + if DEFI_CHAR_THER != None: + temp_ini = DEFI_CHAR_THER['TEMP_INIT'] + if DEFI_CHAR_THER['COEF_H_FLUI']!=None: + coef_int = DEFI_CHAR_THER['COEF_H_FLUI'] + else: + coef_int = DEFI_FONCTION(NOM_PARA='INST', + VALE=(0.0,0.016, + 7200.0,0.016,), + PROL_DROITE='CONSTANT', + PROL_GAUCHE='CONSTANT',); + if DEFI_CHAR_THER['TEMP_EXT_FLUI']!=None: + temp_int = DEFI_CHAR_THER['TEMP_EXT_FLUI'] + else: + temp_int = DEFI_FONCTION(NOM_PARA='INST', + VALE=(0.0,temp_ini,1.0,temp_ini,11.0,60.0, + 600.0,60.0,610.0,280.0,1800.0,280.0,7200.0,280.0,), + PROL_DROITE='CONSTANT', + PROL_GAUCHE='CONSTANT',); + if DEFI_CHAR_THER['COEF_H_AIR']!=None: + coef_ext = DEFI_CHAR_THER['COEF_H_AIR'] + else: + coef_ext = DEFI_FONCTION(NOM_PARA='INST', + VALE=(0.0,1e-05,7200.0,1e-05,), + PROL_DROITE='CONSTANT', + PROL_GAUCHE='CONSTANT',); + + if DEFI_CHAR_THER['TEMP_EXT_AIR']!=None: + temp_ext = DEFI_CHAR_THER['TEMP_EXT_AIR'] + else: + temp_ext = DEFI_FONCTION(NOM_PARA='INST', + VALE=(0.0,20.0,7200.0,20.0,), + PROL_DROITE='CONSTANT', + PROL_GAUCHE='CONSTANT',); + if DEFI_CHAR_THER['LIST_INST']!=None: + transi1 = DEFI_CHAR_THER['LIST_INST'] + else: + transi1 = DEFI_LIST_REEL(DEBUT=0.0, + INTERVALLE=(_F(JUSQU_A=1.0, + NOMBRE=1,), + _F(JUSQU_A=11.0, + NOMBRE=10,), + _F(JUSQU_A=600.0, + NOMBRE=10,), + _F(JUSQU_A=610.0, + NOMBRE=30,), + _F(JUSQU_A=1800.0, + NOMBRE=30,), + _F(JUSQU_A=7200.0, + NOMBRE=10,),),); + else: + temp_ini = DEFI_CHAR_THER['TEMP_INIT'] + coef_int = DEFI_FONCTION(NOM_PARA='INST', + VALE=(0.0,0.016, + 7200.0,0.016,), + PROL_DROITE='CONSTANT', + PROL_GAUCHE='CONSTANT',); + temp_int = DEFI_FONCTION(NOM_PARA='INST', + VALE=(0.0,temp_ini,1.0,temp_ini,11.0,60.0, + 600.0,60.0,610.0,280.0,1800.0,280.0,7200.0,280.0,), + PROL_DROITE='CONSTANT', + PROL_GAUCHE='CONSTANT',); + coef_ext = DEFI_FONCTION(NOM_PARA='INST', + VALE=(0.0,1e-05,7200.0,1e-05,), + PROL_DROITE='CONSTANT', + PROL_GAUCHE='CONSTANT',); + temp_ext = DEFI_FONCTION(NOM_PARA='INST', + VALE=(0.0,20.0,7200.0,20.0,), + PROL_DROITE='CONSTANT', + PROL_GAUCHE='CONSTANT',); + transi1 = DEFI_LIST_REEL(DEBUT=0.0, + INTERVALLE=(_F(JUSQU_A=1.0, + NOMBRE=1,), + _F(JUSQU_A=11.0, + NOMBRE=10,), + _F(JUSQU_A=600.0, + NOMBRE=10,), + _F(JUSQU_A=610.0, + NOMBRE=30,), + _F(JUSQU_A=1800.0, + NOMBRE=30,), + _F(JUSQU_A=7200.0, + NOMBRE=10,),),); + # Que sauver ? + if CHAR_THER != None: + for m in CHAR_THER: + if m['TYPE']=="BRIDE_FLUIDE": + self.DeclareOut('cl_th1',m['CHARGE']) + if m['TYPE']=="BRIDE_AIR": + self.DeclareOut('cl_th2',m['CHARGE']) + if m['TYPE']=="ECROU_GOUJON": + self.DeclareOut('cl_th3',m['CHARGE']) + if m['TYPE']=="BRIDE_JOINT": + self.DeclareOut('cl_th4',m['CHARGE']) + + # Echanges thermiques internes entre le fluide et la bride + cl_th1=AFFE_CHAR_THER_F(MODELE=modther, + ECHANGE=_F(GROUP_MA = 'M_INT', + COEF_H = coef_int, + TEMP_EXT = temp_int,),); + + # Echanges thermiques externes entre bride et air ambiant + cl_th2=AFFE_CHAR_THER_F(MODELE=modther, + ECHANGE=_F(GROUP_MA='M_EXT', + COEF_H=coef_ext, + TEMP_EXT=temp_ext,),); + + # Echanges thermiques entre ecrou et goujon + cl_th3=AFFE_CHAR_THER(MODELE=modther, + LIAISON_GROUP=_F(GROUP_NO_1='N_SCEG', + GROUP_NO_2='N_SCGE', + DDL_1='TEMP', + COEF_MULT_1=1.0, + DDL_2='TEMP', + COEF_MULT_2=-1.0, + COEF_IMPO=0.0,),); + + # Echanges thermiques entre bride et joint + cl_th4=AFFE_CHAR_THER(MODELE=modther, + LIAISON_GROUP=_F(GROUP_NO_1='N_SCBJ', + GROUP_NO_2='N_SCJB', + DDL_1='TEMP', + COEF_MULT_1=1.0, + DDL_2='TEMP', + COEF_MULT_2=-1.0, + COEF_IMPO=0.0,),); + + + + ################################################################# + ########## CALCUL THERMIQUE + ################################################################# + if RESU_THER != None: + self.DeclareOut('resuther',RESU_THER) + + resuther=THER_LINEAIRE(MODELE=modther, + CHAM_MATER=_cham, + EXCIT=(_F(CHARGE=cl_th1,), + _F(CHARGE=cl_th2,), + _F(CHARGE=cl_th3,), + _F(CHARGE=cl_th4,),), + INCREMENT=_F(LIST_INST=transi1,), + TEMP_INIT=_F(VALE=temp_ini,), + TITRE='CABRI THERMIQUE &DATE &HEURE',); + + ################################################################# + ########## CONDITIONS AUX LIMITES MECANIQUES + ################################################################# + # Recuperation des parametres mecaniques + if DEFI_CHAR_MECA != None: + if DEFI_CHAR_MECA['PRETENS']!=None: + f_pret = DEFI_CHAR_MECA['PRETENS'] + else: + f_pret=DEFI_FONCTION(NOM_PARA='INST', + VALE=(0.0,0.0,1.0,-0.02,), + PROL_DROITE='CONSTANT', + PROL_GAUCHE='CONSTANT',); + if DEFI_CHAR_MECA['PRES_REP']!=None: + pre_int = DEFI_CHAR_MECA['PRES_REP'] + else: + pre_int = DEFI_FONCTION(NOM_PARA='INST', + VALE=(0.0,0.0,1.0,0.0,11.0,16.0,), + PROL_DROITE='CONSTANT', + PROL_GAUCHE='CONSTANT',); + if DEFI_CHAR_MECA['EFFE_FOND']!=None: + eff_fond = DEFI_CHAR_MECA['EFFE_FOND'] + else: + eff_fond=DEFI_FONCTION(NOM_PARA='INST', + VALE=(0.0,-0.0,1.0,-0.0,11.0,-20.607059,), + PROL_DROITE='CONSTANT', + PROL_GAUCHE='CONSTANT',); + else: + f_pret=DEFI_FONCTION(NOM_PARA='INST', + VALE=(0.0,0.0,1.0,-0.02,), + PROL_DROITE='CONSTANT', + PROL_GAUCHE='CONSTANT',); + + pre_int = DEFI_FONCTION(NOM_PARA='INST', + VALE=(0.0,0.0,1.0,0.0,11.0,16.0,), + PROL_DROITE='CONSTANT', + PROL_GAUCHE='CONSTANT',); + + eff_fond=DEFI_FONCTION(NOM_PARA='INST', + VALE=(0.0,-0.0,1.0,-0.0,11.0,-20.607059,), + PROL_DROITE='CONSTANT', + PROL_GAUCHE='CONSTANT',); + # Que sauver ? + if CHAR_MECA != None: + for m in CHAR_MECA: + if m['TYPE']=="BLOC_BAS_GOUJ": + self.DeclareOut('cl_me1',m['CHARGE']) + if m['TYPE']=="BLOC_BAS_JOINT": + self.DeclareOut('cl_me2',m['CHARGE']) + if m['TYPE']=="BLOC_LAT_ALES": + self.DeclareOut('cl_me3',m['CHARGE']) + if m['TYPE']=="BLOC_LAT_NALES": + self.DeclareOut('cl_me4',m['CHARGE']) + if m['TYPE']=="PLAN_TUBE": + self.DeclareOut('cl_me5',m['CHARGE']) + if m['TYPE']=="PRES_FLU": + self.DeclareOut('cl_me6',m['CHARGE']) + if m['TYPE']=="EFFET_FOND": + self.DeclareOut('cl_me7',m['CHARGE']) + if m['TYPE']=="CONT_JOINT": + self.DeclareOut('cl_me8',m['CHARGE']) + if m['TYPE']=="DEFO_THER": + self.DeclareOut('cl_me9',m['CHARGE']) + if m['TYPE']=="SERR_ECROU_1": + self.DeclareOut('cl_me10',m['CHARGE']) + if m['TYPE']=="SERR_ECROU_2": + self.DeclareOut('cl_me11',m['CHARGE']) + + + # Blocage bas du goujon + cl_me1=AFFE_CHAR_MECA(MODELE=modmeca, + DDL_IMPO=_F(GROUP_NO='N_M_GOU', + DZ=0.0,), + INFO=2,); + # Blocage bas du joint + cl_me2=AFFE_CHAR_MECA(MODELE=modmeca, + DDL_IMPO=_F(GROUP_NO='N_M_JOI', + DZ=0.0,), + INFO=2,); + + # Blocage lateral, face laterale avec alesage + cl_me3=AFFE_CHAR_MECA(MODELE=modmeca, + DDL_IMPO=_F(GROUP_NO='N_M_L_AA', + DY=0.0,), + INFO=2,); + + # Face laterale sans alesage + cl_me4=AFFE_CHAR_MECA(MODELE=modmeca, + FACE_IMPO=_F(GROUP_MA='M_L_SA', + DNOR=0.0,), + INFO=2,); + + # Condition de planeite de la face de coupe du tube + cl_me5=AFFE_CHAR_MECA(MODELE=modmeca, + LIAISON_UNIF=_F(GROUP_MA='M_TUB', + DDL='DZ',), + INFO=2,); + # Pression due au fluide + cl_me6=AFFE_CHAR_MECA_F(MODELE=modmeca, + PRES_REP=_F(GROUP_MA='M_INT', + PRES=pre_int,), + INFO=2,); + + # Effet de fond + cl_me7=AFFE_CHAR_MECA_F(MODELE=modmeca, + PRES_REP=_F(GROUP_MA='M_TUB', + PRES=eff_fond,), + INFO=2,); + + # Contact zone de joint + cl_me8=AFFE_CHAR_MECA(MODELE=modmeca, + CONTACT=_F(GROUP_MA_MAIT='SCBJ', + GROUP_MA_ESCL='SCJB',), + INFO=2,); + # Deformation thermique + cl_me9=AFFE_CHAR_MECA( MODELE=modmeca, + TEMP_CALCULEE=resuther, + INFO=2,); + + # Serrage ecrou/goujon (pre-tensionnement) + cl_me10=AFFE_CHAR_MECA_F(MODELE=modmeca, + LIAISON_GROUP=_F(GROUP_NO_1='N_SCEG', + GROUP_NO_2='N_SCGE', + DDL_1='DZ', + COEF_MULT_1=1.0, + DDL_2='DZ', + COEF_MULT_2=-1.0, + COEF_IMPO=f_pret,), + INFO=2,); + + cl_me11=AFFE_CHAR_MECA(MODELE=modmeca, + LIAISON_GROUP=_F(GROUP_NO_1='N_SCEG', + GROUP_NO_2='N_SCGE', + DDL_1='DX', + COEF_MULT_1=1.0, + DDL_2='DX', + COEF_MULT_2=-1.0, + COEF_IMPO=0.0,), + INFO=2,); + + + ################################################################# + ########## CALCUL MECANIQUE + ################################################################# + # Options de convergence + solveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste) + + # Elimination des valeurs "None" + for i in solveur.keys(): + if solveur[i]==None : del solveur[i] + + + transi2 = DEFI_LIST_REEL(DEBUT=0.0, + INTERVALLE=(_F(JUSQU_A=1.0, + NOMBRE=2,), + _F(JUSQU_A=11.0, + NOMBRE=20,), + _F(JUSQU_A=600.0, + NOMBRE=20,), + _F(JUSQU_A=610.0, + NOMBRE=20,), + _F(JUSQU_A=1800.0, + NOMBRE=20,), + _F(JUSQU_A=7200.0, + NOMBRE=20,),),); + + # Options d'incrementation + if INCREMENT != None: + if INCREMENT['LIST_INST'] != None: + listinst = INCREMENT['LIST_INST'] + else: + listinst = transi2 + + increment=INCREMENT[0].cree_dict_valeurs(INCREMENT[0].mc_liste) + + # Elimination des valeurs "None" + for i in increment.keys(): + if increment[i]==None : del increment[i] + + increment['LIST_INST'] = listinst + + else: + listinst = transi2 + increment =_F( + LIST_INST = listinst, + ), + + # Options de Newton + newton=NEWTON[0].cree_dict_valeurs(NEWTON[0].mc_liste) + # Elimination des valeurs "None" + for i in newton.keys(): + if newton[i]==None : del newton[i] + + # Options de convergence + convergence=CONVERGENCE[0].cree_dict_valeurs(CONVERGENCE[0].mc_liste) + # Elimination des valeurs "None" + for i in convergence.keys(): + if convergence[i]==None : del convergence[i] + + # Options de comportement + # Type incremental (=1) ou elastique (=0) + comp_incr = 0 + if RELATION: + relation=RELATION + if relation == 'VMIS_ISOT_TRAC': + comp_incr = 1 + else: + comp_incr = 0 + else: + relation = 'ELAS' + comp_incr = 0 + + + # Parametres du calcul + if comp_incr == 1: + resumeca=STAT_NON_LINE(MODELE=modmeca, + CHAM_MATER=_cham, + EXCIT=(_F(CHARGE=cl_me1,), + _F(CHARGE=cl_me2,), + _F(CHARGE=cl_me3,), + _F(CHARGE=cl_me4,), + _F(CHARGE=cl_me5,), + _F(CHARGE=cl_me6,), + _F(CHARGE=cl_me7,), + _F(CHARGE=cl_me8,), + _F(CHARGE=cl_me9,), + _F(CHARGE=cl_me10,), + _F(CHARGE=cl_me11,), + ), + SOLVEUR = solveur, + COMP_INCR =_F(RELATION=relation,), + NEWTON = newton, + INCREMENT = increment, + CONVERGENCE = convergence, + TITRE='CABRI THERMOM\xe9CANIQUE &DATE &HEURE',); + else: + resumeca=STAT_NON_LINE(MODELE=modmeca, + CHAM_MATER=_cham, + EXCIT=(_F(CHARGE=cl_me1,), + _F(CHARGE=cl_me2,), + _F(CHARGE=cl_me3,), + _F(CHARGE=cl_me4,), + _F(CHARGE=cl_me5,), + _F(CHARGE=cl_me6,), + _F(CHARGE=cl_me7,), + _F(CHARGE=cl_me8,), + _F(CHARGE=cl_me9,), + _F(CHARGE=cl_me10,), + _F(CHARGE=cl_me11,), + ), + SOLVEUR = solveur, + COMP_ELAS =_F(RELATION=relation,), + NEWTON = newton, + INCREMENT = increment, + CONVERGENCE = convergence, + TITRE='CABRI THERMOM\xe9CANIQUE &DATE &HEURE',); + + return ier + diff --git a/Aster/Cata/cataSTA7/Macro/macr_cabri_mail_dat.py b/Aster/Cata/cataSTA7/Macro/macr_cabri_mail_dat.py new file mode 100644 index 00000000..7d673257 --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/macr_cabri_mail_dat.py @@ -0,0 +1,630 @@ +#@ MODIF macr_cabri_mail_dat Macro DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + + + +# Données pour les brides standards + + + +# Pour ajouter une bride x: +# Définir un dico_bride_x comme ci-dessous puis ajoutez-le à dico_bride_std + +# dictionnaire pour la description des variables +dico_var_geo = {'nbgouj':'Nombre de goujons de la jonction boulonnée (GOUJ_N_GOUJON)', + 'dint':'Diamètre intérieur de la bride (BRID_D_INT)', + 'dex1':'Diamétre extérieur de la conduite (TUBU_D_EXT)', + 'dex2':'Position (diamètre) du congé de la bride (BRID_D_CONGE)', + 'dex3':'Diamètre de l''épaulement de la bride au niveau de l''interface d''étanchéité (BRID_D_EPAUL)', + 'dtrou':'Position des alésages de la bride permettant l''introduction des goujons (BRID_P_ALESAG)', + 'dext':'Diamètre extérieur de la bride (BRID_D_EXT)', + 'dt':'Diamètre des alésages de la bride permettant l''introduction des goujons (BRID_D_ALESAG)', + 'drd':'Diamètre de la rondelle (GOUJ_D_RONDEL)', + 'dg':'Diamètre des goujons de la jonction boulonnée (GOUJ_D_GOUJON)', + 'dec':'Diamètre de l''écrou (GOUJ_D_ECROU)', + 'rcong':'Rayon du congé de la bride (BRID_R_CONGE)', + 'he':'Epaisseur de la rondelle (GOUJ_E_RONDEL)', + 'e':'Epaisseur de l''écrou (GOUJ_E_ECROU)', + 'hc1':'Hauteur de la bride (BRID_H)', + 'hcg1':'Hauteur de conduite (TUBU_H)', + 'hb':'Hauteur de l''épaulement de la bride au niveau de l''interface d''étanchéité (BRID_H_EPAUL)', + 'htrou':'Hauteur des alésages de la bride permettant l''introduction des goujons (BRID_H_ALESAG)', + 'pf':'Profondeur (épaisseur) des filets des goujons (GOUJ_E_FILET)', + 'j':'Epaisseur du joint au niveau de l''interface d''étanchéité (ETAN_E_JOINT)'} + +dico_var_msh = {'nrad':'Nombre d''éléments radiaux (NBR_RAD)', + 'ncir':'Nombre d''éléments circonférentiels (NBR_CIR)', + 'nver':'Nombre d''éléments verticaux (NBR_VER)', + 'nsect':'Nombre d''éléments de l''alésage (NBR_ALE)', + 'temps':'Temps d''analyse'} + +# dictionnaires des brides standards +dico_bride_A = {'nbgouj': 4, + 'dint': 15.76, + 'dex1': 21.3, + 'dex2': 38., + 'dex3': 48., + 'dtrou': 67., + 'dext': 95., + 'dt': 14., + 'drd': 25., + 'dg': 12., + 'dec': 18., + 'rcong': 3., + 'he': 12., + 'e': 2.5, + 'hc1': 46.5, + 'hcg1': 20, + 'hb': 1.5, + 'htrou': 20., + 'pf': 1.5, + 'j': 2} + +dico_bride_AA = {'nbgouj': 32, + 'dint': 336.5, + 'dex1': 355.6, + 'dex2': 395., + 'dex3': 415., + 'dtrou': 460., + 'dext': 515., + 'dt': 22., + 'drd': 36., + 'dg': 20., + 'dec': 30., + 'rcong': 5., + 'he': 20., + 'e': 3., + 'hc1': 115., + 'hcg1': 115./2., + 'hb': 3., + 'htrou': 47., + 'pf': 2.2, + 'j': 2} + +dico_bride_B = {'nbgouj': 4, + 'dint': 26.64, + 'dex1': 33.4, + 'dex2': 53., + 'dex3': 63., + 'dtrou': 88., + 'dext': 123., + 'dt': 16., + 'drd': 27., + 'dg': 14., + 'dec': 21., + 'rcong': 4., + 'he': 14., + 'e': 2.5, + 'hc1': 59., + 'hcg1': 59./2., + 'hb': 1.5, + 'htrou': 27.5, + 'pf': 1.7, + 'j': 2} +dico_bride_B1 = {'nbgouj': 4, + 'dint': 24.3, + 'dex1': 33.4, + 'dex2': 53., + 'dex3': 63., + 'dtrou': 88., + 'dext': 123., + 'dt': 16., + 'drd': 27., + 'dg': 14., + 'dec': 21., + 'rcong': 4., + 'he': 14., + 'e': 2.5, + 'hc1': 59., + 'hcg1': 59./2., + 'hb': 1.5, + 'htrou': 27.5, + 'pf': 1.7, + 'j': 2} +dico_bride_C = {'nbgouj': 8, + 'dint': 52.48, + 'dex1': 60.3, + 'dex2': 84., + 'dex3': 100., + 'dtrou': 127., + 'dext': 165., + 'dt': 18., + 'drd': 30, + 'dg': 16., + 'dec': 24., + 'rcong': 4., + 'he': 16., + 'e': 3, + 'hc1': 70., + 'hcg1': 70./2., + 'hb': 1.5, + 'htrou': 21., + 'pf': 1.7, + 'j': 2} +dico_bride_D = {'nbgouj': 8, + 'dint': 42.9, + 'dex1': 60.3, + 'dex2': 84., + 'dex3': 100., + 'dtrou': 127., + 'dext': 165., + 'dt': 18., + 'drd': 30, + 'dg': 16., + 'dec': 24., + 'rcong': 5., + 'he': 16., + 'e': 3., + 'hc1': 87.6, + 'hcg1': 87.6/2., + 'hb': 1.5, + 'htrou': 38.5, + 'pf': 1.7, + 'j': 2} +dico_bride_D1 = {'nbgouj': 8, + 'dint': 49.22, + 'dex1': 60.3, + 'dex2': 84., + 'dex3': 100., + 'dtrou': 127., + 'dext': 165., + 'dt': 18., + 'drd': 30, + 'dg': 16., + 'dec': 24., + 'rcong': 5., + 'he': 16., + 'e': 3., + 'hc1': 87.6, + 'hcg1': 87.6/2., + 'hb': 1.5, + 'htrou': 38.5, + 'pf': 1.7, + 'j': 2} +dico_bride_E = {'nbgouj': 8, + 'dint': 83.1, + 'dex1': 88.9, + 'dex2': 117.5, + 'dex3': 135., + 'dtrou': 165., + 'dext': 209., + 'dt': 18., + 'drd': 30., + 'dg': 16., + 'dec': 24., + 'rcong': 5., + 'he': 16., + 'e': 3., + 'hc1': 80., + 'hcg1': 80./2., + 'hb': 2., + 'htrou': 27., + 'pf': 1.7, + 'j': 2} +dico_bride_F = {'nbgouj': 8, + 'dint': 73.66, + 'dex1': 88.9, + 'dex2': 117.5, + 'dex3': 135., + 'dtrou': 165., + 'dext': 209., + 'dt': 18., + 'drd': 30., + 'dg': 16., + 'dec': 24., + 'rcong': 5., + 'he': 16., + 'e': 3., + 'hc1': 89., + 'hcg1': 89./2., + 'hb': 2., + 'htrou': 36., + 'pf': 1.7, + 'j': 2} +dico_bride_FF = {'nbgouj': 32, + 'dint': 396.99, + 'dex1': 406.4, + 'dex2': 440., + 'dex3': 455., + 'dtrou': 485., + 'dext': 535., + 'dt': 18., + 'drd': 30., + 'dg': 16., + 'dec': 24., + 'rcong': 5., + 'he': 16., + 'e': 3., + 'hc1': 99., + 'hcg1': 99./2., + 'hb': 3., + 'htrou': 40., + 'pf': 1.7, + 'j': 2} +dico_bride_G = {'nbgouj': 12, + 'dint': 66.7, + 'dex1': 88.9, + 'dex2': 117.5, + 'dex3': 135., + 'dtrou': 165., + 'dext': 209., + 'dt': 18., + 'drd': 30., + 'dg': 16., + 'dec': 24., + 'rcong': 5., + 'he': 16., + 'e': 3., + 'hc1': 98., + 'hcg1': 98./2., + 'hb': 2., + 'htrou': 45., + 'pf': 1.7, + 'j': 2} +dico_bride_GG = {'nbgouj': 36, + 'dint': 381., + 'dex1': 406.4, + 'dex2': 445., + 'dex3': 460., + 'dtrou': 495., + 'dext': 545., + 'dt': 22., + 'drd': 36, + 'dg': 20., + 'dec': 30., + 'rcong': 5., + 'he': 20., + 'e': 3., + 'hc1': 129., + 'hcg1': 129./2., + 'hb': 3., + 'htrou': 63., + 'pf': 2.2, + 'j': 2} +dico_bride_H = {'nbgouj': 12, + 'dint': 108.2, + 'dex1': 114.3, + 'dex2': 146., + 'dex3': 157., + 'dtrou': 190., + 'dext': 225., + 'dt': 18., + 'drd': 30., + 'dg': 16., + 'dec': 24., + 'rcong': 5., + 'he': 16., + 'e': 3., + 'hc1': 89., + 'hcg1': 89./2., + 'hb': 2., + 'htrou': 33., + 'pf': 1.7, + 'j': 2} +dico_bride_H1 = {'nbgouj': 12, + 'dint': 102.6, + 'dex1': 114.3, + 'dex2': 146., + 'dex3': 157., + 'dtrou': 190., + 'dext': 225., + 'dt': 18., + 'drd': 30., + 'dg': 16., + 'dec': 24., + 'rcong': 5., + 'he': 16., + 'e': 3., + 'hc1': 89., + 'hcg1': 89./2., + 'hb': 2., + 'htrou': 33., + 'pf': 1.7, + 'j': 2} +dico_bride_I = {'nbgouj': 18, + 'dint': 92.1, + 'dex1': 114.3, + 'dex2': 146., + 'dex3': 160., + 'dtrou': 200., + 'dext': 255., + 'dt': 20., + 'drd': 32., + 'dg': 18., + 'dec': 27., + 'rcong': 5., + 'he': 18., + 'e': 3., + 'hc1': 99., + 'hcg1': 99./2., + 'hb': 2., + 'htrou': 43., + 'pf': 2.2, + 'j': 2} +dico_bride_J = {'nbgouj': 18, + 'dint': 87.34, + 'dex1': 114.3, + 'dex2': 146., + 'dex3': 160., + 'dtrou': 200., + 'dext': 255., + 'dt': 20., + 'drd': 32., + 'dg': 18., + 'dec': 27., + 'rcong': 5., + 'he': 18., + 'e': 3., + 'hc1': 111., + 'hcg1': 111./2., + 'hb': 2., + 'htrou': 55., + 'pf': 2.2, + 'j': 2} +dico_bride_J1 = {'nbgouj': 18, + 'dint': 87.3, + 'dex1': 114.3, + 'dex2': 146., + 'dex3': 160., + 'dtrou': 200., + 'dext': 255., + 'dt': 22., + 'drd': 36., + 'dg': 20., + 'dec': 30., + 'rcong': 5., + 'he': 20., + 'e': 3., + 'hc1': 111., + 'hcg1': 111./2., + 'hb': 2., + 'htrou': 55., + 'pf': 2.2, + 'j': 2} +dico_bride_K = {'nbgouj': 8, + 'dint': 161.5, + 'dex1': 168.3, + 'dex2': 192., + 'dex3': 210., + 'dtrou': 235., + 'dext': 280., + 'dt': 18., + 'drd': 30., + 'dg': 16., + 'dec': 24., + 'rcong': 5., + 'he': 16., + 'e': 3., + 'hc1': 84., + 'hcg1': 84./2., + 'hb': 2., + 'htrou': 28., + 'pf': 1.7, + 'j': 2} +dico_bride_L = {'nbgouj': 16, + 'dint': 154.8, + 'dex1': 168.3, + 'dex2': 206., + 'dex3': 220., + 'dtrou': 255., + 'dext': 317., + 'dt': 18., + 'drd': 30., + 'dg': 16., + 'dec': 24., + 'rcong': 5., + 'he': 16., + 'e': 3., + 'hc1': 96., + 'hcg1': 96./2., + 'hb': 2., + 'htrou': 40., + 'pf': 1.7, + 'j': 2} +dico_bride_L1 = {'nbgouj': 16, + 'dint': 154.8, + 'dex1': 168.3, + 'dex2': 206., + 'dex3': 220., + 'dtrou': 255., + 'dext': 317., + 'dt': 20., + 'drd': 32., + 'dg': 18., + 'dec': 27., + 'rcong': 5., + 'he': 18., + 'e': 3., + 'hc1': 96., + 'hcg1': 96./2., + 'hb': 2., + 'htrou': 40., + 'pf': 2.2, + 'j': 2} +dico_bride_M = {'nbgouj': 16, + 'dint': 139.7, + 'dex1': 168.3, + 'dex2': 206., + 'dex3': 220., + 'dtrou': 250., + 'dext': 290., + 'dt': 24., + 'drd': 40., + 'dg': 22., + 'dec': 32., + 'rcong': 5., + 'he': 22., + 'e': 3., + 'hc1': 135., + 'hcg1': 135./2., + 'hb': 3., + 'htrou': 62., + 'pf': 2.2, + 'j': 2} +dico_bride_N = {'nbgouj': 12, + 'dint': 131.9, + 'dex1': 168.3, + 'dex2': 220., + 'dex3': 240., + 'dtrou': 290., + 'dext': 365., + 'dt': 30., + 'drd': 48., + 'dg': 27., + 'dec': 41., + 'rcong': 5., + 'he': 27., + 'e': 4., + 'hc1': 148., + 'hcg1': 148./2., + 'hb': 3., + 'htrou': 75., + 'pf': 2.6, + 'j': 2} +dico_bride_O = {'nbgouj': 12, + 'dint': 211.58, + 'dex1': 219.1, + 'dex2': 248., + 'dex3': 260., + 'dtrou': 292., + 'dext': 335., + 'dt': 20., + 'drd': 32., + 'dg': 18., + 'dec': 27., + 'rcong': 5., + 'he': 18., + 'e': 3., + 'hc1': 87., + 'hcg1': 87./2., + 'hb': 3., + 'htrou': 30., + 'pf': 2.2, + 'j': 2} +dico_bride_P = {'nbgouj': 16, + 'dint': 202.74, + 'dex1': 219.1, + 'dex2': 248., + 'dex3': 260., + 'dtrou': 292., + 'dext': 335., + 'dt': 20., + 'drd': 32, + 'dg': 18., + 'dec': 27., + 'rcong': 5., + 'he': 18., + 'e': 3., + 'hc1': 99., + 'hcg1': 99./2., + 'hb': 3., + 'htrou': 42., + 'pf': 2.2, + 'j': 2} +dico_bride_S = {'nbgouj': 16, + 'dint': 264.62, + 'dex1': 273., + 'dex2': 305., + 'dex3': 315., + 'dtrou': 350., + 'dext': 390., + 'dt': 18., + 'drd': 30., + 'dg': 16., + 'dec': 24., + 'rcong': 5., + 'he': 16., + 'e': 3., + 'hc1': 89., + 'hcg1': 89./2., + 'hb': 3., + 'htrou': 32., + 'pf': 1.7, + 'j': 2} +dico_bride_T = {'nbgouj': 16, + 'dint': 254.56, + 'dex1': 273., + 'dex2': 320., + 'dex3': 340., + 'dtrou': 385., + 'dext': 444., + 'dt': 27., + 'drd': 45., + 'dg': 24., + 'dec': 36., + 'rcong': 5., + 'he': 24., + 'e': 4., + 'hc1': 128., + 'hcg1': 128./2., + 'hb': 3., + 'htrou': 55., + 'pf': 2.6, + 'j': 2} +dico_bride_W = {'nbgouj': 28, + 'dint': 314.76, + 'dex1': 323.9, + 'dex2': 360., + 'dex3': 385., + 'dtrou': 415., + 'dext': 460., + 'dt': 18., + 'drd': 30., + 'dg': 16., + 'dec': 24., + 'rcong': 5., + 'he': 16., + 'e': 3., + 'hc1': 96., + 'hcg1': 96./2., + 'hb': 3., + 'htrou': 37., + 'pf': 1.7, + 'j': 2} + + +# dictionnaire pour faire le lien entre l'option de bride et les valeurs normalisées +dico_bride_std = {'AA':dico_bride_AA, + 'A':dico_bride_A, + 'B':dico_bride_B, + 'B1':dico_bride_B1, + 'C':dico_bride_C, + 'D':dico_bride_D, + 'D1':dico_bride_D1, + 'E':dico_bride_E, + 'F':dico_bride_F, + 'FF':dico_bride_FF, + 'G':dico_bride_G, + 'GG':dico_bride_GG, + 'H':dico_bride_H, + 'H1':dico_bride_H1, + 'I':dico_bride_I, + 'J':dico_bride_J, + 'J1':dico_bride_J1, + 'K':dico_bride_K, + 'L':dico_bride_L, + 'L1':dico_bride_L1, + 'M':dico_bride_M, + 'N':dico_bride_N, + 'O':dico_bride_O, + 'P':dico_bride_P, + 'S':dico_bride_S, + 'T':dico_bride_T, + 'W':dico_bride_W} diff --git a/Aster/Cata/cataSTA7/Macro/macr_cabri_mail_ops.py b/Aster/Cata/cataSTA7/Macro/macr_cabri_mail_ops.py new file mode 100644 index 00000000..dbafafe0 --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/macr_cabri_mail_ops.py @@ -0,0 +1,461 @@ +#@ MODIF macr_cabri_mail_ops Macro DATE 01/03/2005 AUTEUR MABBAS M.ABBAS +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +import os + +def macr_cabri_mail_ops(self,EXEC_MAILLAGE,RAFF_MAILLAGE,VERI_MAIL,GEOM_BRID, + IMPRESSION,**args): + """ + Ecriture de la macro MACR_CABRI_MAIL + """ + import types + from Accas import _F + + ier=0 + + # On importe les definitions des commandes a utiliser dans la macro + # Le nom de la variable doit etre obligatoirement le nom de la commande + EXEC_LOGICIEL = self.get_cmd('EXEC_LOGICIEL') + LIRE_MAILLAGE = self.get_cmd('LIRE_MAILLAGE') + PRE_GIBI = self.get_cmd('PRE_GIBI') + IMPR_RESU = self.get_cmd('IMPR_RESU') + + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + # Le concept sortant (de type mail) est nommé 'nomres' dans + # le contexte de la macro + + self.DeclareOut('nomres',self.sd) + + # Chemin de Gibi + import aster + loc_gibi=aster.repout() + gibi2000=loc_gibi+'gibi' + + # Unité pour le fichier maillage produit (format GIBI) + unite_mgib = EXEC_MAILLAGE['UNITE_MGIB'] + # Unité pour le fichier de commandes GIBI + unite_datg = EXEC_MAILLAGE['UNITE_DATG'] + # Niveau gibi + niveau_gibi = EXEC_MAILLAGE['NIVE_GIBI'] + + # Verif mail + ver_apla = VERI_MAIL['APLAT'] + ver_veri = VERI_MAIL['VERIF'] + + # Impression + if IMPRESSION['UNITE']!=None: + imp_unit = IMPRESSION['UNITE'] + imp_unitF = 1 + else: + imp_unitF = 0 + if IMPRESSION['FORMAT']!=None: + imp_form = IMPRESSION['FORMAT'] + imp_formF = 1 + else: + imp_formF = 0 +# if IMPRESSION['FICHIER']!=None: +# imp_fich = IMPRESSION['FICHIER'] +# imp_fichF = 1 +# else: +# imp_fichF = 0 + + # Maillage + nrad = RAFF_MAILLAGE['NB_RADIAL'] + ncir = RAFF_MAILLAGE['NB_CIRCONF'] + nver = RAFF_MAILLAGE['NB_VERTICAL'] + nsect = RAFF_MAILLAGE['NB_ALESAGE'] + temps = 5. + + maillage = {'nrad': nrad, + 'ncir': ncir, + 'nver': nver, + 'nsect': nsect, + 'temps' : temps,} + + # Création du fichier datg + + if GEOM_BRID['NORME'] == 'OUI': + # Bride standard + type_bride = GEOM_BRID['TYPE'] + ### Ecriture du fichier GIBI principal (dgib) - Bride STANDARD + write_file_dgib_STD(unite_mgib,unite_datg,maillage,type_bride) + else: + # Bride quelconque + geo_bride_qqe = {'nbgouj': GEOM_BRID['GOUJ_N_GOUJON'], + 'dint': GEOM_BRID['BRID_D_INT'], + 'dex1': GEOM_BRID['TUBU_D_EXT'], + 'dex2': GEOM_BRID['BRID_D_CONGE'], + 'dex3': GEOM_BRID['BRID_D_EPAUL'], + 'dtrou': GEOM_BRID['BRID_P_ALESAG'], + 'dext': GEOM_BRID['BRID_D_EXT'], + 'dt': GEOM_BRID['BRID_D_ALESAG'], + 'drd': GEOM_BRID['GOUJ_D_RONDEL'], + 'dg': GEOM_BRID['GOUJ_D_GOUJON'], + 'dec': GEOM_BRID['GOUJ_D_ECROU'], + 'rcong': GEOM_BRID['BRID_R_CONGE'], + 'he': GEOM_BRID['GOUJ_E_ECROU'], + 'e': GEOM_BRID['GOUJ_E_RONDEL'], + 'hc1': GEOM_BRID['BRID_H'], + 'hcg1': GEOM_BRID['TUBU_H'], + 'hb': GEOM_BRID['BRID_H_EPAUL'], + 'htrou': GEOM_BRID['BRID_H_ALESAG'], + 'pf': GEOM_BRID['GOUJ_E_FILET'], + 'j': GEOM_BRID['ETAN_E_JOINT']} + ### Ecriture du fichier GIBI principal (dgib) - Bride QUELCONQUE + write_file_dgib_QQE(unite_mgib,unite_datg,maillage,geo_bride_qqe) + + fichier_datg = 'fort.'+str(unite_datg) + fichier_mgib = 'fort.'+str(unite_mgib) + + # Lancement de GIBI + EXEC_LOGICIEL( + LOGICIEL=gibi2000, + ARGUMENT=(_F(NOM_PARA=fichier_datg), + _F(NOM_PARA=fichier_mgib), + ) + ) + # Lecture du maillage GIBI dans ASTER + PRE_GIBI( + UNITE_GIBI = unite_mgib, + ) + + nomres = LIRE_MAILLAGE(VERI_MAIL=_F(APLAT = ver_apla, + VERIF = ver_veri ),) + +# if (imp_fichF == 1): +# print imp_fich + if (imp_formF == 1): + print imp_form + if (imp_unitF == 1): + print imp_unit + # Impression du fichier maillage + if (imp_formF == 1): + if (imp_form == 'CASTEM'): + imp_ngib = IMPRESSION['NIVE_GIBI'] + IMPR_RESU( RESU = _F(MAILLAGE=nomres, ), + FORMAT = 'CASTEM', NIVE_GIBI = imp_ngib ) + if (imp_form == 'IDEAS'): + imp_nver = IMPRESSION['VERSION'] + IMPR_RESU(RESU = _F(MAILLAGE=nomres,), + FORMAT = 'IDEAS', VERSION = imp_nver ) + + return ier + + +############################################################################################## +# Liste des fonctions +############################################################################################## + +############# +## EXTERNES (appelables depuis l'extérieur) +############# + +### Ecriture du fichier GIBI principal (dgib) - Bride STANDARD +# null = write_file_dgib_STD(unite_mgib,unite_datg,msh_bride,geo_bride) + +### Ecriture du fichier GIBI principal (dgib) - Bride QUELCONQUE +# null = write_file_dgib_QQE(unite_mgib,unite_datg,msh_bride,geo_bride) + +### Imprime tout le catalogue des brides standards disponibles dans un fichier texte +# null = print_bride_std(nom_fichier) + +### Catalogue complet des brides standards disponibles +# txt = bride_std() + +############# +## INTERNES (réservées au travail interne) +############# + +### Génération du nom du fichier pour le fichier maillage résultant (format GIBI) +# NomFichier(txt) = name_file_mgib(unite_mgib): + +### Génération du nom du fichier pour le fichier générant le maillage (commandes GIBI) +# NomFichier(txt) = name_file_datg(unite_datg): + +### Récupère un fichier texte DATG +# Txt = text_datg(fichier_datg): + +### Génération du texte pour les variables +# Txt = para_text(dico_var,var): + + + +#============================================================================================= +# Importation des modules Python +#============================================================================================= + +from Macro.macr_cabri_mail_dat import dico_var_geo,dico_var_msh,dico_bride_std + +#============================================================================================= +# Fonctions principales +#============================================================================================= +# Ecriture du fichier GIBI principal (dgib) - Bride STANDARD +def write_file_dgib_STD(unite_mgib,unite_datg,msh_bride,geo_bride): + + # Nom du fichier maillage produit par GIBI + nomFichierMGIB = name_file_mgib(unite_mgib) + + # Nom du fichier de commandes pour GIBI + nomFichierDATG = name_file_datg(unite_datg) + + # Ouverture du fichier d'entrée de commandes + fdgib=open(nomFichierDATG,'w') + + # En-tete + text = "**************************************************************\n" + text = text + "* Fichier GIBI pour le maillage d'une bride \n" + text = text + "**************************************************************\n" + text = text + "\n" + text = text + "* Ce fichier a été généré automatiquement par la macro ASTER MACR_CABRI_MAIL \n" + text = text + "* Ne pas modifier\n" + text = text + "\n" + text = text + "**************************************************************\n" + text = text + "* Type bride: Bride standard \n" + text = text + "**************************************************************\n" + text = text + "titre '"+"Bride standard"+"';\n" + text = text + "** Type bride standard: "+geo_bride+"\n" + + text = text + "\n" + text = text + "nomfich = CHAINE \n" + if len(nomFichierMGIB)>72: + raise Exception, 'Nom de fichier trop long (limité à 72 caractères ' \ + 'pour GIBI) :\n',nomFichierMGIB + elif len(nomFichierMGIB)<=69: + text = text + "'"+nomFichierMGIB+"';\n" + else: + text = text + "'"+nomFichierMGIB[:69]+"'\n" \ + + "'"+nomFichierMGIB[69:]+"';\n" + text = text + "opti dime 3 elem cub8 SAUV FORM nomfich;\n" + text = text + "dens 1;\n" + text = text + "\n" + fdgib.write(text) + + # Procédures internes supplémentaires + text = "**************************************************************\n" + text = text + "* Procédures supplémentaires \n" + text = text + "**************************************************************\n" + text = text + text_datg_pro() + fdgib.write(text) + + # Début de procédure de création du maillage + text = "**************************************************************\n" + text = text + "**************************************************************\n" + text = text + "********* Début de procédure de création du maillage *********\n" + text = text + "**************************************************************\n" + text = text + "**************************************************************\n" + text = text + "\n debproc constru;\n" + fdgib.write(text) + + # Paramètres géométriques + car_bride = dico_bride_std[geo_bride] + text = "**************************************************************\n" + text = text + "* Paramètres géométriques \n" + text = text + "**************************************************************\n" + text = text + para_text(dico_var_geo,car_bride) + fdgib.write(text) + + # Paramètres du maillage + text = "**************************************************************\n" + text = text + "* Paramètres physiques \n" + text = text + "**************************************************************\n" + text = text + para_text(dico_var_msh,msh_bride) + fdgib.write(text) + + # Algorithme du maillage + text = "**************************************************************\n" + text = text + "* Algorithme de maillage \n" + text = text + "**************************************************************\n" + text = text + text_datg_std() + fdgib.write(text) + + # Fermeture du fichier maillage + fdgib.close() + + +# Ecriture du fichier GIBI principal (dgib) - Bride QUELCONQUE +def write_file_dgib_QQE(unite_mgib,unite_datg,msh_bride,geo_bride): + + # Nom du fichier maillage produit par GIBI + nomFichierMGIB = name_file_mgib(unite_mgib) + + # Nom du fichier de commandes pour GIBI + nomFichierDATG = name_file_datg(unite_datg) + + # Ouverture du fichier d'entree de commandes + fdgib=open(nomFichierDATG,'w') + + # En-tete + text = "**************************************************************\n" + text = text + "* Fichier GIBI pour le maillage d'une bride \n" + text = text + "**************************************************************\n" + text = text + "\n" + text = text + "* Ce fichier a été généré automatiquement par la macro ASTER MACR_CABRI_MAIL \n" + text = text + "* Ne pas modifier\n" + text = text + "\n" + text = text + "**************************************************************\n" + text = text + "* Type bride: Bride quelconque\n" + text = text + "**************************************************************\n" + text = text + "titre '"+"Bride Quelconque"+"';\n" + text = text + "\n" + text = text + "nomfich = CHAINE \n" + if len(nomFichierMGIB)>72: + raise Exception, 'Nom de fichier trop long (limité à 72 caractères ' \ + 'pour GIBI) :\n',nomFichierMGIB + elif len(nomFichierMGIB)<=69: + text = text + "'"+nomFichierMGIB+"';\n" + else: + text = text + "'"+nomFichierMGIB[:69]+"'\n" \ + + "'"+nomFichierMGIB[69:]+"';\n" + text = text + "opti dime 3 elem cub8 SAUV FORM nomfich;\n" + text = text + "dens 1;\n" + text = text + "\n" + fdgib.write(text) + + # Procédures internes supplémentaires + text = "**************************************************************\n" + text = text + "* Procédures supplémentaires \n" + text = text + "**************************************************************\n" + text = text + text_datg_pro() + fdgib.write(text) + + # Début de procédure de création du maillage + text = "**************************************************************\n" + text = text + "**************************************************************\n" + text = text + "********* Début de procédure de création du maillage *********\n" + text = text + "**************************************************************\n" + text = text + "**************************************************************\n" + text = text + "\n debproc constru;\n" + fdgib.write(text) + + # Paramètres géométriques + text = "**************************************************************\n" + text = text + "* Paramètres géométriques \n" + text = text + "**************************************************************\n" + text = text + para_text(dico_var_geo,geo_bride) + fdgib.write(text) + + # Paramètres du maillage + text = "**************************************************************\n" + text = text + "* Paramètres physiques \n" + text = text + "**************************************************************\n" + text = text + para_text(dico_var_msh,msh_bride) + fdgib.write(text) + + # Algorithme du maillage + text = "**************************************************************\n" + text = text + "* Algorithme de maillage \n" + text = text + "**************************************************************\n" + text = text + text_datg_qqe() + fdgib.write(text) + + # Fermeture du fichier maillage + fdgib.close() + +# Génération du nom du fichier pour le fichier maillage résultant (format GIBI) +def name_file_mgib(unite_mgib): + cur_dir = os.getcwd() + nomFichier = cur_dir+'/fort.'+str(unite_mgib) + return nomFichier + + +# Génération du nom du fichier pour le fichier générant le maillage (commandes GIBI) +def name_file_datg(unite_datg): + cur_dir = os.getcwd() + nomFichier = cur_dir+'/fort.'+str(unite_datg) + return nomFichier + +# Récupère un fichier texte DATG: texte GIBI pour procédures +def text_datg_pro(): + import aster + loc_datg = aster.repdex() + datg_bridePro = loc_datg+"macr_cabri_mail_proc.datg" + fproc=open(datg_bridePro,'r') + procText = fproc.read() + fproc.close() + + return procText + +# Récupère un fichier texte DATG: texte GIBI pour bride quelconque +def text_datg_qqe(): + import aster + loc_datg = aster.repdex() + datg_brideQqe = loc_datg+"macr_cabri_mail_qqe.datg" + fproc=open(datg_brideQqe,'r') + procText = fproc.read() + fproc.close() + + return procText + +# Récupère un fichier texte DATG: texte GIBI pour bride standard +def text_datg_std(): + import aster + loc_datg = aster.repdex() + datg_brideStd = loc_datg+"macr_cabri_mail_std.datg" + fproc=open(datg_brideStd,'r') + procText = fproc.read() + fproc.close() + + return procText + +# Génération du texte pour les variables +def para_text(dico_var,var): + text = '\n' + for nom_var in var.keys(): + text = text+"* "+dico_var[nom_var]+"\n" + text = text+nom_var+" = "+`var[nom_var]`+";\n" + return text + +#============================================================================================= +# Accès au catalogue des brides standards +# (les brides standards sont décrites dans le fichier Data_Brides.py) +#============================================================================================= + + + +# Imprime tout le catalogue des brides standards disponibles dans un fichier texte +def print_bride_std(nom_fichier): + text = bride_std() + # Ouverture du fichier + finfo=open(nom_fichier,'w') + # Ecriture des infos + finfo.write(text) + # Fermeture du fichier + finfo.close() + +# Catalogue complet des brides standards disponibles +def bride_std(): + # Ligne d'info + text = "Liste des brides standards avec leurs dimensions\n" + # Première ligne + text = text+"\t" + for nom_variable in dico_var_geo.keys(): + text = text + nom_variable+"\t\t" + text = text + "\n" + # Lignes suivantes + for nom_bride in dico_bride_std.keys(): + bride = dico_bride_std[nom_bride] + text = text + nom_bride + '\t' + for nom_var in dico_var_geo.keys(): + chaine = "%f" % (bride[nom_var]) + text = text+chaine+"\t" + text = text + "\n" + return text diff --git a/Aster/Cata/cataSTA7/Macro/macr_cara_poutre_ops.py b/Aster/Cata/cataSTA7/Macro/macr_cara_poutre_ops.py new file mode 100644 index 00000000..de567ca7 --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/macr_cara_poutre_ops.py @@ -0,0 +1,815 @@ +#@ MODIF macr_cara_poutre_ops Macro DATE 05/07/2005 AUTEUR DURAND C.DURAND +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE JMBHH01 J.M.PROIX + +def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD, + GROUP_MA,ORIG_INER,**args): + """ + Ecriture de la macro MACR_CARA_POUTRE + """ + import types + from Accas import _F + ier=0 + # On importe les definitions des commandes a utiliser dans la macro + # Le nom de la variable doit etre obligatoirement le nom de la commande + LIRE_MAILLAGE =self.get_cmd('LIRE_MAILLAGE') + DEFI_GROUP =self.get_cmd('DEFI_GROUP') + CREA_MAILLAGE =self.get_cmd('CREA_MAILLAGE') + AFFE_MODELE =self.get_cmd('AFFE_MODELE') + DEFI_MATERIAU =self.get_cmd('DEFI_MATERIAU') + AFFE_MATERIAU =self.get_cmd('AFFE_MATERIAU') + DEFI_FONCTION =self.get_cmd('DEFI_FONCTION') + DEFI_CONSTANTE =self.get_cmd('DEFI_CONSTANTE') + AFFE_CHAR_THER =self.get_cmd('AFFE_CHAR_THER') + AFFE_CHAR_THER_F=self.get_cmd('AFFE_CHAR_THER_F') + THER_LINEAIRE =self.get_cmd('THER_LINEAIRE') + CALC_VECT_ELEM =self.get_cmd('CALC_VECT_ELEM') + CALC_MATR_ELEM =self.get_cmd('CALC_MATR_ELEM') + NUME_DDL =self.get_cmd('NUME_DDL') + ASSE_VECTEUR =self.get_cmd('ASSE_VECTEUR') + POST_ELEM =self.get_cmd('POST_ELEM') + CALC_ELEM =self.get_cmd('CALC_ELEM') + INTE_MAIL_2D =self.get_cmd('INTE_MAIL_2D') + POST_RELEVE_T =self.get_cmd('POST_RELEVE_T') + IMPR_TABLE =self.get_cmd('IMPR_TABLE') + IMPR_CO =self.get_cmd('IMPR_CO') + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + # Le concept sortant (de type 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 = +# --- = DU RAYON DE TORSION SUR TOUT LE MAILLAGE +# --- = ON CREE UN MODELE PLAN 2D THERMIQUE REPRESENTANT LA SECTION = +# --- = DE LA POUTRE CAR ON A A RESOUDRE DES E.D.P. AVEC DES LAPLACIENS= +# ================================================================== + + if GROUP_MA_BORD and not GROUP_MA: +# --- TRANSFORMATION DES GROUP_MA EN GROUP_NO SUR-LESQUELS +# --- ON POURRA APPLIQUER DES CONDITIONS DE TEMPERATURE IMPOSEE : +# --------------------------------------------------------- + motscles={} + if type(GROUP_MA_BORD)==types.StringType: + motscles['CREA_GROUP_NO']=_F(GROUP_MA=GROUP_MA_BORD,) + else: + motscles['CREA_GROUP_NO']=[] + for grma in GROUP_MA_BORD: + motscles['CREA_GROUP_NO'].append(_F(GROUP_MA=grma,)) + __nomlma=DEFI_GROUP(reuse=__nomlma, + MAILLAGE=__nomlma, + **motscles) + + + +# --- CREATION D UN MAILLAGE IDENTIQUE AU PREMIER A CECI PRES +# --- QUE LES COORDONNEES SONT EXPRIMEES DANS LE REPERE PRINCIPAL +# --- D INERTIE DONT L ORIGINE EST LE CENTRE DE GRAVITE DE LA SECTION : +# --------------------------------------------------------------- + + __nomapi=CREA_MAILLAGE(MAILLAGE=__nomlma, + REPERE=_F(TABLE=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 args.has_key('GROUP_MA_INTE'): + if args['GROUP_MA_INTE'] != None : + motscles['LIAISON_UNIF']=_F(GROUP_MA=args['GROUP_MA_INTE'],DDL='TEMP'), + __chart1=AFFE_CHAR_THER(MODELE=__nomoth, + TEMP_IMPO =_F(GROUP_NO=GROUP_MA_BORD, + TEMP=0. ), + SOURCE =_F(TOUT='OUI', + SOUR=2.0), + **motscles ) + +# --- POUR CHAQUE TROU DE LA SECTION : +# --- .ON A IMPOSE QUE PHI EST CONSTANT SUR LE CONTOUR INTERIEUR +# --- EN FAISANT LE LIAISON_UNIF DANS LE AFFE_CHAR_THER PRECEDENT +# --- .ON IMPOSE EN PLUS D(PHI)/DN = 2*AIRE(TROU)/L(TROU) +# --- OU D/DN DESIGNE LA DERIVEE PAR RAPPORT A LA +# --- NORMALE ET L DESIGNE LA LONGUEUR DU BORD DU TROU : +# ------------------------------------------------------- + + if args.has_key('GROUP_MA_INTE'): + lgmaint=args['GROUP_MA_INTE'] + if lgmaint != None : + __tbaire=POST_ELEM(MODELE=__nomoth, + AIRE_INTERNE=_F(GROUP_MA_BORD=args['GROUP_MA_INTE'],), ) + + motscles={} + motscles['FLUX_REP']=[] + + if type(lgmaint)==types.StringType: + motscles['FLUX_REP']=_F(GROUP_MA=args['GROUP_MA_INTE'],CARA_TORSION=__tbaire) + else: + motscles['FLUX_REP']=[] + for grma in lgmaint: + motscles['FLUX_REP'].append(_F(GROUP_MA=grma,CARA_TORSION=__tbaire),) + __chart2=AFFE_CHAR_THER(MODELE=__nomoth,**motscles) + +# --- RESOLUTION DE LAPLACIEN(PHI) = -2 +# --- AVEC PHI = 0 SUR LE CONTOUR : +# ---------------------------------------- + + motscles={} + motscles['EXCIT']=[_F(CHARGE=__chart1,),] + if args.has_key('GROUP_MA_INTE'): + if lgmaint != None : + motscles['EXCIT'].append(_F(CHARGE=__chart2,)) + __tempe1=THER_LINEAIRE(MODELE=__nomoth, + CHAM_MATER=__chmath, + SOLVEUR=_F(STOP_SINGULIER='NON',), + **motscles ) + +# +# ---------------------------------------------- +# --- - CALCUL DU CENTRE DE TORSION/CISAILLEMENT - +# --- - ET DES COEFFICIENTS DE CISAILLEMENT : - +# ---------------------------------------------- +# +# --- POUR LE CALCUL DES CONSTANTES DE CISAILLEMENT, ON VA DEFINIR +# --- UN PREMIER TERME SOURCE, SECOND MEMBRE DE L EQUATION DE LAPLACE +# --- PAR UNE FONCTION EGALE A Y : +# -------------------------- + + __fnsec1=DEFI_FONCTION(NOM_PARA='X', + VALE=(0.,0.,10.,10.), + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE', + ) + + __fnsec0=DEFI_CONSTANTE(VALE=0.,) + +# --- LE TERME SOURCE CONSTITUANT LE SECOND MEMBRE DE L EQUATION +# --- DE LAPLACE EST PRIS EGAL A Y DANS TOUTE LA SECTION : +# -------------------------------------------------- + + + motscles={} + if args.has_key('NOEUD'): + motscles['TEMP_IMPO']=(_F(NOEUD=args['NOEUD'],TEMP=__fnsec0)) + __chart2=AFFE_CHAR_THER_F(MODELE=__nomoth, + SOURCE=_F(TOUT='OUI', + SOUR=__fnsec1,), + **motscles ) + +# --- RESOLUTION DE LAPLACIEN(PHI) = -Y +# --- AVEC D(PHI)/D(N) = 0 SUR LE CONTOUR : +# ------------------------------------------------ + + __tempe2=THER_LINEAIRE(MODELE=__nomoth, + CHAM_MATER=__chmath, + EXCIT=_F(CHARGE=__chart2,), + SOLVEUR=_F(STOP_SINGULIER='NON',), + ) + +# --- POUR LE CALCUL DES CONSTANTES DE CISAILLEMENT, ON VA DEFINIR +# --- UN PREMIER TERME SOURCE, SECOND MEMBRE DE L EQUATION DE LAPLACE +# --- PAR UNE FONCTION EGALE A Z : +# -------------------------- + + __fnsec2=DEFI_FONCTION(NOM_PARA='Y', + VALE=(0.,0.,10.,10.), + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE', + ) + +# --- LE TERME SOURCE CONSTITUANT LE SECOND MEMBRE DE L EQUATION +# --- DE LAPLACE EST PRIS EGAL A Z DANS TOUTE LA SECTION : +# -------------------------------------------------- + + motscles={} + if args.has_key('NOEUD'): + motscles['TEMP_IMPO']=_F(NOEUD=args['NOEUD'],TEMP=__fnsec0) + __chart3=AFFE_CHAR_THER_F(MODELE=__nomoth, + SOURCE=_F(TOUT='OUI', + SOUR=__fnsec2,), + **motscles) + +# --- RESOLUTION DE LAPLACIEN(PHI) = -Z +# --- AVEC D(PHI)/D(N) = 0 SUR LE CONTOUR : +# ------------------------------------------------ + + __tempe3=THER_LINEAIRE(MODELE=__nomoth, + CHAM_MATER=__chmath, + EXCIT=_F(CHARGE=__chart3,), + SOLVEUR=_F(STOP_SINGULIER='NON',), + ) + +# --- CALCUL DU RAYON DE TORSION : +# -------------------------- + +# CALCUL DU RAYON DE TORSION EXTERNE : rtext + + __tempe1=CALC_ELEM(reuse=__tempe1, + RESULTAT=__tempe1, + MODELE=__nomoth, + CHAM_MATER=__chmath, + TOUT_ORDRE='OUI', + OPTION='FLUX_ELNO_TEMP', + ) + + __chem=INTE_MAIL_2D(MAILLAGE=__nomapi, + DEFI_CHEMIN=_F(GROUP_MA=GROUP_MA_BORD), + INFO=2,) + + __flun=POST_RELEVE_T(ACTION=_F(INTITULE='FLUX_NORM', + CHEMIN=__chem, + RESULTAT=__tempe1, + NOM_CHAM='FLUX_ELNO_TEMP', + TRAC_NOR='OUI', + NOM_CMP=('FLUX','FLUY'), + OPERATION='MOYENNE')) + + __m1=abs(__flun['TRAC_NOR',3]) + __m2=abs(__flun['TRAC_NOR',4]) + __rtext=max(__m1,__m2) + + # CALCUL DU RAYON DE TORSION : rt + # rt = max ( rtext , 2*AIRE(TROU)/L(TROU) ) + + if args.has_key('GROUP_MA_INTE'): + if args['GROUP_MA_INTE'] != None : + if type(args['GROUP_MA_INTE'])==types.StringType : + l_group_ma_inte=[args['GROUP_MA_INTE'],] + else: + l_group_ma_inte=args['GROUP_MA_INTE'] + for i in range(0,len(l_group_ma_inte)): + __chem=INTE_MAIL_2D(MAILLAGE=__nomapi, + DEFI_CHEMIN=_F(GROUP_MA=l_group_ma_inte[i]), + INFO=2,) + __flun=POST_RELEVE_T(ACTION=_F(INTITULE='FLUX_NORM', + CHEMIN=__chem, + RESULTAT=__tempe1, + NOM_CHAM='FLUX_ELNO_TEMP', + TRAC_NOR='OUI', + NOM_CMP=('FLUX','FLUY'), + OPERATION='MOYENNE')) + __m1=(abs(__flun['TRAC_NOR',3])+abs(__flun['TRAC_NOR',4]))/2. + if __m1 > __rtext : + __rtext=__m1 + + __rt=__rtext + +# --- CALCUL DE LA CONSTANTE DE TORSION : +# --------------------------------- + + motscles={} + if args.has_key('GROUP_MA_INTE'): + lgmaint=args['GROUP_MA_INTE'] + if lgmaint != None : + motscles['CARA_POUTRE']=_F(CARA_GEOM=nomres, + LAPL_PHI=__tempe1, + RT=__rt, + TOUT='OUI', + OPTION='CARA_TORSION', + GROUP_MA_INTE=args['GROUP_MA_INTE'],) + else: + motscles['CARA_POUTRE']=_F(CARA_GEOM=nomres, + LAPL_PHI=__tempe1, + RT=__rt, + 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 RAYON DE TORSION SUR CHAQUE GROUPE = +# --- = 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 args.has_key('NOEUD'): + if type(args['NOEUD'])==types.StringType : + l_noeud=[args['NOEUD'],] + else: + l_noeud= args['NOEUD'] + + if len(l_group_ma)!=len(l_group_ma_bord): + ier=ier+1 + self.cr.fatal(" GROUP_MA et GROUP_MA_BORD incoherents") + return ier + if args.has_key('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 DU RAYON DE TORSION : +# -------------------------- + +# CALCUL DU RAYON DE TORSION EXTERNE : rtext + + __tempe1=CALC_ELEM(reuse=__tempe1, + RESULTAT=__tempe1, + MODELE=__nomoth, + CHAM_MATER=__chmath, + TOUT_ORDRE='OUI', + OPTION='FLUX_ELNO_TEMP', + ) + + __chem=INTE_MAIL_2D(MAILLAGE=__nomapi, + DEFI_CHEMIN=_F(GROUP_MA=l_group_ma_bord[i]), + INFO=2,) + + __flun=POST_RELEVE_T(ACTION=_F(INTITULE='FLUX_NORM', + CHEMIN=__chem, + RESULTAT=__tempe1, + NOM_CHAM='FLUX_ELNO_TEMP', + TRAC_NOR='OUI', + NOM_CMP=('FLUX','FLUY'), + OPERATION='MOYENNE')) + + __m1=abs(__flun['TRAC_NOR',3]) + __m2=abs(__flun['TRAC_NOR',4]) + __rtext=max(__m1,__m2) + +# CALCUL DU RAYON DE TORSION : rt +# rt = max ( rtext , 2*AIRE(TROU)/L(TROU) ) + + if args.has_key('GROUP_MA_INTE'): + if args['GROUP_MA_INTE'] != None : + if type(args['GROUP_MA_INTE'])==types.StringType : + l_group_ma_inte=[args['GROUP_MA_INTE'],] + else: + l_group_ma_inte=args['GROUP_MA_INTE'] + for j in range(0,len(l_group_ma_inte)): + __chem=INTE_MAIL_2D(MAILLAGE=__nomapi, + DEFI_CHEMIN=_F(GROUP_MA=l_group_ma_inte[j]), + INFO=2,) + __flun=POST_RELEVE_T(ACTION=_F(INTITULE='FLUX_NORM', + CHEMIN=__chem, + RESULTAT=__tempe1, + NOM_CHAM='FLUX_ELNO_TEMP', + TRAC_NOR='OUI', + NOM_CMP=('FLUX','FLUY'), + OPERATION='MOYENNE')) + __m1=(abs(__flun['TRAC_NOR',3])+abs(__flun['TRAC_NOR',4]))/2. + if __m1 > __rtext : + __rtext=__m1 + + __rt=__rtext + +# --- CALCUL DE LA CONSTANTE DE TORSION : +# --------------------------------- + + nomres=POST_ELEM(reuse=nomres, + MODELE=__nomoth, + CHAM_MATER=__chmath, + CARA_POUTRE=_F(CARA_GEOM=nomres, + LAPL_PHI=__tempe1, + RT=__rt, + GROUP_MA=l_group_ma[i], + OPTION='CARA_TORSION' ), ) + +# --- CALCUL DES COEFFICIENTS DE CISAILLEMENT ET DES COORDONNEES DU +# --- CENTRE DE CISAILLEMENT/TORSION : +# ------------------------------ + + 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=args['LONGUEUR'], + MATERIAU=args['MATERIAU'], + LIAISON =args['LIAISON'], + OPTION='CARA_CISAILLEMENT' ), ) + IMPR_TABLE(TABLE=nomres) + + return ier diff --git a/Aster/Cata/cataSTA7/Macro/macr_ecla_pg_ops.py b/Aster/Cata/cataSTA7/Macro/macr_ecla_pg_ops.py new file mode 100644 index 00000000..8bfada76 --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/macr_ecla_pg_ops.py @@ -0,0 +1,71 @@ +#@ MODIF macr_ecla_pg_ops Macro DATE 09/11/2004 AUTEUR VABHHTS J.PELLET +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +######################################################################## +def macr_ecla_pg_ops(self,RESULTAT,MAILLAGE,RESU_INIT,MODELE_INIT, + TOUT, GROUP_MA, MAILLE, + SHRINK, TAILLE_MIN, + NOM_CHAM, TOUT_ORDRE, NUME_ORDRE, LIST_ORDRE, INST, LIST_INST, PRECISION, CRITERE, + **args): + """ + Ecriture de la macro macr_ecla_pg + """ + import os, string + from Accas import _F + from Noyau.N_utils import AsType + ier=0 + + # On importe les definitions des commandes a utiliser dans la macro + CREA_MAILLAGE =self.get_cmd('CREA_MAILLAGE') + CREA_RESU =self.get_cmd('CREA_RESU') + + + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + + # Appel à CREA_MAILLAGE : + motscles={} + if TOUT : motscles['TOUT'] =TOUT + if GROUP_MA : motscles['GROUP_MA'] =GROUP_MA + if MAILLE : motscles['MAILLE'] =MAILLE + + self.DeclareOut('ma2',MAILLAGE) + ma2=CREA_MAILLAGE(ECLA_PG=_F( MODELE = MODELE_INIT, NOM_CHAM=NOM_CHAM, + SHRINK = SHRINK, TAILLE_MIN=TAILLE_MIN, **motscles )); + + + + # Appel à CREA_RESU : + typ2=AsType(RESU_INIT).__name__ + if TOUT_ORDRE : motscles['TOUT_ORDRE'] =TOUT_ORDRE + if NUME_ORDRE : motscles['NUME_ORDRE'] =NUME_ORDRE + if LIST_ORDRE : motscles['LIST_ORDRE'] =LIST_ORDRE + if LIST_INST : motscles['LIST_INST'] =LIST_INST + if INST : motscles['INST'] =INST + if TOUT_ORDRE : motscles['TOUT_ORDRE'] =TOUT_ORDRE + + self.DeclareOut('resu2',RESULTAT) + resu2=CREA_RESU( OPERATION='ECLA_PG', TYPE_RESU=string.upper(typ2), + ECLA_PG=_F( MODELE_INIT= MODELE_INIT, RESU_INIT=RESU_INIT, NOM_CHAM=NOM_CHAM, + MAILLAGE= ma2, **motscles )); + return ier +############################################################################################ + diff --git a/Aster/Cata/cataSTA7/Macro/macr_fiab_impr_ops.py b/Aster/Cata/cataSTA7/Macro/macr_fiab_impr_ops.py new file mode 100644 index 00000000..08ac8d10 --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/macr_fiab_impr_ops.py @@ -0,0 +1,110 @@ +#@ MODIF macr_fiab_impr_ops Macro DATE 24/01/2005 AUTEUR DURAND C.DURAND +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE GNICOLAS G.NICOLAS +# +def macr_fiab_impr_ops(self, INFO, + TABLE_CIBLE, NOM_PARA_CIBLE, GRADIENTS, **args): +# +# +# 1. args est le dictionnaire des arguments +# args.keys() est la liste des mots-clés +# args.keys()[0] est la premiere valeur de cette liste +# args.keys()[1:] est la liste des valeurs suivantes dans cette liste +# args.keys(mot_cle) représente le contenu de la variable mot_cle dans la macro appelante. +# + """ Macro-commande réalisant l'impression des valeurs pour le logiciel de fiabilite. """ +# +# On charge les modules nécessaires + from Accas import _F +# +#____________________________________________________________________ +# +# 1. Préalables +#____________________________________________________________________ +# + erreur = 0 +# +# 1.1 ==> La macro compte pour 1 dans l'exécution des commandes +# + self.set_icmd(1) +# +# 1.2 ==> On importe les définitions des commandes Aster utilisées +# dans la macro +# + DEFI_FICHIER = self.get_cmd("DEFI_FICHIER") + IMPR_TABLE = self.get_cmd("IMPR_TABLE") +# +# 1.3. ==> Des constantes +# Atention : le numéro d'unité utilisé ici et celui +# utlisé dans le python d'échange lance_aster_5 +# doivent correspondre. +# + Unite_Fichier_ASTER_vers_FIABILITE = 91 + Nom_Symbolique_Fichier_ASTER_vers_FIABILITE = "ASTER_vers_FIABILITE" + FORMAT_R="1PE17.10" +#____________________________________________________________________ +# +# 2. Définition d'un fichier d'échange +#____________________________________________________________________ +# + DEFI_FICHIER ( ACTION= "ASSOCIER", +# FICHIER = Nom_Symbolique_Fichier_ASTER_vers_FIABILITE, + UNITE = Unite_Fichier_ASTER_vers_FIABILITE, + TYPE = "ASCII", + INFO = INFO ) +#____________________________________________________________________ +# +# 4. Ecriture de la valeur cible +#____________________________________________________________________ +# + IMPR_TABLE ( TABLE = TABLE_CIBLE, + NOM_PARA = NOM_PARA_CIBLE, + UNITE = Unite_Fichier_ASTER_vers_FIABILITE, + FORMAT_R = FORMAT_R, + INFO = INFO ) +#____________________________________________________________________ +# +# 5. Ecritures des gradients +#____________________________________________________________________ +# + if GRADIENTS is not None : +# + for val in GRADIENTS : +# + IMPR_TABLE ( TABLE = val["TABLE"], + SENSIBILITE = val["PARA_SENSI"], + NOM_PARA = (val["NOM_PARA"]), + UNITE = Unite_Fichier_ASTER_vers_FIABILITE, + FORMAT_R = FORMAT_R, + INFO = INFO ) +#____________________________________________________________________ +# +# 6. Libération du fichier d'échange +#____________________________________________________________________ +# + DEFI_FICHIER ( ACTION= "LIBERER", + UNITE = Unite_Fichier_ASTER_vers_FIABILITE, + INFO = INFO ) +# +#-------------------------------------------------------------------- +# 7. C'est fini ! +#-------------------------------------------------------------------- +# + return erreur diff --git a/Aster/Cata/cataSTA7/Macro/macr_fiabilite_ops.py b/Aster/Cata/cataSTA7/Macro/macr_fiabilite_ops.py new file mode 100644 index 00000000..62a10eba --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/macr_fiabilite_ops.py @@ -0,0 +1,324 @@ +#@ MODIF macr_fiabilite_ops Macro DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + + +# RESPONSABLE GNICOLAS G.NICOLAS +# +def macr_fiabilite_ops(self, INFO, + LOGICIEL, VERSION, + UNITE_ESCL, MESS_ASTER, + SEUIL, SEUIL_TYPE, + VARIABLE, + **args ) : +# +# args est le dictionnaire des arguments optionnels +# args.keys() est la liste des mots-clés +# args.keys()[0] est la premiere valeur de cette liste +# args.keys()[1:] est la liste des valeurs suivantes dans cette liste +# args.keys(mot_cle) représente le contenu de la variable mot_cle dans la macro appelante. +### print args +### print args.keys() +### if len (args.keys())>0 : print args.keys()[0] +# + """ Macro-commande réalisant le pilotage du logiciel de fiabilite. """ +# +# On charge les modules nécessaires + from Accas import _F + from Macro import fiabilite_mefisto + import aster + import os + import string + import sys + import Numeric +# +#____________________________________________________________________ +# +# 1. Préalables +#____________________________________________________________________ +# +# 1.1 ==> La macro compte pour 1 dans l'exécution des commandes +# + self.set_icmd(1) +# +# 1.2 ==> On importe les définitions des commandes Aster utilisées +# dans la macro +# + EXEC_LOGICIEL = self.get_cmd("EXEC_LOGICIEL") + DEFI_LIST_REEL = self.get_cmd("DEFI_LIST_REEL") +# +# 1.3 ==> Le nom du programme de fiabilite à lancer +# + repertoire_outils = aster.repout() + fiabilite = repertoire_outils + "fiabilite" +# +# 1.4 ==> Initialisations +# + erreur = 0 + erreur_partiel = [0] + Rep_Calc_ASTER = os.getcwd() + Nom_Exec_ASTER = sys.executable +# + messages_erreur = { 0 : "Tout va bien", + 1 : "Impossible de créer le répertoire de travail pour le logiciel de fiabilité.", + 2 : "Probleme d'ouverture du fichier.", + 10 : "Erreur dans le choix du logiciel de fiabilité.", + 11 : "Erreur dans la création des données pour le logiciel de fiabilité.", + 100 : "Erreur." } +# + while not erreur : +# +#____________________________________________________________________ +# +# 2. Répertoires et fichiers +#____________________________________________________________________ +# +# 2.1. ==> Création du répertoire pour l'exécution du logiciel de fiabilité +# + Nom_Rep_local = "tmp_fiabilite" + Rep_Calc_LOGICIEL_local = os.path.join(".",Nom_Rep_local) + Rep_Calc_LOGICIEL_global = os.path.join(Rep_Calc_ASTER,Nom_Rep_local) +# + try : + os.mkdir(Rep_Calc_LOGICIEL_global) + except os.error,erreur_partiel : + self.cr.warn("Code d'erreur de mkdir : " + str(erreur_partiel[0]) + " : " + erreur_partiel[1]) + self.cr.fatal("Impossible de créer le répertoire de travail pour le logiciel de fiabilité : "+Rep_Calc_LOGICIEL_global) + erreur = erreur + 1 + break +# +# 2.2. ==> On crée un fichier annexe pour transmettre des données à la procédure +# de lancement des calculs ASTER par le LOGICIEL. +# Ce fichier est créé dans le répertoire d'exécution du logiciel de fiabilité. +# On fait ainsi car les arguments passés ont du mal à transiter via l'exécutable. +# On stocke : +# 1. Le niveau d'information +# 2. L'unité logique associée au jeu de commandes déterministes +# 3. La gestion des sorties ASTER +# 4. Le nom de l'exécutable ASTER +# 5. Le type de seuil du problème (maximum ou minimum) +# + fic_Info_ASTER = os.path.join(Rep_Calc_LOGICIEL_global,"InfoExecASTER") + try : + f_execAster = open(fic_Info_ASTER, "w") + except os.error,erreur_partiel : + self.cr.warn("Fichier : "+fic_Info_ASTER) + self.cr.warn("Code d'erreur de open : " + str(erreur_partiel[0]) + " : " + erreur_partiel[1]) + erreur = 2 + break +# + f_execAster.write(str(INFO)+"\n") + f_execAster.write(str(UNITE_ESCL)+"\n") + f_execAster.write(str(MESS_ASTER)+"\n") + f_execAster.write(str(Nom_Exec_ASTER)+"\n") + f_execAster.write(str(SEUIL_TYPE)) + f_execAster.close() + fichier = open (fic_Info_ASTER,"r") +# + if INFO >= 2 : + print "\nContenu du fichier " + fic_Info_ASTER," :" + les_lignes = fichier.readlines() + fichier.close() + print les_lignes, "\n" +# +#____________________________________________________________________ +# +# 3. Les variables par defaut +#____________________________________________________________________ +# +# 3.1. ==> Dictionnaire des valeurs physiques et liées à la loi +# + valeurs_lois = { } +# + for m in VARIABLE : +# + v_moy_physique = None + v_moy_loi = None + v_min_loi = None + v_max_loi = None + sigma_loi = None +# +# 3.1.1. ==> loi uniforme : transfert des min et max +# on définit une moyennne comme étant la médiane des extremes. +# + if m["LOI"] == "UNIFORME" : + v_moy_physique = 0.5 * ( m["VALE_MIN"] + m["VALE_MAX"] ) + v_min_loi = m["VALE_MIN"] + v_max_loi = m["VALE_MAX"] +# +# 3.1.2. ==> loi normale : transfert des moyennne et écart-type. +# + elif m["LOI"] == "NORMALE" : + v_moy_loi = m["VALE_MOY"] + v_moy_physique = v_moy_loi + sigma_loi = m["ECART_TYPE"] +# +# 3.1.3. ==> loi lognormale : identité du min, conversion pour le reste +# + elif m["LOI"] == "LOGNORMALE" : + v_min_loi = m["VALE_MIN"] + if m["VALE_MOY_PHY"] is None : + v_moy_loi = m["VALE_MOY"] + sigma_loi = m["ECART_TYPE"] + aux = Numeric.exp(0.5*sigma_loi*sigma_loi+v_moy_loi) + v_moy_physique = v_min_loi + aux + else : + v_moy_physique = m["VALE_MOY_PHY"] + aux = m["ECART_TYPE_PHY"]/(m["VALE_MOY_PHY"]-m["VALE_MIN"]) + aux1 = 1. + aux*aux + aux2 = Numeric.sqrt(aux1) + v_moy_loi = Numeric.log((m["VALE_MOY_PHY"]-m["VALE_MIN"])/aux2) + aux2 = Numeric.log(aux1) + sigma_loi = Numeric.sqrt(aux2) +# +# 3.1.4. ==> loi normale tronquée : transfert des moyenne, mini/maxi et écart-type +# on définit une moyennne comme étant la médiane des extremes. +# + else : + v_moy_loi = m["VALE_MOY"] + v_min_loi = m["VALE_MIN"] + v_max_loi = m["VALE_MAX"] + sigma_loi = m["ECART_TYPE"] + v_moy_physique = 0.5 * ( m["VALE_MIN"] + m["VALE_MAX"] ) +# + d = { } + d["v_moy_physique"] = v_moy_physique + d["v_moy_loi"] = v_moy_loi + d["v_min_loi"] = v_min_loi + d["v_max_loi"] = v_max_loi + d["sigma_loi"] = sigma_loi + valeurs_lois[m] = d +# +#____________________________________________________________________ +# +# 4. Création des fichiers pour le logiciel de fiabilite +#____________________________________________________________________ +# + if ( LOGICIEL == "MEFISTO" ) : +# +# 4.1. ==> MEFISTO +# + erreur = fiabilite_mefisto.fiabilite_mefisto ( self, Rep_Calc_LOGICIEL_global, + INFO, VERSION, + SEUIL, SEUIL_TYPE, + VARIABLE, + valeurs_lois, + **args ) +# +# 4.2. ==> Erreur si autre logiciel +# + else : +# + self.cr.warn("Logiciel de fiabilité : "+LOGICIEL) + erreur = 10 +# +# 4.3. ==> Arret en cas d'erreur +# + if erreur : + break +# +#____________________________________________________________________ +# +# 5. Ecriture de la commande d"exécution du logiciel de fiabilité +# +# Remarque : dans la donnée de la version du logiciel de fiabilité, il faut remplacer +# le _ de la donnée par un ., qui +# est interdit dans la syntaxe du langage de commandes ASTER +# Remarque : il faut remplacer le N majuscule de la donnee par +# un n minuscule, qui est interdit dans la syntaxe du langage +# de commandes ASTER +#____________________________________________________________________ +# +# + VERSION=string.replace(VERSION,"_",".") + VERSION=string.replace(VERSION,"N","n") +# + EXEC_LOGICIEL ( ARGUMENT = (_F(NOM_PARA=Rep_Calc_LOGICIEL_global), # nom du repertoire + _F(NOM_PARA=LOGICIEL), # nom du logiciel de fiabilité + _F(NOM_PARA=VERSION), # version du logiciel de fiabilité + ), + LOGICIEL = fiabilite + ) +# +#-------------------------------------------------------------------- +# 6. C'est fini ! +#-------------------------------------------------------------------- +# + break +# +# 6.1. ==> Arret en cas d'erreur +# + if erreur : + if not messages_erreur.has_key(erreur) : + erreur = 100 + self.cr.fatal(messages_erreur[erreur]) +# +# 6.2. ==> Si tout va bien, on crée une liste de réels pour le retour +# A terme, il serait intéressant d'y mettre les résultats +# de l'analyse fiabiliste. Pour le moment, on se contente de +# mettre une valeur nulle qui permet de faire un test dans +# les commandes appelantes. +# + aux = [float(erreur)] +# + self.DeclareOut("nomres",self.sd) + nomres = DEFI_LIST_REEL( VALE = aux , INFO = 1 ) +# + return +# +########################## Fin de la fonction################################## +# +########################## Auto-test################################## +# +if __name__ == "__main__" : +# + import os + import sys + import tempfile +# + Rep_Calc_LOGICIEL_global = tempfile.mktemp() + os.mkdir(Rep_Calc_LOGICIEL_global) +# + classe = None + INFO = 2 + LOGICIEL = "MEFISTO" + VERSION = "V3_2" + UNITE_ESCL = 38 + MESS_ASTER = "DERNIER" + SEUIL = 1789. + SEUIL_TYPE = "MAXIMUM" + VARIABLE = [] + args = {} +# + lr8 = macr_fiabilite_ops(classe, INFO, + LOGICIEL, VERSION, + UNITE_ESCL, MESS_ASTER, + SEUIL, SEUIL_TYPE, + VARIABLE, + **args ) +### print "lr8 = ", lr8 + Liste = os.listdir(Rep_Calc_LOGICIEL_global) +# + for nomfic in Liste : + fic_total = os.path.join(Rep_Calc_LOGICIEL_global,nomfic) + os.chmod (fic_total,0755) + os.remove (fic_total) + os.rmdir (Rep_Calc_LOGICIEL_global) +# + sys.exit("blabla") diff --git a/Aster/Cata/cataSTA7/Macro/macr_lign_coupe_ops.py b/Aster/Cata/cataSTA7/Macro/macr_lign_coupe_ops.py new file mode 100644 index 00000000..91bbca8d --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/macr_lign_coupe_ops.py @@ -0,0 +1,174 @@ +#@ MODIF macr_lign_coupe_ops Macro DATE 05/07/2005 AUTEUR DURAND C.DURAND +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + + + +######################################################################## +# 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)+'\n' + 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 + from Utilitai.UniteAster import UniteAster + 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.set_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) + UL = UniteAster() + nomFichierSortie = UL.Nom(UNITE_MAILLAGE) + fproc=open(nomFichierSortie,'w') + fproc.write(resu_mail) + fproc.close() + UL.EtatInit(UNITE_MAILLAGE) + + # Lecture du maillage de seg2 contenant toutes les lignes de coupe + + __macou=LIRE_MAILLAGE(UNITE=UNITE_MAILLAGE,); + + 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 diff --git a/Aster/Cata/cataSTA7/Macro/macr_recal_ops.py b/Aster/Cata/cataSTA7/Macro/macr_recal_ops.py new file mode 100644 index 00000000..180f8459 --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/macr_recal_ops.py @@ -0,0 +1,161 @@ +#@ MODIF macr_recal_ops Macro DATE 05/07/2005 AUTEUR DURAND C.DURAND +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + + + +def macr_recal_ops(self,UNITE_ESCL, RESU_EXP, POIDS, 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 + ier=0 + # On essaie d'importer Numeric -> ERREUR FATALE + try: + import Numeric + except ImportError: + ier=ier+1 + self.cr.fatal(" Le module Numeric de Python n'a pu etre chargé") + return ier + # On essaie d'importer Gnuplot -> PAS DE GRAPHIQUE + try: + import Gnuplot + gnuplot=1 + except ImportError: + gnuplot=0 + import string + import copy + import types + import Macro + from Cata import cata + from Cata.cata import DEFI_LIST_REEL + from Macro.recal import gestion,transforme_list_Num,EXTRACT,calcul_F,graphique + from Macro import reca_message + from Macro import reca_algo + from Macro import reca_interp + # La macro compte pour 1 dans l'execution des commandes + self.set_icmd(1) + + self.DeclareOut('nomres',self.sd) + + #_______________________________________________ + # + # GESTION DE L'OPTION FACULTATIVE POUR LES POIDS + #_______________________________________________ + if( POIDS == None): + POIDS=Numeric.ones(len(RESU_EXP)) + + #_____________________________________________ + # + # GESTION DES ERREURS DE SYNTAXE + #_____________________________________________ + texte_erreur = gestion(UNITE_ESCL,LIST_PARA,RESU_CALC,RESU_EXP,POIDS,GRAPHIQUE,UNITE_RESU) + if (texte_erreur != ""): + ier=ier+1 + texte_erreur=' '+texte_erreur + self.cr.fatal(texte_erreur) + return ier + + #_____________________________________________ + # + # DECLARATION DE 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 + + #_____________________________________________ + # + # INITIALISATIONS + #_____________________________________________ + iter = 0 + restant,temps_iter=0.,0. + restant,temps_iter,err=reca_algo.temps_CPU(self,restant,temps_iter) + 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 = reca_message.Message(para,RESU_EXP,copy.copy(val_init),UNITE_RESU) + #instances des classes pour le calcul de l'erreur et le dimensionnemnt/adim + Simul = reca_interp.Sim_exp(RESU_EXP,POIDS) + Dim = reca_algo.Dimension(copy.copy(val_init),para) + 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 = reca_algo.lambda_init(Numeric.matrixmultiply(Numeric.transpose(A),A)) + gradient_init =reca_algo.calcul_gradient(A,erreur) #utile pour le test de convergence, on prend les valeurs dimensionnées + residu = reca_algo.test_convergence(gradient_init,erreur,A,Numeric.zeros(len(gradient_init),Numeric.Float)) + Mess.affiche_result_iter(iter,J,val,residu,Numeric.array([]),UNITE_RESU) + # On teste un manque de temps CPU + restant,temps_iter,err=reca_algo.temps_CPU(self,restant,temps_iter) + if (err==1): + ier=ier+1 + return ier + + #_____________________________________________ + # + # BOUCLE PRINCIPALE DE L'ALGORITHME + #_____________________________________________ + epsilon = 10.*RESI_GLOB_RELA + while((residu > RESI_GLOB_RELA) & (iter 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 + motscle2={} + if CHAM_MATER : motscle2['CHAM_MATER']=CHAM_MATER + if CARA_ELEM : motscle2['CARA_ELEM']=CARA_ELEM + if CHAM_MATER or CARA_ELEM : + if ielas : + motscles['AFFE']=[] + for m in CAS_CHARGE: + motscles['AFFE'].append(_F(MODELE=MODELE, + CHAM_GD=nomchn[iocc], + NOM_CAS=m['NOM_CAS'], + **motscle2) ) + iocc=iocc+1 + else : + motscles['AFFE']=[] + for m in CAS_CHARGE: + motscles['AFFE'].append(_F(MODELE=MODELE, + CHAM_GD=nomchn[iocc], + NUME_MODE=m['MODE_FOURIER'], + TYPE_MODE=m['TYPE_MODE'], + **motscle2) ) + iocc=iocc+1 + else: + if ielas : + motscles['AFFE']=[] + for m in CAS_CHARGE: + motscles['AFFE'].append(_F(MODELE=MODELE, + CHAM_GD=nomchn[iocc], + NOM_CAS=m['NOM_CAS'],) ) + iocc=iocc+1 + else : + motscles['AFFE']=[] + for m in CAS_CHARGE: + motscles['AFFE'].append(_F(MODELE=MODELE, + CHAM_GD=nomchn[iocc], + NUME_MODE=m['MODE_FOURIER'], + TYPE_MODE=m['TYPE_MODE'],) ) + iocc=iocc+1 + + + nomres=CREA_RESU(OPERATION='AFFE',TYPE_RESU=tyresu,NOM_CHAM='DEPL',**motscles) + +##################################################################### +# boucle sur les items de CAS_CHARGE pour CALC_ELEM ete CALC_NO + + iocc=0 + for m in CAS_CHARGE: + iocc=iocc+1 + + if m['OPTION']: + nbel=0 + nbno=0 + liste_el=[] + liste_no=[] + if type(m['OPTION'])==types.StringType: + if m['OPTION'] in ('FORC_NODA','REAC_NODA', + 'EPSI_NOEU_DEPL','SIGM_NOEU_DEPL','EFGE_NOEU_DEPL', + 'EQUI_NOEU_SIGM','EQUI_NOEU_EPSI','FLUX_NOEU_TEMP',): + nbno=nbno+1 + liste_no.append(m['OPTION']) + else: + nbel=nbel+1 + liste_el.append(m['OPTION']) + else: + for opt in m['OPTION']: + if opt in ('FORC_NODA','REAC_NODA', + 'EPSI_NOEU_DEPL','SIGM_NOEU_DEPL','EFGE_NOEU_DEPL', + 'EQUI_NOEU_SIGM','EQUI_NOEU_EPSI','FLUX_NOEU_TEMP',): + nbno=nbno+1 + liste_no.append(opt) + else: + nbel=nbel+1 + liste_el.append(opt) + + lreac=0 + if nbel: + motscles={} + if CHAM_MATER : motscles['CHAM_MATER'] =CHAM_MATER + if CARA_ELEM : motscles['CARA_ELEM'] =CARA_ELEM + if ielas: + motscles['NOM_CAS']=m['NOM_CAS'] + else: + motscles['NUME_MODE']=m['MODE_FOURIER'] + motscles['EXCIT']=[] + if m['CHAR_MECA'] : + for chargt in m['CHAR_MECA'] : motscles['EXCIT'].append(_F(CHARGE=chargt)) + elif m['CHAR_CINE'] : + for chargt in m['CHAR_CINE'] : motscles['EXCIT'].append(_F(CHARGE=chargt)) + if CHAR_MECA_GLOBAL: motscles['EXCIT'].append(_F(CHARGE=CHAR_MECA_GLOBAL)) + elif CHAR_CINE_GLOBAL: motscles['EXCIT'].append(_F(CHARGE=CHAR_CINE_GLOBAL)) + CALC_ELEM(reuse=nomres, + RESULTAT=nomres, + MODELE=MODELE, + NIVE_COUCHE=m['NIVE_COUCHE'], + NUME_COUCHE=m['NUME_COUCHE'], + OPTION=tuple(liste_el), + **motscles) + if nbno: + motscles={} + if CHAM_MATER : motscles['CHAM_MATER'] =CHAM_MATER + if CARA_ELEM : motscles['CARA_ELEM'] =CARA_ELEM + if ielas: + motscles['NOM_CAS']=m['NOM_CAS'] + else: + motscles['NUME_MODE']=m['MODE_FOURIER'] + motscles['EXCIT']=[] + if m['CHAR_MECA'] : + for chargt in m['CHAR_MECA'] : motscles['EXCIT'].append(_F(CHARGE=chargt)) + elif m['CHAR_CINE'] : + for chargt in m['CHAR_CINE'] : motscles['EXCIT'].append(_F(CHARGE=chargt)) + if CHAR_MECA_GLOBAL: motscles['EXCIT'].append(_F(CHARGE=CHAR_MECA_GLOBAL)) + elif CHAR_CINE_GLOBAL: motscles['EXCIT'].append(_F(CHARGE=CHAR_CINE_GLOBAL)) + CALC_NO(reuse=nomres, + RESULTAT=nomres, + MODELE=MODELE, + OPTION=tuple(liste_no), + **motscles) + +# fin de la boucle sur les items de CAS_CHARGE +##################################################################### + return ier + diff --git a/Aster/Cata/cataSTA7/Macro/macro_matr_ajou_ops.py b/Aster/Cata/cataSTA7/Macro/macro_matr_ajou_ops.py new file mode 100644 index 00000000..34595923 --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/macro_matr_ajou_ops.py @@ -0,0 +1,260 @@ +#@ MODIF macro_matr_ajou_ops Macro DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + + +def macro_matr_ajou_ops(self,MAILLAGE,GROUP_MA_FLUIDE,GROUP_MA_INTERF,MODELISATION,MODE_MECA,DEPL_IMPO, + NUME_DDL_GENE,MODELE_GENE,MATR_MASS_AJOU,MATR_AMOR_AJOU,MATR_RIGI_AJOU, + NOEUD_DOUBLE,FLUIDE,DDL_IMPO,DIST_REFE,SOLVEUR,INFO,AVEC_MODE_STAT, + MODE_STAT,MONO_APPUI, + FORC_AJOU,ECOULEMENT,**args): + """ + Ecriture de la macro MACRO_MATR_AJOU + """ + from Accas import _F + import types + ier=0 + + # On importe les definitions des commandes a utiliser dans la macro + DEFI_MATERIAU =self.get_cmd('DEFI_MATERIAU') + AFFE_MATERIAU =self.get_cmd('AFFE_MATERIAU') + AFFE_MODELE =self.get_cmd('AFFE_MODELE') + AFFE_CHAR_THER =self.get_cmd('AFFE_CHAR_THER') + CALC_MATR_AJOU =self.get_cmd('CALC_MATR_AJOU') + THER_LINEAIRE =self.get_cmd('THER_LINEAIRE') + CALC_FORC_AJOU =self.get_cmd('CALC_FORC_AJOU') + + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + if len(FLUIDE)==1 : + print ' tout le domaine fluide specifie dans GROUP_MA_INTERF et GROUP_MA_FLUIDE' + print ' sera affecte par la masse volumique RHO = ',FLUIDE['RHO'] + if FLUIDE['GROUP_MA']!=None : + print ' cas fluide simple : le group_ma dans lequel vous affectez la masse' + print 'volumique RHO doit etre la reunion de GROUP_MA_INTERF et GROUP_MA_FLUIDE.' + else : + for flu in FLUIDE : + if flu['GROUP_MA']==None : + self.cr.fatal(" cas fluides multiples : precisez le GROUP_MA dans lequel vous affectez la masse volumique RHO.") + ier=ier+1 + return ier + + IOCFLU=len(FLUIDE) + +# --------------------------------------------------------------- +# definition du materiau fluide par caracteristique +# thermique equivalente + +# CAS FLUIDE SIMPLE + if IOCFLU==1 : + __NOMMAT=DEFI_MATERIAU( THER = _F( LAMBDA = 1.0, + RHO_CP = FLUIDE[0]['RHO'])) + __NOMCMA=AFFE_MATERIAU( MAILLAGE = MAILLAGE, + AFFE = _F( GROUP_MA = (GROUP_MA_FLUIDE,GROUP_MA_INTERF), + MATER = __NOMMAT), ) + +# --------------------------------------------------------------- +# cas fluides multiples + else : + affmat=[] + for flu in FLUIDE: + __NOMMAT=DEFI_MATERIAU( THER = _F( LAMBDA = 1.0, + RHO_CP = flu['RHO'])) + mfact=_F(GROUP_MA=flu['GROUP_MA'],MATER=__NOMMAT) + affmat.append(mfact) + + __NOMCMA=AFFE_MATERIAU( MAILLAGE = MAILLAGE, + AFFE = affmat ) + +# --------------------------------------------------------------- +# commande AFFE_MODELE modele fluide + __NOMFLU=AFFE_MODELE( MAILLAGE = MAILLAGE, + AFFE = _F( GROUP_MA = (GROUP_MA_FLUIDE,GROUP_MA_INTERF), + MODELISATION = MODELISATION, + PHENOMENE = 'THERMIQUE' ), ) + +# --------------------------------------------------------------- +# commande AFFE_MODELE modele interface + __NOMINT=AFFE_MODELE( MAILLAGE = MAILLAGE, + AFFE = _F( GROUP_MA = GROUP_MA_INTERF, + MODELISATION = MODELISATION, + PHENOMENE = 'THERMIQUE' ), ) + +# --------------------------------------------------------------- +# commande AFFE_CHAR_THER condition de pression imposee +# en un point ou un groupe du fluide + affimp=[] + nflui=0 + for DDL in DDL_IMPO : + if DDL['PRES_FLUIDE']!=None : + nflui=nflui+1 + if DDL['NOEUD'] !=None : mfact=_F(NOEUD =DDL['NOEUD'], TEMP=DDL['PRES_FLUIDE']) + if DDL['GROUP_NO']!=None : mfact=_F(GROUP_NO=DDL['GROUP_NO'],TEMP=DDL['PRES_FLUIDE']) + affimp.append(mfact) + if nflui==0: + self.cr.fatal(" PRES_FLUIDE obligatoire une fois") + ier=ier+1 + return ier + + __CHARGE=AFFE_CHAR_THER( MODELE = __NOMFLU, + TEMP_IMPO = affimp ) + +# --------------------------------------------------------------- +# calcul des masses, rigidites et amortissements ajoutes en theorie +# potentielle +# commande CALC_MATR_AJOU, calcul de la masse ajoutee + + if MATR_MASS_AJOU!=None : + self.DeclareOut('MASSAJ',MATR_MASS_AJOU) + solveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste) + mostcles={} + if NUME_DDL_GENE!=None : mostcles['NUME_DDL_GENE'] =NUME_DDL_GENE + if INFO !=None : mostcles['INFO'] =INFO + if MODE_MECA !=None : mostcles['MODE_MECA'] =MODE_MECA + elif DEPL_IMPO !=None : mostcles['CHAM_NO'] =DEPL_IMPO + elif MODELE_GENE !=None : + mostcles['MODELE_GENE'] =MODELE_GENE + mostcles['AVEC_MODE_STAT']=AVEC_MODE_STAT + mostcles['DIST_REFE'] =DIST_REFE + if NOEUD_DOUBLE !=None : mostcles['NOEUD_DOUBLE'] =NOEUD_DOUBLE + + MASSAJ = CALC_MATR_AJOU(MODELE_FLUIDE = __NOMFLU, + MODELE_INTERFACE = __NOMINT, + CHARGE = __CHARGE, + CHAM_MATER = __NOMCMA, + OPTION = 'MASS_AJOU', + SOLVEUR = solveur, + **mostcles) + +# --------------------------------------------------------------- +# calcul de l amortissement ajoute + if (MATR_AMOR_AJOU!=None ) or (MATR_RIGI_AJOU!=None ): + +# --------------------------------------------------------------- +# on definit un nouveau modele fluide pour calculer +# le potentiel stationnaire - AFFE_MODELE + grma=[GROUP_MA_FLUIDE,] + if ECOULEMENT!=None : + grma.append(ECOULEMENT['GROUP_MA_1']) + grma.append(ECOULEMENT['GROUP_MA_2']) + __NOFLUI=AFFE_MODELE( MAILLAGE = MAILLAGE, + AFFE = _F( GROUP_MA = grma, + MODELISATION = MODELISATION, + PHENOMENE = 'THERMIQUE' ), ) + affimp=[] + for DDL in DDL_IMPO : + if DDL['PRES_SORTIE']!=None : + if DDL['NOEUD'] !=None : mfact=_F(NOEUD =DDL['NOEUD'], TEMP=DDL['PRES_SORTIE']) + if DDL['GROUP_NO']!=None : mfact=_F(GROUP_NO=DDL['GROUP_NO'],TEMP=DDL['PRES_SORTIE']) + affimp.append(mfact) + + affecl=[] + for ECL in ECOULEMENT : + mfact=_F(GROUP_MA=ECL['GROUP_MA_1'],FLUN=ECL['VNOR_1']) + affecl.append(mfact) + mfact=_F(GROUP_MA=ECL['GROUP_MA_2'],FLUN=ECL['VNOR_2']) + affecl.append(mfact) + __CHARG2=AFFE_CHAR_THER( MODELE = __NOFLUI, + TEMP_IMPO = affimp , + FLUX_REP = affecl ) + + __POTEN = THER_LINEAIRE( MODELE = __NOFLUI, + CHAM_MATER = __NOMCMA , + EXCIT = _F( CHARGE = __CHARG2 ) ) + +# --------------------------------------------------------------- +# calcul amortissement proprement dit + if MATR_AMOR_AJOU!=None : + self.DeclareOut('AMORAJ',MATR_AMOR_AJOU) + solveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste) + mostcles={} + if NUME_DDL_GENE!=None : mostcles['NUME_DDL_GENE'] =NUME_DDL_GENE + if INFO !=None : mostcles['INFO'] =INFO + if MODE_MECA !=None : mostcles['MODE_MECA'] =MODE_MECA + elif DEPL_IMPO !=None : mostcles['CHAM_NO'] =DEPL_IMPO + else : + self.cr.fatal(" amortissement ajoute sur modele generalise non encore implante") + ier=ier+1 + return ier + + AMORAJ = CALC_MATR_AJOU(MODELE_FLUIDE = __NOMFLU, + MODELE_INTERFACE = __NOMINT, + CHARGE = __CHARGE, + CHAM_MATER = __NOMCMA, + OPTION = 'AMOR_AJOU', + SOLVEUR = solveur, + POTENTIEL = __POTEN, + **mostcles) + +# --------------------------------------------------------------- +# calcul de la rigidite ajoutee + if MATR_RIGI_AJOU!=None : + self.DeclareOut('RIGIAJ',MATR_RIGI_AJOU) + solveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste) + mostcles={} + if NUME_DDL_GENE!=None : mostcles['NUME_DDL_GENE'] =NUME_DDL_GENE + if INFO !=None : mostcles['INFO'] =INFO + if MODE_MECA !=None : mostcles['MODE_MECA'] =MODE_MECA + elif DEPL_IMPO !=None : mostcles['CHAM_NO'] =DEPL_IMPO + else : + self.cr.fatal(" rigidite ajoutee sur modele generalise non encore implante") + ier=ier+1 + return ier + + RIGIAJ = CALC_MATR_AJOU(MODELE_FLUIDE = __NOMFLU, + MODELE_INTERFACE = __NOMINT, + CHARGE = __CHARGE, + CHAM_MATER = __NOMCMA, + OPTION = 'RIGI_AJOU', + SOLVEUR = solveur, + POTENTIEL = __POTEN, + **mostcles) + +# --------------------------------------------------------------- +# boucle sur le nombre de vecteurs a projeter, commande CALC_FORC_AJOU + if FORC_AJOU!=None : + for FORCAJ in FORC_AJOU: + self.DeclareOut('VECTAJ',FORCAJ['VECTEUR']) + solveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste) + mostcles={} + if NUME_DDL_GENE!=None : mostcles['NUME_DDL_GENE'] =NUME_DDL_GENE + if MODE_MECA !=None : mostcles['MODE_MECA'] =MODE_MECA + elif MODELE_GENE !=None : + mostcles['MODELE_GENE'] =MODELE_GENE + mostcles['AVEC_MODE_STAT']=AVEC_MODE_STAT + mostcles['DIST_REFE'] =DIST_REFE + if NOEUD_DOUBLE !=None : mostcles['NOEUD_DOUBLE'] =NOEUD_DOUBLE + if MODE_STAT !=None : + mostcles['MODE_STAT'] =MODE_STAT + if FORCAJ['NOEUD'] !=None : mostcles['NOEUD'] =FORCAJ['NOEUD'] + if FORCAJ['GROUP_NO'] !=None : mostcles['GROUP_NO'] =FORCAJ['GROUP_NO'] + else : + mostcles['MONO_APPUI'] =MONO_APPUI + + VECTAJ = CALC_FORC_AJOU(DIRECTION = FORCAJ['DIRECTION'], + MODELE_FLUIDE = __NOMFLU, + MODELE_INTERFACE = __NOMINT, + CHARGE = __CHARGE, + CHAM_MATER = __NOMCMA, + SOLVEUR = solveur, + **mostcles) + + + return ier diff --git a/Aster/Cata/cataSTA7/Macro/macro_matr_asse_ops.py b/Aster/Cata/cataSTA7/Macro/macro_matr_asse_ops.py new file mode 100644 index 00000000..063c28a0 --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/macro_matr_asse_ops.py @@ -0,0 +1,153 @@ +#@ MODIF macro_matr_asse_ops Macro DATE 05/07/2005 AUTEUR DURAND C.DURAND +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + + + +def macro_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.set_icmd(1) + + if SOLVEUR: + methode=SOLVEUR['METHODE'] + if methode=='LDLT': + if SOLVEUR['RENUM']: + renum=SOLVEUR['RENUM'] + else: + renum='RCMK' + if renum not in ('SANS','RCMK'): + 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 + + + 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 + + try : motscles['SIEF_ELGA'] =m['SIEF_ELGA'] + except IndexError : pass + + try : motscles['MODE_FOURIER'] =m['MODE_FOURIER'] + except IndexError : pass + + try : motscles['THETA'] =m['THETA'] + except IndexError : pass + + try : motscles['PROPAGATION'] =m['PROPAGATION'] + except IndexError : pass + print motscles + __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 diff --git a/Aster/Cata/cataSTA7/Macro/macro_miss_3d_ops.py b/Aster/Cata/cataSTA7/Macro/macro_miss_3d_ops.py new file mode 100644 index 00000000..042dd411 --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/macro_miss_3d_ops.py @@ -0,0 +1,75 @@ +#@ MODIF macro_miss_3d_ops Macro DATE 05/07/2005 AUTEUR DURAND C.DURAND +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + + + +def macro_miss_3d_ops(self,UNITE_IMPR_ASTER,UNITE_OPTI_MISS, + UNITE_MODELE_SOL,UNITE_RESU_IMPE, + PROJET,REPERTOIRE,OPTION,VERSION,**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 + DEFI_FICHIER =self.get_cmd('DEFI_FICHIER') + EXEC_LOGICIEL =self.get_cmd('EXEC_LOGICIEL') + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + DEFI_FICHIER(ACTION='LIBERER',UNITE=UNITE_IMPR_ASTER) + + import aster + loc_fic=aster.repout() + miss3d=loc_fic+'miss3d' + #miss3d='/home/acbhhcd/MISS3D/V6.4/miss3d.csh' + + if OPTION['TOUT']!=None: + MODUL2='COMPLET' + elif OPTION['MODULE']=='MISS_IMPE': + MODUL2='CALC_IMPE' + elif OPTION['MODULE']=='MISS_EVOL': + MODUL2='MISS_PTAS' + elif OPTION['MODULE']=='PRE_MISS': + MODUL2='GTASTER' + + ETUDE = PROJET + BASE = REPERTOIRE + paste = 'fort.'+str(UNITE_IMPR_ASTER) + popti = 'fort.'+str(UNITE_OPTI_MISS) + pdsol = 'fort.'+str(UNITE_MODELE_SOL) + primp = 'fort.'+str(UNITE_RESU_IMPE) + + 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), + _F(NOM_PARA=VERSION), ), + ) + + return ier diff --git a/Aster/Cata/cataSTA7/Macro/macro_mode_meca_ops.py b/Aster/Cata/cataSTA7/Macro/macro_mode_meca_ops.py new file mode 100644 index 00000000..9134f81b --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/macro_mode_meca_ops.py @@ -0,0 +1,138 @@ +#@ MODIF macro_mode_meca_ops Macro DATE 05/07/2005 AUTEUR DURAND C.DURAND +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + + + +def macro_mode_meca_ops(self,MATR_A,MATR_B,INFO,METHODE,OPTION,CALC_FREQ, + VERI_MODE,NORM_MODE,FILTRE_MODE,IMPRESSION,**args): + """ + Ecriture de la macro MACRO_MODE_MECA + """ + from Accas import _F + ier=0 + + # on protege le contenu du mot cle NORM_MODE pour eviter les confusions + # avec la commande du meme nom + + normode=NORM_MODE + + # On importe les definitions des commandes a utiliser dans la macro + MODE_ITER_SIMULT =self.get_cmd('MODE_ITER_SIMULT') + NORM_MODE =self.get_cmd('NORM_MODE') + IMPR_RESU =self.get_cmd('IMPR_RESU') + EXTR_MODE =self.get_cmd('EXTR_MODE') + DETRUIRE =self.get_cmd('DETRUIRE') + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + nompro=None + iocc=0 + if CALC_FREQ['FREQ']: + nnfreq=len(CALC_FREQ['FREQ']) + else: + lborne=[] + nnfreq= CALC_FREQ['NB_BLOC_FREQ']+1 + zlborn=(CALC_FREQ['FREQ_MAX']-CALC_FREQ['FREQ_MIN'])/(nnfreq-1) + for i in range(0,nnfreq): + lborne.append(CALC_FREQ['FREQ_MIN']+i*zlborn) + + motscles={} + motscles['FILTRE_MODE']=[] + for i in range(0,nnfreq-1): + motscit={} + motscfa={} + if CALC_FREQ['DIM_SOUS_ESPACE']: motscfa['DIM_SOUS_ESPACE']=CALC_FREQ['DIM_SOUS_ESPACE'] + if CALC_FREQ['COEF_DIM_ESPACE']: motscfa['COEF_DIM_ESPACE']=CALC_FREQ['COEF_DIM_ESPACE'] + if CALC_FREQ['FREQ']: + motscfa['FREQ']=(CALC_FREQ['FREQ'][i],CALC_FREQ['FREQ'][i+1]) + else: + motscfa['FREQ']=(lborne[i],lborne[i+1]) + motscit['CALC_FREQ']=_F(OPTION ='BANDE', + SEUIL_FREQ =CALC_FREQ['SEUIL_FREQ'], + NPREC_SOLVEUR =CALC_FREQ['NPREC_SOLVEUR'], + NMAX_ITER_SHIFT =CALC_FREQ['NMAX_ITER_SHIFT'], + PREC_SHIFT =CALC_FREQ['PREC_SHIFT'], + **motscfa) + motscit['VERI_MODE']=_F(STOP_ERREUR=VERI_MODE['STOP_ERREUR'], + SEUIL =VERI_MODE['SEUIL'], + STURM =VERI_MODE['STURM'], + PREC_SHIFT =VERI_MODE['PREC_SHIFT']) + motscit['STOP_FREQ_VIDE']=CALC_FREQ['STOP_FREQ_VIDE'] + + if METHODE=='TRI_DIAG': + if args.has_key('NMAX_ITER_ORTHO'): + motscit['NMAX_ITER_ORTHO'] =args['NMAX_ITER_ORTHO'] + if args.has_key('PREC_ORTHO'): + motscit['PREC_ORTHO'] =args['PREC_ORTHO'] + if args.has_key('PREC_LANCZOS'): + motscit['PREC_LANCZOS'] =args['PREC_LANCZOS'] + if args.has_key('MAX_ITER_QR'): + motscit['NMAX_ITER_QR'] =args['NMAX_ITER_QR'] + elif METHODE=='JACOBI': + if args.has_key('NMAX_ITER_BATHE'): + motscit['NMAX_ITER_BATHE'] =args['NMAX_ITER_BATHE'] + if args.has_key('PREC_BATHE'): + motscit['PREC_BATHE'] =args['PREC_BATHE'] + if args.has_key('NMAX_ITER_JACOBI'): + motscit['NMAX_ITER_JACOBI']=args['NMAX_ITER_JACOBI'] + if args.has_key('PREC_JACOBI'): + motscit['PREC_JACOBI'] =args['PREC_JACOBI'] + elif METHODE=='SORENSEN': + if args.has_key('NMAX_ITER_SOREN'): + motscit['NMAX_ITER_SOREN'] =args['NMAX_ITER_SOREN'] + if args.has_key('PARA_ORTHO_SOREN'): + motscit['PARA_ORTHO_SOREN']=args['PARA_ORTHO_SOREN'] + if args.has_key('PREC_SOREN'): + motscit['PREC_SOREN'] =args['PREC_SOREN'] + + __nomre0=MODE_ITER_SIMULT(MATR_A =MATR_A, + MATR_B =MATR_B, + INFO =INFO, + METHODE =METHODE, + OPTION =OPTION, + **motscit) + + __nomre0=NORM_MODE(reuse =__nomre0, + MASS_INER =normode['MASS_INER'], + MODE =__nomre0, + NORME =normode['NORME'], + INFO =normode['INFO'],) + + if IMPRESSION['TOUT_PARA']=='OUI': + IMPR_RESU(RESU=_F(RESULTAT=__nomre0, + TOUT_ORDRE='OUI', + TOUT_CHAM ='NON', + TOUT_PARA ='OUI',) ) + + if FILTRE_MODE : + motscles['FILTRE_MODE'].append(_F(MODE =__nomre0, + CRIT_EXTR =FILTRE_MODE['CRIT_EXTR'], + SEUIL =FILTRE_MODE['SEUIL'], )) + else: + motscles['FILTRE_MODE'].append(_F(MODE =__nomre0, + TOUT_ORDRE='OUI',) ) + + + motscles['IMPRESSION']=_F(CUMUL =IMPRESSION['CUMUL'], + CRIT_EXTR=IMPRESSION['CRIT_EXTR'],) + self.DeclareOut('nomres',self.sd) + nomres=EXTR_MODE(**motscles) + DETRUIRE(CONCEPT=_F(NOM='__nomre0',),ALARME='NON') + return ier diff --git a/Aster/Cata/cataSTA7/Macro/macro_proj_base_ops.py b/Aster/Cata/cataSTA7/Macro/macro_proj_base_ops.py new file mode 100644 index 00000000..1411934f --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/macro_proj_base_ops.py @@ -0,0 +1,62 @@ +#@ MODIF macro_proj_base_ops Macro DATE 05/07/2005 AUTEUR DURAND C.DURAND +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + + + +def macro_proj_base_ops(self,BASE,NB_VECT,MATR_ASSE_GENE,VECT_ASSE_GENE,PROFIL,**args): + """ + Ecriture de la macro MACRO_PROJ_BASE + """ + ier=0 + # On importe les definitions des commandes a utiliser dans la macro + NUME_DDL_GENE =self.get_cmd('NUME_DDL_GENE') + PROJ_MATR_BASE =self.get_cmd('PROJ_MATR_BASE') + PROJ_VECT_BASE =self.get_cmd('PROJ_VECT_BASE') + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + _num=NUME_DDL_GENE(BASE=BASE,NB_VECT=NB_VECT,STOCKAGE=PROFIL) + if MATR_ASSE_GENE: + for m in MATR_ASSE_GENE: + motscles={} + if m['MATR_ASSE'] : motscles['MATR_ASSE'] =m['MATR_ASSE'] + elif m['MATR_ASSE_GENE']: motscles['MATR_ASSE_GENE']=m['MATR_ASSE_GENE'] + else: + 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) + + if VECT_ASSE_GENE: + _num=NUME_DDL_GENE(BASE=BASE,NB_VECT=NB_VECT,STOCKAGE=PROFIL) + for v in VECT_ASSE_GENE: + motscles={} + if v['VECT_ASSE'] : motscles['VECT_ASSE'] =v['VECT_ASSE'] + elif v['VECT_ASSE_GENE']: motscles['VECT_ASSE_GENE']=v['VECT_ASSE_GENE'] + else: + 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 diff --git a/Aster/Cata/cataSTA7/Macro/reca_algo.py b/Aster/Cata/cataSTA7/Macro/reca_algo.py new file mode 100644 index 00000000..7854c628 --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/reca_algo.py @@ -0,0 +1,267 @@ +#@ MODIF reca_algo Macro DATE 31/01/2006 AUTEUR MCOURTOI M.COURTOIS +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + + + +import Numeric +from Numeric import take, size +import copy,os +import LinearAlgebra +from Cata.cata import INFO_EXEC_ASTER +from Cata.cata import DETRUIRE +from Macro.recal import EXTRACT +from Accas import _F + + +def calcul_gradient(A,erreur): + 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): + e1=LinearAlgebra.eigenvalues(matrix) + e=map(abs,e1) + size=len(e) + e=Numeric.sort(e) + try: + condi=e[size-1]/e[0] + except ZeroDivisionError: + condi=0.0 + return condi,e[size-1],e[0] + +#----------------------------------------- +def norm(matrix): + e=LinearAlgebra.Heigenvalues(matrix) + size=len(e) + e=Numeric.sort(e) + norm=e[size-1] + return norm + +#----------------------------------------- +def lambda_init(matrix): +# Routine qui calcule la valeur initial du parametre +# de regularisation l. + condi,emax,emin=cond(matrix) + id=Numeric.identity(matrix.shape[0]) + if (condi==0.0): + l=1.e-3*norm(matrix) + elif (condi<=10000): + l=1.e-16*norm(matrix) + elif (condi>10000): + l=abs(10000.*emin-emax)/10001. + return l + +#----------------------------------------- + + +def temps_CPU(self,restant_old,temps_iter_old): + # Fonction controlant le temps CPU restant + CPU=INFO_EXEC_ASTER(LISTE_INFO = ("CPU_RESTANT",)) + TEMPS=CPU['CPU_RESTANT',1] + DETRUIRE(CONCEPT=_F(NOM='CPU'),INFO=1) + err=0 + # Indique une execution interactive + if (TEMPS>1.E+9): + return 0.,0.,0 + # Indique une execution en batch + else: + restant=TEMPS + # Initialisation + if (restant_old==0.): + temps_iter=-1. + else: + # Première mesure + if (temps_iter_old==-1.): + temps_iter=(restant_old-restant) + # Mesure courante + else: + temps_iter=(temps_iter_old + (restant_old-restant))/2. + if ((temps_iter>0.96*restant)or(restant<0.)): + err=1 + self.cr.fatal(" Arret de MACR_RECAL par manque de temps CPU") + return restant,temps_iter,err + + + + +def Levenberg_bornes(self,val,Dim,val_init,borne_inf,borne_sup,A,erreur,l,ul_out): + # on resoud le système par contraintes actives: + # Q.dval + s + d =0 + # soumis à : + # borne_inf < dval < borne_sup + # 0 < s + # s.(borne_inf - dval)=0 + # s.(borne_sup - dval)=0 + dim = len(val) + id = Numeric.identity(dim) + # Matrice du système + Q=Numeric.matrixmultiply(Numeric.transpose(A),A) +l*id + # Second membre du système + d=Numeric.matrixmultiply(Numeric.transpose(A),erreur) + # Ens. de liaisons actives + Act=Numeric.array([]) + k=0 + done=0 + # Increment des parametres + dval=Numeric.zeros(dim,Numeric.Float) + while done <1 : + k=k+1 + I=Numeric.ones(dim) + for i in Act: + I[i]=0 + I=Numeric.nonzero(Numeric.greater(I,0)) + s=Numeric.zeros(dim,Numeric.Float) + for i in Act: + # test sur les bornes (on stocke si on est en butée haute ou basse) + if (val[i]+dval[i]>=borne_sup[i]): + dval[i]=borne_sup[i]-val[i] + s[i]=1. + if (val[i]+dval[i]<=borne_inf[i]): + dval[i]=borne_inf[i]-val[i] + s[i]=-1. + if (len(I)!=0): + # xi=-Q(I)-1.(d(I)+Q(I,Act).dval(Act)) + t_QI = take(Q, I) + t_tQI_Act = take(t_QI, Act, 1) + t_adim_Act = take(Dim.adim(dval), Act) + if size(t_tQI_Act) > 0 and size(t_adim_Act) > 0: + smemb = take(d, I) + Numeric.dot(t_tQI_Act, t_adim_Act) + else: + smemb = take(d, I) + xi=-LinearAlgebra.solve_linear_equations(take(t_QI, I, 1), smemb) + for i in Numeric.arange(len(I)): + dval[I[i]]=xi[i]*val_init[I[i]] + if (len(Act)!=0): + # s(Av)=-d(Act)-Q(Act,:).dval + sa=-take(d,Act)-Numeric.dot(take(Q,Act),Dim.adim(dval)) + for i in range(len(Act)): + if (s[Act[i]]==-1.): + s[Act[i]]=-sa[i] + else: + s[Act[i]]=sa[i] + # Nouvel ens. de liaisons actives + Act=Numeric.concatenate((Numeric.nonzero(Numeric.greater(dval,borne_sup-val)),Numeric.nonzero(Numeric.less(dval,borne_inf-val)),Numeric.nonzero(Numeric.greater(s,0.)))) + done=(max(val+dval-borne_sup)<=0)&(min(val+dval-borne_inf)>=0)&(min(s)>=0.0) + # Pour éviter le cyclage + if (k>50): + try: + l=l*2 + Q=Numeric.matrixmultiply(Numeric.transpose(A),A) +l*id + k=0 + except: + res=open(os.getcwd()+'/fort.'+str(ul_out),'a') + res.write('\n\nQ = \n'+Numeric.array2string(Q-l*id,array_output=1,separator=',')) + res.write('\n\nd = '+Numeric.array2string(d,array_output=1,separator=',')) + res.write('\n\nval = '+Numeric.array2string(val,array_output=1,separator=',')) + res.write('\n\nval_ini= '+Numeric.array2string(val_init,array_output=1,separator=',')) + res.write('\n\nborne_inf= '+Numeric.array2string(borne_inf,array_output=1,separator=',')) + res.write('\n\nborne_sup= '+Numeric.array2string(borne_sup,array_output=1,separator=',')) + self.cr.fatal(" Erreur dans l'algorithme de bornes de MACR_RECAL") + return + newval=copy.copy(val+dval) + return newval,s,l,Act + + +def actualise_lambda(l,val,new_val,A,erreur,new_J,old_J): + dim = len(val) + id = Numeric.identity(dim) + # Matrice du système + Q=Numeric.matrixmultiply(Numeric.transpose(A),A) +l*id + # Second membre du système + d=Numeric.matrixmultiply(Numeric.transpose(A),erreur) + old_Q=old_J + new_Q=old_J+0.5*Numeric.dot(Numeric.transpose(new_val-val),Numeric.dot(Q,new_val-val))+Numeric.dot(Numeric.transpose(new_val-val),d) + # Ratio de la décroissance réelle et de l'approx. quad. + try: + R=(old_J-new_J)/(old_Q-new_Q) + if (R<0.25): + l = l*10. + elif (R>0.75): + l = l/15. + except ZeroDivisionError: + if (old_J>new_J): + l = l*10. + else: + l = l/10. + return l + + +def test_convergence(gradient_init,erreur,A,s): + gradient = calcul_gradient(A,erreur)+s + 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 au Hessien +# A = sensibilite +# At*A = hessien +def calcul_etat_final(para,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) + sensible=Numeric.nonzero(Numeric.greater(abs(valeurs_propres/max(abs(valeurs_propres))),1.E-1)) + insensible=Numeric.nonzero(Numeric.less(abs(valeurs_propres/max(abs(valeurs_propres))),1.E-2)) + Messg.affiche_calcul_etat_final(para,Hessien,valeurs_propres,vecteurs_propres,sensible,insensible,ul_out) + + + + + diff --git a/Aster/Cata/cataSTA7/Macro/reca_interp.py b/Aster/Cata/cataSTA7/Macro/reca_interp.py new file mode 100644 index 00000000..00ad62d2 --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/reca_interp.py @@ -0,0 +1,180 @@ +#@ MODIF reca_interp Macro DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +import os +import Numeric +import Macro +from Macro.recal import calcul_F + +#=========================================================================================== + + +# INTERPOLATION, CALCUL DE SENSIBILITE, ETC.... + +#-------------------------------------- +class Sim_exp : + + def __init__ (self,result_exp,poids) : + self.resu_exp = result_exp + self.poids = poids + +# 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,poids) : #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] = poids*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],self.poids[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],self.poids[i]) + L_erreur.append(err) + #on transforme L_erreur en tab num + return L_erreur + + def calcul_J(self,L_erreur): + L_J = [] + for i in range(len(L_erreur)): + total = 0 + for j in range(len(L_erreur[i])): + total = total + L_erreur[i][j]**2 + L_J.append(total) + return L_J + + def norme_J(self,L_J_init,L_J,unite_resu): + #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('\n Problème de division par zéro dans la normalisation de la fonctionnelle.') + fic.write('\n Une des valeurs de la fonctionnelle initiale est nulle ou inférieure à la précision machine :'+ str(L_J_init)) + fic.close() + self.cr.fatal(" Problème de division par zéro dans la normalisation de la fonctionnelle.\nUne des valeurs de la fonctionnelle initiale est nulle ou inférieure à la précision machine :"+ str(L_J_init)) + return + + 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('\nCalcul 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('\n Probleme de division par zéro dans le calcul de la matrice de sensiblité') + fic.write('\n Le parametre '+para[k]+'est nul ou plus petit que la précision machine') + fic.close() + self.cr.fatal(" Probleme de division par zéro dans le calcul de la matrice de sensiblité.\n Le parametre "+para[k]+"est nul ou plus petit que la précision machine") + return + #on construit la matrice de sensiblité sous forme d'un tab num + dim =[] + for i in range(len(L_A)): + dim.append(len(L_A[i])) + dim_totale = Numeric.sum(dim) + a=0 + A = Numeric.zeros((dim_totale,len(val)),Numeric.Float) + for n in range(len(L_A)): + for k in range(len(val)): + for i in range(dim[n]): + A[i+a][k] = L_A[n][i,k] + a=dim[n] + del(L_A) #on ecrase tout ce qu'il y a dans L_A puisqu'on n'en a plus besoin + return A + + + diff --git a/Aster/Cata/cataSTA7/Macro/reca_message.py b/Aster/Cata/cataSTA7/Macro/reca_message.py new file mode 100644 index 00000000..0691b785 --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/reca_message.py @@ -0,0 +1,115 @@ +#@ MODIF reca_message Macro DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +import os,Numeric + +#=========================================================================================== + + +# 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(' MACR_RECAL V1.1 \n\n\n') + res.close() + + + def affiche_result_iter(self,iter,J,val,residu,Act,ul_out): + res=open(os.getcwd()+'/fort.'+str(ul_out),'a') + res.write('\n=======================================================\n') + res.write('Iteration '+str(iter)+' :\n') + res.write('\n=> Fonctionnelle = '+str(J)) + res.write('\n=> Résidu = '+str(residu)) + res.write('\n=> Paramètres = ') + for i in range(len(val)): + res.write('\n '+ self.nom_para[i]+' = '+str(val[i]) ) + if (len(Act)!=0): + if (len(Act)==1): + res.write('\n\n Le paramètre ') + else: + res.write('\n\n Les paramètres ') + for i in Act: + res.write(self.nom_para[i]+' ') + if (len(Act)==1): + res.write('\n est en butée sur un bord de leur domaine admissible.') + else: + res.write('\n sont en butée sur un bord de leur domaine admissible.') + res.write('\n=======================================================\n\n') + res.close() + + def affiche_etat_final_convergence(self,iter,max_iter,prec,residu,Act,ul_out): + res=open(os.getcwd()+'/fort.'+str(ul_out),'a') + if ((iter < max_iter) or (residu < prec)): + res.write('\n=======================================================\n') + res.write(' CONVERGENCE ATTEINTE ') + if (len(Act)!=0): + res.write("\n\n ATTENTION : L'OPTIMUM EST ATTEINT AVEC ") + res.write("\n DES PARAMETRES EN BUTEE SUR LE BORD ") + res.write("\n DU DOMAINE ADMISSIBLE ") + res.write('\n=======================================================\n') + res.close() + else: + res.write("\n=======================================================\n") + res.write(' CONVERGENCE NON ATTEINTE ') + res.write("\n Le nombre maximal d'itération ("+str(max_iter)+") a été dépassé") + res.write('\n=======================================================\n') + res.close() + + def affiche_calcul_etat_final(self,para,Hessien,valeurs_propres,vecteurs_propres,sensible,insensible,ul_out): + res=open(os.getcwd()+'/fort.'+str(ul_out),'a') + res.write('\n\nValeurs propres du Hessien:\n') + res.write(str( valeurs_propres)) + res.write('\n\nVecteurs propres associés:\n') + res.write(str( vecteurs_propres)) + res.write('\n\n --------') + res.write('\n\nOn peut en déduire que :') + # Paramètres sensibles + if (len(sensible)!=0): + res.write('\n\nLes combinaisons suivantes de paramètres sont prépondérantes pour votre calcul :\n') + k=0 + for i in sensible: + k=k+1 + colonne=vecteurs_propres[:,i] + numero=Numeric.nonzero(Numeric.greater(abs(colonne/max(abs(colonne))),1.E-1)) + res.write('\n '+str(k)+') ') + for j in numero: + res.write('%+3.1E ' %colonne[j]+'* '+para[j]+' ') + res.write('\n associée à la valeur propre %3.1E \n' %valeurs_propres[i]) + # Paramètres insensibles + if (len(insensible)!=0): + res.write('\n\nLes combinaisons suivantes de paramètres sont insensibles pour votre calcul :\n') + k=0 + for i in insensible: + k=k+1 + colonne=vecteurs_propres[:,i] + numero=Numeric.nonzero(Numeric.greater(abs(colonne/max(abs(colonne))),1.E-1)) + res.write('\n '+str(k)+') ') + for j in numero: + res.write('%+3.1E ' %colonne[j]+'* '+para[j]+' ') + res.write('\n associée à la valeur propre %3.1E \n' %valeurs_propres[i]) + res.close() + + + diff --git a/Aster/Cata/cataSTA7/Macro/recal.py b/Aster/Cata/cataSTA7/Macro/recal.py new file mode 100644 index 00000000..23781944 --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/recal.py @@ -0,0 +1,379 @@ +#@ MODIF recal Macro DATE 11/07/2005 AUTEUR PABHHHH N.TARDIEU +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + + + + +import string +import copy +import Numeric +import types +import Gnuplot +import Cata +from Cata.cata import INCLUDE,DETRUIRE +from Accas import _F +from Utilitai.extract import EXTRACT + +import os + + +#_____________________________________________ +# +# DIVERS UTILITAIRES POUR LA MACRO +#_____________________________________________ + + +# 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.nom in ('INCLUDE','MACR_RECAL',) : + list_concepts=list(mes_concepts(list_concepts=list_concepts,base=e)) + elif (e.sd != None) and (e.parent.nom=='INCLUDE') : + nom_concept=e.sd.get_name() + if not(nom_concept in list_concepts): + list_concepts.append( nom_concept ) + return tuple(list_concepts) + + +def detr_concepts(self): + liste_concepts=mes_concepts(base=self.parent) + for e in liste_concepts: + nom = string.strip(e) + DETRUIRE( CONCEPT =self.g_context['_F'](NOM = nom),INFO=1) + if self.jdc.g_context.has_key(nom) : del self.jdc.g_context[nom] + del(liste_concepts) + + +def calcul_F(self,UL,para,val,reponses): + fic = open('fort.'+str(UL),'r') + #On stocke le contenu de fort.UL dans la variable fichier qui est un string + fichier=fic.read() + #On stocke le contenu initial de fort.UL dans la variable fichiersauv + fichiersauv=copy.copy(fichier) + fic.close() + + #Fichier_Resu est une liste ou l'on va stocker le fichier modifié + #idée générale :on délimite des 'blocs' dans fichier + #on modifie ou non ces blocs suivant les besoins + #on ajoute ces blocs dans la liste Fichier_Resu + Fichier_Resu=[] + + try: + #cherche l'indice de DEBUT() + index_deb=string.index(fichier,'DEBUT(') + while( fichier[index_deb]!='\n'): + index_deb=index_deb+1 + #on restreind fichier en enlevant 'DEBUT();' + fichier = fichier[index_deb+1:] + except : + #on va dans l'except si on a modifié le fichier au moins une fois + pass + + try: + #cherche l'indice de FIN() + index_fin = string.index(fichier,'FIN(') + #on restreind fichier en enlevant 'FIN();' + fichier = fichier[:index_fin] + except : pass + #-------------------------------------------------------------------------------- + #on cherche à délimiter le bloc des parametres dans le fichier + #Tout d'abord on cherche les indices d'apparition des paras dans le fichier + #en effet l'utilisateur n'est pas obligé de rentrer les paras dans optimise + #avec le meme ordre de son fichier de commande + index_para = Numeric.zeros(len(para)) + for i in range(len(para)): + index_para[i] = string.index(fichier,para[i]) + #On range les indices par ordre croissant afin de déterminer + #les indice_max et indice_min + index_para = Numeric.sort(index_para) + index_first_para = index_para[0] + index_last_para = index_para[len(index_para)-1] + + + #on va délimiter les blocs intermédiaires entre chaque para "utiles" à l'optimsation + bloc_inter ='\n' + for i in range(len(para)-1): + j = index_para[i] + k = index_para[i+1] + while(fichier[j]!= '\n'): + j=j+1 + bloc_inter=bloc_inter + fichier[j:k] + '\n' + + #on veut se placer sur le premier retour chariot que l'on trouve sur la ligne du dernier para + i = index_last_para + while(fichier[i] != '\n'): + i = i + 1 + index_last_para = i + #on délimite les blocs suivants: + pre_bloc = fichier[:index_first_para] #fichier avant premier parametre + post_bloc = fichier[ index_last_para+ 1:] #fichier après dernier parametre + + #on ajoute dans L tous ce qui est avant le premier paramètre + Fichier_Resu.append(pre_bloc) + Fichier_Resu.append('\n') + #On ajoute la nouvelle valeur des parametres + dim_para=len(para) + for j in range(dim_para): + Fichier_Resu.append(para[j]+'='+str(val[j]) + ';' + '\n') + #On ajoute à Fichier_Resu tous ce qui est entre les parametres + Fichier_Resu.append(bloc_inter) + + Fichier_Resu.append(post_bloc) + #-------------------------------------------------------------------------------- + #on va ajouter la fonction EXTRACT + #et on stocke les réponses calculées dans la liste Lrep + #qui va etre retournée par la fonction calcul_F + self.g_context['Lrep'] = [] + Fichier_Resu.append('Lrep=[]'+'\n') + for i in range(len(reponses)): + Fichier_Resu.append('_F_ = EXTRACT('+str(reponses[i][0])+','+"'"+str(reponses[i][1])+"'"+','+"'"+str(reponses[i][2])+"'"+')'+'\n') + Fichier_Resu.append('Lrep.append(_F_)'+'\n') + + #ouverture du fichier fort.3 et mise a jour de celui ci + x=open('fort.'+str(UL),'w') + x.writelines('from Accas import _F \nfrom Cata.cata import * \n') + x.writelines(Fichier_Resu) + x.close() + del(Fichier_Resu) + del(pre_bloc) + del(post_bloc) + del(fichier) + + INCLUDE(UNITE = UL) + detr_concepts(self) + # on remet le fichier dans son etat initial + x=open('fort.'+str(UL),'w') + x.writelines(fichiersauv) + x.close() + return self.g_context['Lrep'] + +#_____________________________________________ +# +# IMPRESSIONS GRAPHIQUES +#_____________________________________________ + +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="\nCette entrée: " +str(X)+" n'est pas une liste valide" + if(code_erreur == 1 ): + if type(X) is not types.StringType: + txt="\nCette entrée: " +str(X)+" n'est pas une chaine de caractère valide ; Veuillez la ressaisir en lui appliquant le type char de python" + if(code_erreur == 2 ): + if type(X) is not types.FloatType: + txt="\nCette entrée: " +str(X)+" n'est pas une valeur float valide ; Veuillez la ressaisir en lui appliquant le type float de python" + return txt + + +def erreur_dimension(PARAMETRES,REPONSES): +#On verifie que la dimension de chaque sous_liste de parametre est 4 +#et que la dimension de chaque sous_liste de REPONSES est 3 + txt="" + for i in range(len(PARAMETRES)): + if (len(PARAMETRES[i]) != 4): + txt=txt + "\nLa sous-liste de la variable paramètre numéro " + str(i+1)+" n'est pas de longueur 4" + for i in range(len(REPONSES)): + if (len(REPONSES[i]) != 3): + txt=txt + "\nLa sous-liste de la variable réponse numéro " + str(i+1)+" n'est pas de longueur 3" + return txt + + +def compare__dim_rep__dim_RESU_EXP(REPONSES,RESU_EXP): + # X et Y sont deux arguments qui doivent avoir la meme dimension + # pour éviter l'arret du programme + txt="" + if( len(REPONSES) != len(RESU_EXP)): + txt="\nVous avez entré " +str(len(REPONSES))+ " réponses et "+str(len(RESU_EXP))+ " expériences ; On doit avoir autant de réponses que de résultats expérimentaux" + return txt + +def compare__dim_poids__dim_RESU_EXP(POIDS,RESU_EXP): + # POIDS et Y sont deux arguments qui doivent avoir la meme dimension + # pour éviter l'arret du programme + txt="" + if( len(POIDS) != len(RESU_EXP)): + txt="\nVous avez entré " +str(len(POIDS))+ " poids et "+str(len(RESU_EXP))+ " expériences ; On doit avoir autant de poids que de résultats expérimentaux" + return txt + + +def verif_fichier(UL,PARAMETRES,REPONSES): +#On verifie les occurences des noms des PARAMETRES et REPONSES +#dans le fichier de commande ASTER + txt="" + fichier = open('fort.'+str(UL),'r') + fic=fichier.read() + for i in range(len(PARAMETRES)): + if((string.find(fic,PARAMETRES[i][0])==-1) or ((string.find(fic,PARAMETRES[i][0]+'=')==-1) and (string.find(fic,PARAMETRES[i][0]+' ')==-1))): + txt=txt + "\nLe paramètre "+PARAMETRES[i][0]+" que vous avez entré pour la phase d'optimisation n'a pas été trouvé dans votre fichier de commandes ASTER" + for i in range(len(REPONSES)): + if((string.find(fic,REPONSES[i][0])==-1) or ((string.find(fic,REPONSES[i][0]+'=')==-1) and (string.find(fic,REPONSES[i][0]+' ')==-1))): + txt=txt + "\nLa réponse "+REPONSES[i][0]+" que vous avez entrée pour la phase d'optimisation n'a pas été trouvée dans votre fichier de commandes ASTER" + return txt + + +def verif_valeurs_des_PARAMETRES(PARAMETRES): +#On verifie que pour chaque PARAMETRES de l'optimisation +# les valeurs entrées par l'utilisateur sont telles que : +# val_infPARAMETRES[i][3]): + txt=txt + "\nLa borne inférieure "+str(PARAMETRES[i][2])+" de "+PARAMETRES[i][0]+ "est plus grande que sa borne supérieure"+str(PARAMETRES[i][3]) + #verification de l'encadrement de val_init + for i in range(len(PARAMETRES)): + if( (PARAMETRES[i][1] < PARAMETRES[i][2]) or (PARAMETRES[i][1] > PARAMETRES[i][3])): + txt=txt + "\nLa valeur initiale "+str(PARAMETRES[i][1])+" de "+PARAMETRES[i][0]+ " n'est pas dans l'intervalle [borne_inf,born_inf]=["+str(PARAMETRES[i][2])+" , "+str(PARAMETRES[i][3])+"]" + #verification que val_init !=0 + for i in range(len(PARAMETRES)): + if (PARAMETRES[i][1] == 0. ): + txt=txt + "\nProblème de valeurs initiales pour le paramètre "+PARAMETRES[i][0]+" : ne pas donner de valeur initiale nulle mais un ordre de grandeur." + #verification que borne_sup !=0 + for i in range(len(PARAMETRES)): + if (PARAMETRES[i][3] == 0. ): + txt=txt + "\nProblème de borne supérieure pour le paramètre "+PARAMETRES[i][0]+" : ne pas donner de valeur strictement nulle." + #verification que borne_inf !=0 + for i in range(len(PARAMETRES)): + if (PARAMETRES[i][2] == 0. ): + txt=txt + "\nProblème de borne inférieure pour le paramètre "+PARAMETRES[i][0]+" : ne pas donner de valeur strictement nulle." + return txt + + +def verif_UNITE(GRAPHIQUE,UNITE_RESU): + # On vérifie que les unités de résultat et + # de graphique sont différentes + txt="" + GRAPHE_UL_OUT=GRAPHIQUE['UNITE'] + if (GRAPHE_UL_OUT==UNITE_RESU): + txt=txt + "\nLes unités logiques des fichiers de résultats graphiques et de résultats d'optimisation sont les memes." + return txt + + + +def gestion(UL,PARAMETRES,REPONSES,RESU_EXP,POIDS,GRAPHIQUE,UNITE_RESU): + #Cette methode va utiliser les methodes de cette classe declarée ci_dessus + #test est un boolean: test=0 -> pas d'erreur + # test=1 -> erreur détectée + + texte="" + #On vérifie d'abord si PARAMETRES, REPONSES, RESU_EXP sont bien des listes au sens python + #test de PARAMETRES + texte = texte + erreur_de_type(0,PARAMETRES) + #test de REPONSES + texte = texte + erreur_de_type(0,REPONSES) + #test de RESU_EXP + texte = texte + erreur_de_type(0,RESU_EXP) + + #On vérifie si chaque sous liste de PARAMETRES, REPONSES, possède le type adéquat + #test des sous_listes de PARAMETRES + for i in range(len(PARAMETRES)): + texte = texte + erreur_de_type(0,PARAMETRES[i]) + #test des sous_listes de REPONSES + for i in range(len(REPONSES)): + texte = texte + erreur_de_type(0,REPONSES[i]) + + #On verifie si la dimension de chaque sous-liste de : PARAMETRES, REPONSES + #il faut que:la dimension d'une sous-liste de PARAMETRES = 4 + #et que la dimension d'une sous liste de REPONSES = 3 + texte = texte + erreur_dimension(PARAMETRES,REPONSES) + + #on verifie que l'on a autant de réponses que de résultats expérimentaux + texte = texte + compare__dim_rep__dim_RESU_EXP(REPONSES,RESU_EXP) + #on verifie que l'on a autant de poids que de résultats expérimentaux + texte = texte + compare__dim_poids__dim_RESU_EXP(POIDS,RESU_EXP) + + #on verifie les types des arguments de chaque sous liste de PARAMETRES et REPONSES + #verification du type stringet type float des arguments de PARAMETRES + for i in range(len(PARAMETRES)): + texte = texte + erreur_de_type(1,PARAMETRES[i][0]) + for k in [1,2,3]: + texte = texte + erreur_de_type(2,PARAMETRES[i][k]) + + #verification du type string pour les arguments de REPONSES + for i in range(len(REPONSES)): + for j in range(len(REPONSES[i])): + texte = texte + erreur_de_type(1,REPONSES[i][j]) + + #verification du fichier de commndes ASTER + texte = texte + verif_fichier(UL,PARAMETRES,REPONSES) + + #verifiaction des valeurs des PARAMETRES entrées par l'utilisteur + texte = texte + verif_valeurs_des_PARAMETRES(PARAMETRES) + + #verifiaction des unités logiques renseignées par l'utilisateur + texte = texte + verif_UNITE(GRAPHIQUE,UNITE_RESU) + + return texte + + diff --git a/Aster/Cata/cataSTA7/Macro/stanley_ops.py b/Aster/Cata/cataSTA7/Macro/stanley_ops.py new file mode 100644 index 00000000..1e4c9031 --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/stanley_ops.py @@ -0,0 +1,75 @@ +#@ MODIF stanley_ops Macro DATE 09/11/2005 AUTEUR ASSIRE A.ASSIRE +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + + + +def stanley_ops(self,RESULTAT,MODELE,CHAM_MATER,CARA_ELEM,DISPLAY,**args): + + """ + Importation et lancement de Stanley + """ + + import os,string + import aster + from Accas import _F + from Noyau.N_utils import AsType + from Utilitai.Utmess import UTMESS + + ier=0 + + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + # Redefinition eventuelle du DISPLAY + if DISPLAY: + UTMESS('I','STANLEY', 'Redefinition du DISPLAY vers : ' + DISPLAY) + os.environ['DISPLAY'] = DISPLAY + + # On ne lance Stanley que si la variable DISPLAY est définie + if os.environ.has_key('DISPLAY'): + + import Stanley + from Stanley import stanley + + if (RESULTAT and MODELE and CHAM_MATER): + _MAIL = aster.getvectjev( string.ljust(MODELE.nom,8) + '.MODELE .NOMA ' ) + _MAIL = string.strip(_MAIL[0]) + MAILLAGE = self.jdc.g_context[_MAIL] + if CARA_ELEM: + stanley.STANLEY(RESULTAT,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM) + else: + stanley.STANLEY(RESULTAT,MAILLAGE,MODELE,CHAM_MATER,None) + else: + stanley.PRE_STANLEY() + + else: + UTMESS('A','STANLEY', + """Aucune variable d'environnement DISPLAY définie ! + STANLEY ne pourra pas fonctionner. On l'ignore. + + Si vous etes en Interactif, cochez le bouton Suivi Interactif + dans ASTK. + + Vous pouvez également préciser votre DISPLAY dans les arguments + de la commande STANLEY : + + STANLEY(DISPLAY='adresse_ip:0.0');""") + + return ier diff --git a/Aster/Cata/cataSTA7/Macro/test_fichier_ops.py b/Aster/Cata/cataSTA7/Macro/test_fichier_ops.py new file mode 100644 index 00000000..e5107f5c --- /dev/null +++ b/Aster/Cata/cataSTA7/Macro/test_fichier_ops.py @@ -0,0 +1,279 @@ +#@ MODIF test_fichier_ops Macro DATE 24/05/2006 AUTEUR CIBHHLV L.VIVAN +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +import sys +import os.path +import re +from math import floor, log10 +from types import StringType +import md5 + +#------------------------------------------------------------------------------- +def test_fichier_ops(self, UNITE, FICHIER, NB_CHIFFRE, EPSILON, VALE_K, INFO, **args): + """ + Macro TEST_FICHIER permettant de tester la non-regression d'un fichier + 'a une tolerance' pres pour les nombres reels en calculant + le md5sum. + """ + ier = 0 + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + # On importe les definitions des commandes a utiliser dans la macro + # Le nom de la variable doit etre obligatoirement le nom de la commande + INFO_EXEC_ASTER = self.get_cmd('INFO_EXEC_ASTER') + DETRUIRE = self.get_cmd('DETRUIRE') + CREA_TABLE = self.get_cmd('CREA_TABLE') + TEST_TABLE = self.get_cmd('TEST_TABLE') + + import aster + from Accas import _F + from Macro.test_fichier_ops import md5file + from Utilitai.Utmess import UTMESS + + # vérifie la syntaxe des expressions régulières fournies + l_regexp = [] + if args['EXPR_IGNORE']: + if type(args['EXPR_IGNORE']) is StringType: + lexp = [args['EXPR_IGNORE']] + else: + lexp = args['EXPR_IGNORE'] + for exp in lexp: + try: + obj = re.compile(exp) + except re.error, s: + UTMESS('F', 'TEST_FICHIER', + ' %s pour %s' % (str(s), repr(exp))) + else: + l_regexp.append(exp) + + is_ok = 0 + + # vérifier que le fichier a été fermé + tinfo__ = INFO_EXEC_ASTER(LISTE_INFO='ETAT_UNITE', FICHIER=FICHIER) + + if tinfo__['ETAT_UNITE', 1].find('OUVERT')>-1: + UTMESS('A', 'TEST_FICHIER', + "LE FICHIER N'A PAS ETE FERME :\n%s" % FICHIER) + + # fichier correctement fermé + else: + # calcule le md5sum du fichier + ier, mdsum = md5file(FICHIER, NB_CHIFFRE, EPSILON, l_regexp, INFO) + if ier != 0: + if ier == 4: + texte_erreur = 'Fichier inexistant : '+FICHIER + else: + texte_erreur = 'Erreur dans md5file, code retour = '+str(ier) + texte_erreur = ' '+texte_erreur + # aujourd'hui, je ne sais pas déclencher autre chose que ... + self.cr.fatal(texte_erreur) + return ier + + # comparaison a la reference + if INFO > 0 : + # aster.affiche('MESSAGE', ' %-20s : %32s\n' % ('REFERENCE', VALE_K)) + print ' %-20s : %32s' % ('REFERENCE',VALE_K) + print + + if mdsum == VALE_K: + is_ok = 1 + + # produit le TEST_TABLE + tab1__ = CREA_TABLE(LISTE=(_F(PARA='TEST', + TYPE_K='K8', + LISTE_K='VALEUR ',), + _F(PARA='BOOLEEN', + LISTE_I=is_ok,),),) + if args['REFERENCE'] == 'NON_REGRESSION': + TEST_TABLE(TABLE=tab1__, + FILTRE=_F(NOM_PARA='TEST', + VALE_K='VALEUR ',), + NOM_PARA='BOOLEEN', + VALE_I=1, + PRECISION=1.e-3, + CRITERE='ABSOLU', + REFERENCE=args['REFERENCE'], + VERSION=args['VERSION'],) + else: + TEST_TABLE(TABLE=tab1__, + FILTRE=_F(NOM_PARA='TEST', + VALE_K='VALEUR ',), + NOM_PARA='BOOLEEN', + VALE_I=1, + PRECISION=1.e-3, + CRITERE='ABSOLU', + REFERENCE=args['REFERENCE'],) + + DETRUIRE(CONCEPT=_F(NOM=('tinfo__','tab1__'),), + ALARME='NON',INFO=1,) + return ier + + +#------------------------------------------------------------------------------- +def sign(x): + return int(x/abs(x)) + +def _round(x, n, exp): + v = x * 10**(-exp+n) + val = int(v + sign(x)*0.4999) + return val + +def entier_ini(x, nbch, exp=None): + #if exp is None: + #exp = int(floor(log10(abs(x)))) + val = _round(x, nbch-1, exp) + return val, exp-nbch+1 + +def entier_triple(x, nbch, exp_epsi): + #if abs(x) <= 10**exp_epsi: + #return '0' + y = _round(x * 10**(-exp_epsi), 0, 0) * 10**exp_epsi + exp = int(floor(log10(abs(y)))) + z1, e1 = entier_ini(y, nbch+2, exp) + z2, e2 = entier_ini(z1 * 10**e1, nbch+1, exp) + z3, e3 = entier_ini(z2 * 10**e2, nbch, exp) + return '%sE%d' % (z3, e3) + +#------------------------------------------------------------------------------- +def md5file(fich, nbch, epsi, + regexp_ignore=[], info=0, output=None, format_func=entier_triple): + """ + Cette methode retourne le md5sum d'un fichier en arrondissant les nombres + reels a la valeur significative. + IN : + fich : nom du fichier + nbch : nombre de decimales significatives + epsi : valeur en deca de laquelle on prend 0 + regexp_ignore : liste d'expressions régulières permettant d'ignorer + certaines lignes + output : pour rediriger l'interprétation du fichier (INFO=2) + dans le fichier de nom `output`, + info : on affiche le résumé si info>0 + format_func : on peut préciser une autre fonction pour formatter + les réels... + OUT : + code retour : 0 si ok, >0 sinon + md5sum + + NE PAS AJOUTER D'IMPORT QUI RENDRAIT CETTE FONCTION + INUTILISABLE EN DEHORS DE CODE_ASTER. + """ + if output != None: + try: + sys.stdout = open(output, 'w') + except IOError, msg: + print "Erreur d'écriture sur %s : %s" % (output, msg) + + # 1 Mo 10 Mo 100 Mo + # v0 2.6 s 20.4 s 196.6 s + # v1 2.0 s 10.3 s 94.9 s (pas de distinction entier/reel) + # remplacer le try/except par if re.search(...), 80% plus lent + # v2 10.7 s + if not os.path.isfile(fich): + return 4, '' + f = open(fich,'r') + m = md5.new() + exp_epsi = int(floor(log10(abs(epsi)))) + i = 0 + for ligne in f: + i = i+1 + if info >= 2: + print 'LIGNE', i, + keep = True + for exp in regexp_ignore: + if re.search(exp, ligne): + keep = False + if info >= 2: + print ' >>>>>>>>>> IGNOREE <<<<<<<<<<', + break + if keep: + # découpe des nombres collés : 1.34E-142-1.233D+09 + ligne = re.sub('([0-9]+)\-', '\g<1> -', ligne) + # conversion des DOUBLE fortran en 'E' + ligne = re.sub('([0-9]+)[dD]([\-\+]{0,1}[0-9]+)', '\g<1>E\g<2>', ligne) + r = ligne.split() + for x in r: + try: + xv = float(x) + if abs(xv)= 2: + print (' %'+str(nbch+7)+'s') % s, + m.update(s) + if info >= 2: + print + f.close() + md5sum = m.hexdigest() + + affich_resu = True + if info >= 1: + while affich_resu: + form = ' %-20s : %32s' + print form % ('Fichier', fich) + print form % ('Nombre de lignes', str(i)) + #print form % ('Format des reels',format_float) + print form % ('Nombre de chiffres', str(nbch)) + print form % ('Epsilon', str(epsi)) + print form % ('md5sum', md5sum) + if output == None: + affich_resu = False + else: + sys.stdout = sys.__stdout__ + output = None + return 0, md5sum + + +#------------------------------------------------------------------------------- +if __name__ == '__main__': + from optparse import OptionParser, OptionGroup + + p = OptionParser(usage='usage: %s a_tester [options]' % sys.argv[0]) + p.add_option('-n', '--nbch', + action='store', dest='nbch', type='int', default=6, + help='nombre de chiffres significatifs') + p.add_option('-e', '--epsilon', + action='store', dest='epsi', type='float', default=1.e-14, + help='epsilon en dessous duquel on considère les nombres nuls') + p.add_option('--expr_ignore', + action='store', dest='exp', type='string', + help='expression régulière à ignorer') + p.add_option('-o', '--output', + action='store', dest='output', type='string', default='output.txt', + help='fichier de sortie') + opts, args = p.parse_args() + + if len(args)<1: + p.print_usage() + sys.exit(1) + if opts.exp is None: + exp = [] + else: + exp = [opts.exp] + + print 'Lignes retenues dans %s' % opts.output + iret = md5file(args[0], opts.nbch, opts.epsi, + regexp_ignore=exp, info=2, output=opts.output) + diff --git a/Aster/Cata/cataSTA7/__init__.py b/Aster/Cata/cataSTA7/__init__.py new file mode 100644 index 00000000..654fb130 --- /dev/null +++ b/Aster/Cata/cataSTA7/__init__.py @@ -0,0 +1,6 @@ +import os,sys +import prefs +import sys +rep_macro = os.path.join(prefs.REPINI,'Cata/cataSTA7') +sys.path.insert(0,rep_macro) +from cata import * diff --git a/Aster/Cata/cataSTA7/cata.py b/Aster/Cata/cataSTA7/cata.py new file mode 100644 index 00000000..837b4826 --- /dev/null +++ b/Aster/Cata/cataSTA7/cata.py @@ -0,0 +1,21831 @@ +#& MODIF ENTETE DATE 31/01/2006 AUTEUR MCOURTOI M.COURTOIS +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +import Accas +from Accas import * +from Accas import _F +import string +import types +import Numeric +from math import sin,cos,tan,asin,acos,atan2,atan,sinh,cosh,tanh,exp,log,log10 +from math import sqrt,pi +import ops + +try: + import aster +except: + pass + +# +__version__="$Name: BR_dev_mars_06 $" +__Id__="$Id: cata.py,v 1.1.2.1 2006/06/20 12:13:41 pnoyret 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): + def __init__(self,valeur=None,**args): + ASSD.__init__(self,**args) + self.valeur=valeur + +# 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 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 compor_sdaster (ASSD):pass +class courbe_sdaster (ASSD):pass +class fiss_xfem (ASSD):pass +class fond_fiss (ASSD):pass +class interf_dyna_clas(ASSD):pass +class interspfact (ASSD):pass +class listis_sdaster (ASSD):pass +class macr_elem_dyna (ASSD):pass +class macr_elem_stat (ASSD):pass +class mater_sdaster (ASSD):pass +class melasflu_sdaster(ASSD):pass +class modele_sdaster (ASSD):pass +class modele_gene (ASSD):pass +class nume_ddl_sdaster(ASSD):pass +class nume_ddl_gene (ASSD):pass +class obstacle_sdaster(ASSD):pass +class sd_feti_sdaster (ASSD):pass +class spectre_sdaster (ASSD):pass +class surface_sdaster (ASSD):pass +class tran_gene (ASSD):pass +class type_flui_stru (ASSD):pass + + +# liste : +#-------------------------------- +class listr8_sdaster (ASSD): + def Valeurs(self) : + """ + Retourne la liste des valeurs : [val1, ..., valN] + """ + if not self.par_lot(): + vale='%-19s.VALE' % self.get_name() + return list(aster.getvectjev(vale)) + else: + raise Accas.AsException("Erreur dans listr8.Valeurs en PAR_LOT='OUI'") + + +# post-traitement : +#-------------------------------- +class post_comp_cham_el : + def __init__(self,valeurs,maille=None,point=None,sous_point=None) : + self.valeurs=valeurs + self.maille=maille + self.point=point + self.sous_point=sous_point + +class post_comp_cham_no : + def __init__(self,valeurs,noeud=None) : + self.valeurs=valeurs + self.noeud=noeud + +# maillage : +#-------------------------------- +class maillage_sdaster(ASSD): + def LIST_GROUP_NO(self) : + """ retourne la liste des groupes de noeuds sous la forme : + [ (gno1, nb noeuds gno1), ...] """ + if self.par_lot() : + raise Accas.AsException("Erreur dans maillage.LIST_GROUP_NO en PAR_LOT='OUI'") + nommail=self.get_name() + dic_gpno=aster.getcolljev(nommail.ljust(8)+".GROUPENO") + return [(gpno.strip(),len(dic_gpno[gpno])) for gpno in dic_gpno] + def LIST_GROUP_MA(self) : + """ retourne la liste des groupes de mailles sous la forme : + [ (gma1, nb mailles gma1, dime max des mailles gma1), ...] """ + if self.par_lot() : + raise Accas.AsException("Erreur dans maillage.LIST_GROUP_MA en PAR_LOT='OUI'") + nommail=self.get_name() + nommail=nommail.ljust(8) + ngpma=[] + ltyma =aster.getvectjev("&CATA.TM.NOMTM") + catama=aster.getcolljev("&CATA.TM.TMDIM") + dic_gpma=aster.getcolljev(nommail+".GROUPEMA") + dimama=[catama[ltyma[ma-1]][0] for ma in aster.getvectjev(nommail+".TYPMAIL")] + for grp in dic_gpma.keys(): + dim=max([dimama[ma-1] for ma in dic_gpma[grp]]) + ngpma.append((grp.strip(),len(dic_gpma[grp]),dim)) + return ngpma + + +class squelette (maillage_sdaster):pass + + +# cham_gd_sdaster (carte_sdaster,cham_no_sdaster,cham_elem_sdaster) +#-------------------------------- + +class cham_gd_sdaster(ASSD):pass + +# cham_gd_sdaster/carte_sdaster : +#-------------------------------- +class carte_sdaster (cham_gd_sdaster):pass +class carte_dbel_r (carte_sdaster):pass +class carte_depl_c (carte_sdaster):pass +class carte_depl_f (carte_sdaster):pass +class carte_depl_r (carte_sdaster):pass +class carte_durt_r (carte_sdaster):pass +class carte_ener_r (carte_sdaster):pass +class carte_epsi_r (carte_sdaster):pass +class carte_erreur (carte_sdaster):pass +class carte_flux_r (carte_sdaster):pass +class carte_g_depl_r (carte_sdaster):pass +class carte_geom_r (carte_sdaster):pass +class carte_hydr_r (carte_sdaster):pass +class carte_inst_r (carte_sdaster):pass +class carte_inte_r (carte_sdaster):pass +class carte_irra_r (carte_sdaster):pass +class carte_neut_f (carte_sdaster):pass +class carte_neut_r (carte_sdaster):pass +class carte_pres_r (carte_sdaster):pass +class carte_sief_r (carte_sdaster):pass +class carte_sour_r (carte_sdaster):pass +class carte_temp_f (carte_sdaster):pass +class carte_temp_r (carte_sdaster):pass +class carte_var2_r (carte_sdaster):pass +class carte_vnor_c (carte_sdaster):pass +class carte_corr_r (carte_sdaster):pass + + +# cham_gd_sdaster/cham_elem_sdaster : +#-------------------------------- +class cham_elem_sdaster(cham_gd_sdaster): + + def EXTR_COMP(self,comp,lgma,topo=0) : + """ retourne les valeurs de la composante comp du champ sur la liste + de groupes de mailles lgma avec eventuellement l'info de la + topologie si topo>0. Si lgma est une liste vide, c'est equivalent + a un TOUT='OUI' dans les commandes aster + Attributs retourne + - self.valeurs : Numeric.array contenant les valeurs + Si on a demande la topo : + - self.maille : numero de mailles + - self.point : numero du point dans la maille + - self.sous_point : numero du sous point dans la maille """ + if self.par_lot() : + raise Accas.AsException("Erreur dans cham_elem.EXTR_COMP en PAR_LOT='OUI'") + + ncham=self.get_name() + ncham=ncham+(8-len(ncham))*' ' + nchams=ncham[0:7]+'S' + ncmp=comp+(8-len(comp))*' ' + + aster.prepcompcham(ncham,nchams,ncmp,"EL ",topo,lgma) + + valeurs=Numeric.array(aster.getvectjev(nchams+(19-len(ncham))*' '+'.V')) + + if (topo>0) : + maille=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.M')) + point=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.P')) + sous_point=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.SP')) + else : + maille=None + point=None + sous_point=None + + aster.prepcompcham("__DETR__",nchams,ncmp,"EL ",topo,lgma) + + return post_comp_cham_el(valeurs,maille,point,sous_point) + +class cham_elem_crit_r(cham_elem_sdaster):pass +class cham_elem_dbel_r(cham_elem_sdaster):pass +class cham_elem_depl_c(cham_elem_sdaster):pass +class cham_elem_depl_f(cham_elem_sdaster):pass +class cham_elem_depl_r(cham_elem_sdaster):pass +class cham_elem_dommag(cham_elem_sdaster):pass +class cham_elem_durt_r(cham_elem_sdaster):pass +class cham_elem_ener_r(cham_elem_sdaster):pass +class cham_elem_epsi_c(cham_elem_sdaster):pass +class cham_elem_epsi_r(cham_elem_sdaster):pass +class cham_elem_erreur(cham_elem_sdaster):pass +class cham_elem_facy_r(cham_elem_sdaster):pass +class cham_elem_flux_r(cham_elem_sdaster):pass +class cham_elem_g_depl(cham_elem_sdaster):pass +class cham_elem_geom_r(cham_elem_sdaster):pass +class cham_elem_hydr_r(cham_elem_sdaster):pass +class cham_elem_inst_r(cham_elem_sdaster):pass +class cham_elem_inte_r(cham_elem_sdaster):pass +class cham_elem_irra_r(cham_elem_sdaster):pass +class cham_elem_neut_f(cham_elem_sdaster):pass +class cham_elem_neut_r(cham_elem_sdaster):pass +class cham_elem_pres_r(cham_elem_sdaster):pass +class cham_elem_sief_c(cham_elem_sdaster):pass +class cham_elem_sief_r(cham_elem_sdaster):pass +class cham_elem_sour_r(cham_elem_sdaster):pass +class cham_elem_spma_r(cham_elem_sdaster):pass +class cham_elem_temp_f(cham_elem_sdaster):pass +class cham_elem_temp_r(cham_elem_sdaster):pass +class cham_elem_vari_r(cham_elem_sdaster):pass +class cham_elem_vnor_c(cham_elem_sdaster):pass + + +# cham_gd/cham_no : +#-------------------------------- +class cham_no_sdaster(cham_gd_sdaster): + + def EXTR_COMP(self,comp,lgno,topo=0) : + """ retourne les valeurs de la composante comp du champ sur la liste + de groupes de noeuds lgno avec eventuellement l'info de la + topologie si topo>0. Si lgno est une liste vide, c'est equivalent + a un TOUT='OUI' dans les commandes aster + Attributs retourne + - self.valeurs : Numeric.array contenant les valeurs + Si on a demande la topo (i.e. self.topo = 1) : + - self.noeud : numero de noeud """ + if self.par_lot() : + raise Accas.AsException("Erreur dans cham_no.EXTR_COMP en PAR_LOT='OUI'") + + ncham=self.get_name() + ncham=ncham+(8-len(ncham))*' ' + nchams=ncham[0:7]+'S' + ncmp=comp+(8-len(comp))*' ' + + aster.prepcompcham(ncham,nchams,ncmp,"NO ",topo,lgno) + + valeurs=Numeric.array(aster.getvectjev(nchams+(19-len(ncham))*' '+'.V')) + + if (topo>0) : + noeud=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.N')) + else : + noeud=None + + aster.prepcompcham("__DETR__",nchams,ncmp,"NO ",topo,lgno) + + return post_comp_cham_no(valeurs,noeud) + +class cham_no_dbel_r (cham_no_sdaster):pass +class cham_no_depl_c (cham_no_sdaster):pass +class cham_no_depl_f (cham_no_sdaster):pass +class cham_no_depl_r (cham_no_sdaster):pass +class cham_no_durt_r (cham_no_sdaster):pass +class cham_no_ener_r (cham_no_sdaster):pass +class cham_no_epsi_r (cham_no_sdaster):pass +class cham_no_erreur (cham_no_sdaster):pass +class cham_no_facy_r (cham_no_sdaster):pass +class cham_no_flux_r (cham_no_sdaster):pass +class cham_no_g_depl_r (cham_no_sdaster):pass +class cham_no_geom_r (cham_no_sdaster):pass +class cham_no_hydr_r (cham_no_sdaster):pass +class cham_no_inst_r (cham_no_sdaster):pass +class cham_no_inte_r (cham_no_sdaster):pass +class cham_no_irra_r (cham_no_sdaster):pass +class cham_no_neut_f (cham_no_sdaster):pass +class cham_no_neut_r (cham_no_sdaster):pass +class cham_no_pres_c (cham_no_sdaster):pass +class cham_no_pres_r (cham_no_sdaster):pass +class cham_no_sief_r (cham_no_sdaster):pass +class cham_no_sour_r (cham_no_sdaster):pass +class cham_no_spma_r (cham_no_sdaster):pass +class cham_no_temp_c (cham_no_sdaster):pass +class cham_no_temp_f (cham_no_sdaster):pass +class cham_no_temp_r (cham_no_sdaster):pass +class cham_no_vanl_r (cham_no_sdaster):pass +class cham_no_var2_r (cham_no_sdaster):pass +class cham_no_vnor_c (cham_no_sdaster):pass + + +# resultat_sdaster : (evol_sdaster,mode_stat,mode_meca) +#-------------------------------------- + +class resultat_sdaster(ASSD): + def LIST_CHAMPS (self) : + if self.par_lot() : + raise Accas.AsException("Erreur dans resultat.LIST_CHAMPS en PAR_LOT='OUI'") + return aster.GetResu(self.get_name(), "CHAMPS") + def LIST_NOM_CMP (self) : + if self.par_lot() : + raise Accas.AsException("Erreur dans resultat.LIST_NOM_CMP en PAR_LOT='OUI'") + return aster.GetResu(self.get_name(), "COMPOSANTES") + def LIST_VARI_ACCES (self) : + if self.par_lot() : + raise Accas.AsException("Erreur dans resultat.LIST_VARI_ACCES en PAR_LOT='OUI'") + return aster.GetResu(self.get_name(), "VARI_ACCES") + def LIST_PARA (self) : + if self.par_lot() : + raise Accas.AsException("Erreur dans resultat.LIST_PARA en PAR_LOT='OUI'") + return aster.GetResu(self.get_name(), "PARAMETRES") + +class acou_harmo (resultat_sdaster):pass +class base_modale (resultat_sdaster):pass +class comb_fourier (resultat_sdaster):pass +class dyna_harmo (resultat_sdaster):pass +class dyna_trans (resultat_sdaster):pass +class fourier_elas (resultat_sdaster):pass +class harm_gene (resultat_sdaster):pass +class mode_acou (resultat_sdaster):pass +class mode_cycl (resultat_sdaster):pass +class mode_flamb (resultat_sdaster):pass +class mode_gene (resultat_sdaster):pass +class mult_elas (resultat_sdaster):pass +class theta_geom (resultat_sdaster):pass + +# resultat_sdaster/evol_sdaster : +#-------------------------------- +class evol_sdaster(resultat_sdaster):pass +class evol_char(evol_sdaster):pass +class evol_elas(evol_sdaster):pass +class evol_noli(evol_sdaster):pass +class evol_ther(evol_sdaster):pass +class evol_varc(evol_sdaster):pass + +# resultat_sdaster/mode_stat : +#-------------------------------- +class mode_stat(resultat_sdaster):pass +class mode_stat_depl(mode_stat):pass +class mode_stat_acce(mode_stat):pass +class mode_stat_forc(mode_stat):pass + + +# resultat_sdaster/mode_meca : +#-------------------------------- +class mode_meca(resultat_sdaster):pass +class mode_meca_c(mode_meca):pass + + +# types 'fonction' : +#-------------------------------- +class fonction_class(ASSD): + def Valeurs(self):pass + def Parametres(self): + """ + Retourne un dictionnaire contenant les parametres de la fonction ; + le type jeveux (FONCTION, FONCT_C, NAPPE) n'est pas retourne, + le dictionnaire peut ainsi etre fourni a CALC_FONC_INTERP tel quel. + """ + if not self.par_lot() : + TypeProl={'E':'EXCLU', 'L':'LINEAIRE', 'C':'CONSTANT' } + prol=aster.getvectjev(string.ljust(self.get_name(),19)+'.PROL') + dico={ + 'INTERPOL' : [prol[1][0:3],prol[1][4:7]], + 'NOM_PARA' : string.strip(prol[2][0:16]), + 'NOM_RESU' : string.strip(prol[3][0:16]), + 'PROL_DROITE' : TypeProl[prol[4][1]], + 'PROL_GAUCHE' : TypeProl[prol[4][0]], + } + elif hasattr(self,'etape') and self.etape.nom=='DEFI_FONCTION' : + dico={ + 'INTERPOL' : self.etape['INTERPOL'], + 'NOM_PARA' : self.etape['NOM_PARA'], + 'NOM_RESU' : self.etape['NOM_RESU'], + 'PROL_DROITE' : self.etape['PROL_DROITE'], + 'PROL_GAUCHE' : self.etape['PROL_GAUCHE'], + } + if type(dico['INTERPOL'])==types.TupleType : + dico['INTERPOL']=list(dico['INTERPOL']) + elif type(dico['INTERPOL'])==types.StringType : + dico['INTERPOL']=[dico['INTERPOL'],] + if len(dico['INTERPOL'])==1 : + dico['INTERPOL']=dico['INTERPOL']*2 + else: + raise Accas.AsException("Erreur dans fonction.Parametres en PAR_LOT='OUI'") + return dico + def Trace(self,FORMAT='TABLEAU',**kargs): + """Tracé d'une fonction""" + if self.par_lot() : + raise Accas.AsException("Erreur dans fonction.Trace en PAR_LOT='OUI'") + from Utilitai.Graph import Graph + gr=Graph() + gr.AjoutCourbe(Val=self.Valeurs(), + Lab=[self.Parametres()['NOM_PARA'],self.Parametres()['NOM_RESU']]) + gr.Trace(FORMAT=FORMAT,**kargs) +class fonction_sdaster(fonction_class): + def Valeurs(self) : + """ + Retourne deux listes de valeurs : abscisses et ordonnees + """ + if not self.par_lot(): + vale=string.ljust(self.get_name(),19)+'.VALE' + lbl=list(aster.getvectjev(vale)) + dim=len(lbl)/2 + lx=lbl[0:dim] + ly=lbl[dim:2*dim] + return [lx,ly] + elif hasattr(self,'etape') and self.etape.nom=='DEFI_FONCTION' : + if self.etape['VALE']!=None: + lbl=list(self.etape['VALE']) + dim=len(lbl) + lx=[lbl[i] for i in range(0,dim,2)] + ly=[lbl[i] for i in range(1,dim,2)] + return [lx,ly] + elif self.etape['VALE_PARA']!=None: + return [self.etape['VALE_PARA'].Valeurs(),self.etape['VALE_FONC'].Valeurs()] + else : + raise Accas.AsException("Erreur dans fonction.Valeurs en PAR_LOT='OUI'") + def Absc(self): + """Retourne la liste des abscisses""" + return self.Valeurs()[0] + def Ordo(self): + """Retourne la liste des ordonnées""" + return self.Valeurs()[1] + def __call__(self,val): + ### Pour EFICAS : substitution de l'instance de classe + ### parametre par sa valeur + import types + if type(val)==types.InstanceType : val=val.valeur + ### + lx,ly=self.Valeurs() + n=len(lx) + if val in lx : return ly[lx.index(val)] + lx.append(val) + lx.sort() + indic=lx.index(val) + if indic==0 : + if self.etape['PROL_GAUCHE']=='CONSTANT':return ly[0] + if indic==n : + if self.etape['PROL_DROITE']=='CONSTANT':return ly[n-1] + return (ly[indic-1]+(ly[indic]-ly[indic-1])*(val-lx[indic-1])/(lx[indic+1]-lx[indic-1])) +class para_sensi(fonction_sdaster): pass +class fonction_c(fonction_class): + def Valeurs(self) : + """ + Retourne trois listes de valeurs : abscisses, parties reelles et imaginaires. + """ + if not self.par_lot(): + vale=string.ljust(self.get_name(),19)+'.VALE' + lbl=list(aster.getvectjev(vale)) + dim=len(lbl)/3 + lx=lbl[0:dim] + lr=[] + li=[] + for i in range(dim): + lr.append(lbl[dim+2*i]) + li.append(lbl[dim+2*i+1]) + return [lx,lr,li] + if self.etape.nom=='DEFI_FONCTION' : + lbl=list(self.etape['VALE_C']) + dim=len(lbl) + lx=[lbl[i] for i in range(0,dim,3)] + lr=[lbl[i] for i in range(1,dim,3)] + li=[lbl[i] for i in range(2,dim,3)] + return [lx,lr,li] + else : + raise Accas.AsException("Erreur dans fonction_c.Valeurs en PAR_LOT='OUI'") + def Absc(self): + """Retourne la liste des abscisses""" + return self.Valeurs()[0] + def Ordo(self): + """Retourne la liste des parties réelles des ordonnées""" + return self.Valeurs()[1] + def OrdoImg(self): + """Retourne la liste des parties imaginaires des ordonnées""" + return self.Valeurs()[2] + def Trace(self,FORMAT='TABLEAU',**kargs): + """Tracé d'une fonction complexe""" + if self.par_lot() : + raise Accas.AsException("Erreur dans fonction_c.Trace en PAR_LOT='OUI'") + from Utilitai.Graph import Graph + gr=Graph() + gr.AjoutCourbe(Val=self.Valeurs(), + Lab=[self.Parametres()['NOM_PARA'],self.Parametres()['NOM_RESU'],'IMAG']) + gr.Trace(FORMAT=FORMAT,**kargs) +class nappe_sdaster(fonction_class): + def Valeurs(self): + """ + Retourne la liste des valeurs du parametre, + et une liste de couples (abscisses,ordonnees) de chaque fonction. + """ + if self.par_lot(): + raise Accas.AsException("Erreur dans nappe.Valeurs en PAR_LOT='OUI'") + nsd=string.ljust(self.get_name(),19) + dicv=aster.getcolljev(nsd+'.VALE') + # les cles de dicv sont 1,...,N (indice du parametre) + lpar=aster.getvectjev(nsd+'.PARA') + lval=[] + for k in range(len(dicv)): + lbl=dicv[k+1] + dim=len(lbl)/2 + lval.append([lbl[0:dim],lbl[dim:2*dim]]) + return [lpar,lval] + def Parametres(self): + """ + Retourne un dictionnaire contenant les parametres de la nappe, + le type jeveux (NAPPE) n'est pas retourne, + le dictionnaire peut ainsi etre fourni a CALC_FONC_INTERP tel quel, + et une liste de dictionnaire des parametres de chaque fonction. + """ + if self.par_lot(): + raise Accas.AsException("Erreur dans nappe.Parametres en PAR_LOT='OUI'") + TypeProl={'E':'EXCLU', 'L':'LINEAIRE', 'C':'CONSTANT' } + prol=aster.getvectjev(string.ljust(self.get_name(),19)+'.PROL') + dico={ + 'INTERPOL' : [prol[1][0:3],prol[1][4:7]], + 'NOM_PARA' : prol[2][0:16], + 'NOM_RESU' : prol[3][0:16], + 'PROL_DROITE' : TypeProl[prol[4][0]], + 'PROL_GAUCHE' : TypeProl[prol[4][1]], + 'NOM_PARA_FONC' : prol[5][0:4], + } + lparf=[] + nbf=(len(prol)-6)/2 + for i in range(nbf): + dicf={ + 'INTERPOL_FONC' : [prol[6+i*2][0:3],prol[6+i*2][4:7]], + 'PROL_DROITE_FONC' : TypeProl[prol[7+i*2][0]], + 'PROL_GAUCHE_FONC' : TypeProl[prol[7+i*2][1]], + } + lparf.append(dicf) + return [dico,lparf] + def Trace(self,FORMAT='TABLEAU',**kargs): + """Tracé d'une nappe""" + if self.par_lot(): + raise Accas.AsException("Erreur dans nappe.Trace en PAR_LOT='OUI'") + from Utilitai.Graph import Graph + gr=Graph() + lv=self.Valeurs()[1] + dp=self.Parametres()[0] + for lx,ly in lv: + gr.AjoutCourbe(Val=[lx,ly], Lab=[dp['NOM_PARA_FONC'],dp['NOM_RESU']]) + gr.Trace(FORMAT=FORMAT,**kargs) + +# matr_asse : +#-------------------------------- +class matr_asse(ASSD):pass + +class matr_asse_gene(matr_asse):pass +class matr_asse_gene_r(matr_asse_gene):pass +class matr_asse_gene_c(matr_asse_gene):pass + +class matr_asse_gd(matr_asse):pass +class matr_asse_depl_c(matr_asse_gd):pass +class matr_asse_depl_r(matr_asse_gd):pass +class matr_asse_pres_c(matr_asse_gd):pass +class matr_asse_pres_r(matr_asse_gd):pass +class matr_asse_temp_c(matr_asse_gd):pass +class matr_asse_temp_r(matr_asse_gd):pass + +# 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 : +#-------------------------------- +class table_sdaster(ASSD): + def __getitem__(self,key): + if self.par_lot(): + raise Accas.AsException("Erreur dans table.__getitem__ en PAR_LOT='OUI'") + requete = '%-24s' % key[0] + tblp = '%-19s.TBLP' % self.get_name() + tabnom=list(aster.getvectjev(tblp)) + for i in range(len(tabnom)) : + if tabnom[i]==requete: break + resu=aster.getvectjev(tabnom[i+2]) + exist=aster.getvectjev(tabnom[i+3]) + if key[1]>len(resu) or exist[key[1]-1]==0: + raise KeyError + else: + return resu[key[1]-1] + def Nonefy(self,l1,l2) : + if l2==0 : return None + else : return l1 + def EXTR_TABLE(self) : + """Produit un objet Table à partir du contenu d'une table Aster + """ + if self.par_lot(): + raise Accas.AsException("Erreur dans table.EXTR_TABLE en PAR_LOT='OUI'") + from Utilitai.Table import Table + tblp=string.ljust(self.get_name(),19)+'.TBLP' + tabnom=list(aster.getvectjev(tblp)) + nparam=len(tabnom)/4 + lparam=[tabnom[4*i:4*i+4] for i in range(nparam)] + dval={} + # liste des paramètres et des types + lpar=[] + ltyp=[] + for i in lparam : + value=list(aster.getvectjev(i[2])) + exist=aster.getvectjev(i[3]) + dval[string.strip(i[0])]=map(self.Nonefy,value,exist) + lpar.append(string.strip(i[0])) + ltyp.append(string.strip(i[1])) + n=len(dval[lpar[0]]) + # contenu : liste de dict + lisdic=[] + for i in range(n) : + d={} + for p in lpar : d[p]=dval[p][i] + lisdic.append(d) + # titre + titj=aster.getvectjev(self.get_name().ljust(19)+'.TITR') + if titj<>None: + titr='\n'.join(titj) + else: + titr='' + return Table(lisdic, lpar, ltyp, titr) + +class table_jeveux(table_sdaster): + """Classe permettant d'accéder à une table jeveux qui n'a pas d'ASSD associée, + c'est le cas des concepts résultats (table, evol_xxxx) dérivés.""" + def __init__(self,nom_jeveux): + self.nom=nom_jeveux + +class tabl_aire_int (table_sdaster):pass +class tabl_calc_g_loca(table_sdaster):pass +class tabl_calc_g_th (table_sdaster):pass +class tabl_cara_geom (table_sdaster):pass +class tabl_char_limite(table_sdaster):pass +class tabl_ener_elas (table_sdaster):pass +class tabl_ener_pot (table_sdaster):pass +class tabl_ener_cin (table_sdaster):pass +class tabl_trav_ext (table_sdaster):pass +class tabl_ener_totale(table_sdaster):pass +class tabl_indic_ener (table_sdaster):pass +class tabl_indic_seuil(table_sdaster):pass +class tabl_intsp (table_sdaster):pass +class tabl_mass_iner (table_sdaster):pass +class tabl_post_alea (table_sdaster):pass +class tabl_post_beta (table_sdaster):pass +class tabl_post_dyna (table_sdaster):pass +class tabl_post_f_alea(table_sdaster):pass +class tabl_post_fatig (table_sdaster):pass +class tabl_post_gouj2e(table_sdaster):pass +class tabl_post_k (table_sdaster):pass +class tabl_post_rccm (table_sdaster):pass +class tabl_post_rele (table_sdaster):pass +class tabl_post_simpli(table_sdaster):pass +class tabl_post_usur (table_sdaster):pass +class tabl_reca_weib (table_sdaster):pass +class tabl_rice_tracey(table_sdaster):pass +class tabl_texture (table_sdaster):pass +class tabl_trc (table_sdaster):pass +class tabl_weibull (table_sdaster):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 COMMUN DATE 11/10/2004 AUTEUR DURAND C.DURAND +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +def C_COMP_INCR() : return FACT(statut='f',min=1,max='**', #COMMUN# + RELATION =SIMP(statut='o',typ='TXM',defaut="VMIS_ISOT_TRAC", + into=( "ELAS", + "VMIS_ISOT_TRAC", + "VISC_ISOT_TRAC", + "VMIS_ISOT_LINE", + "VISC_ISOT_LINE", + "VMIS_ECMI_TRAC", + "VMIS_ECMI_LINE", + "LABORD_1D", + "ENDO_FRAGILE", + "ENDO_ISOT_BETON", + "ENDO_ORTH_BETON", + "MAZARS", + "JOINT_BA", + "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", + "VISC_IRRA_LOG", + "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", + "BARCELONE", + "LAIGLE", + "DRUCKER_PRAGER", + "OHNO", + "GRANGER_FP", + "GRANGER_FP_INDT", + "GRANGER_FP_V", + "BAZANT_FD", + "BETON_UMLV_FP", + "BETON_DOUBLE_DP", + "KIT_HM", + "KIT_HHM", + "KIT_THH", + "KIT_THV", + "KIT_THM", + "KIT_THHM", + "VMIS_ASYM_LINE", + "ELAS_THM", + "SURF_ETAT_NSAT", + "SURF_ETAT_SATU", + "CAM_CLAY_THM", + "KIT_DDI", + "GLRC", + "SANS", + "CORR_ACIER", + "MONOCRISTAL", + "POLYCRISTAL", + ) ), + ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), + SANS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), + CORR_ACIER =SIMP(statut='c',typ='I',defaut=3,into=(3,)), + VMIS_ISOT_TRAC =SIMP(statut='c',typ='I',defaut=2,into=(2,)), + VISC_ISOT_TRAC =SIMP(statut='c',typ='I',defaut=3,into=(3,)), + VMIS_ISOT_LINE =SIMP(statut='c',typ='I',defaut=2,into=(2,)), + VISC_ISOT_LINE =SIMP(statut='c',typ='I',defaut=3,into=(3,)), + VMIS_ECMI_TRAC =SIMP(statut='c',typ='I',defaut=8,into=(8,)), + VMIS_ECMI_LINE =SIMP(statut='c',typ='I',defaut=8,into=(8,)), + LABORD_1D =SIMP(statut='c',typ='I',defaut=5,into=(5,)), + ENDO_FRAGILE =SIMP(statut='c',typ='I',defaut=2,into=(2,)), + ENDO_ISOT_BETON =SIMP(statut='c',typ='I',defaut=2,into=(2,)), + ENDO_ORTH_BETON =SIMP(statut='c',typ='I',defaut=7,into=(7,)), + MAZARS =SIMP(statut='c',typ='I',defaut=3,into=(3,)), + JOINT_BA =SIMP(statut='c',typ='I',defaut=6,into=(6,)), + RUPT_FRAG =SIMP(statut='c',typ='I',defaut=1,into=(1,)), + BARENBLATT =SIMP(statut='c',typ='I',defaut=3,into=(3,)), + 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,)), + VISC_IRRA_LOG =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,)), + BARCELONE =SIMP(statut='c',typ='I',defaut=5,into=(5,)), + LAIGLE =SIMP(statut='c',typ='I',defaut=4,into=(4,)), + DRUCKER_PRAGER =SIMP(statut='c',typ='I',defaut=3,into=(3,)), + OHNO =SIMP(statut='c',typ='I',defaut=32,into=(32,)), + GRANGER_FP =SIMP(statut='c',typ='I',defaut=55,into=(55,)), + GRANGER_FP_INDT =SIMP(statut='c',typ='I',defaut=55,into=(55,)), + GRANGER_FP_V =SIMP(statut='c',typ='I',defaut=55,into=(55,)), + BAZANT_FD =SIMP(statut='c',typ='I',defaut=1,into=(1,)), + BETON_DOUBLE_DP =SIMP(statut='c',typ='I',defaut=4,into=(4,)), + KIT_HM =SIMP(statut='c',typ='I',defaut=0,into=(0,)), + KIT_HHM =SIMP(statut='c',typ='I',defaut=0,into=(0,)), + KIT_THH =SIMP(statut='c',typ='I',defaut=0,into=(0,)), + KIT_THV =SIMP(statut='c',typ='I',defaut=0,into=(0,)), + KIT_THM =SIMP(statut='c',typ='I',defaut=0,into=(0,)), + KIT_THHM =SIMP(statut='c',typ='I',defaut=0,into=(0,)), + VMIS_ASYM_LINE =SIMP(statut='c',typ='I',defaut=4,into=(4,)), + BETON_UMLV_FP =SIMP(statut='c',typ='I',defaut=21,into=(21,)), + GLRC =SIMP(statut='c',typ='I',defaut=7,into=(7,)), + + b_monox = BLOC(condition = "RELATION == 'MONOCRISTAL' ", + fr="SD issue de DEFI_COMPOR", + COMPOR =SIMP(statut='o',typ=compor_sdaster,max=1),), +# + b_polyx = BLOC(condition = "RELATION == 'POLYCRISTAL' ", + fr="SD issue de DEFI_COMPOR", + COMPOR =SIMP(statut='o',typ=compor_sdaster,max=1),), +# + + + + RELATION_KIT =SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(), + into=( +# MECA + "ELAS", + "CJS", + "CAM_CLAY", + "BARCELONE", + "LAIGLE", + "DRUCKER_PRAGER", + "ELAS_THM", + "SURF_ETAT_NSAT", + "SURF_ETAT_SATU", + "CAM_CLAY_THM", + "MAZARS", + "ENDO_ISOT_BETON", +# THMC + "GAZ", + "LIQU_SATU", + "LIQU_SATU_GAT", + "LIQU_GAZ_ATM", + "LIQU_VAPE_GAZ", + "LIQU_AD_GAZ_VAPE", + "LIQU_VAPE", + "LIQU_NSAT_GAT", + "LIQU_GAZ", +# HYDR + "HYDR_UTIL", + "HYDR", + "HYDR_ENDO", +# MECA_META + "ACIER", + "ZIRC", +# MECA KIT_DDI + "VMIS_ISOT_TRAC", + "VMIS_ISOT_LINE", + "VMIS_ISOT_CINE", + "GRANGER_FP", + "GRANGER_FP_INDT", + "GRANGER_FP_V", + "BETON_UMLV_FP", + "ROUSS_PR", + "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=1,into=(1,)), + 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_AD_GAZ_VAPE=SIMP(statut='c',typ='I',defaut=3,into=(3,)), + LIQU_VAPE =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,)), + HYDR_UTIL =SIMP(statut='c',typ='I',defaut=1,into=(1,)), + HYDR =SIMP(statut='c',typ='I',defaut=1,into=(1,)), + HYDR_ENDO =SIMP(statut='c',typ='I',defaut=1,into=(1,)), + ACIER =SIMP(statut='c',typ='I',defaut=5,into=(5,)), + ZIRC =SIMP(statut='c',typ='I',defaut=3,into=(3,)), + + DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC","SIMO_MIEHE","GREEN_GR","GREEN",)), + ALGO_C_PLAN =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)), + ALGO_1D =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)), + regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + ) ; +#& MODIF COMMUN DATE 06/04/2004 AUTEUR DURAND C.DURAND +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE VABHHTS J.PELLET +# ce fichier contient la liste des "into" possibles pour le mot cle NOM_CHAM +# c'est a dire les noms de champs des SD RESULTAT (DATA de la routine RSCRSD) +def C_NOM_CHAM_INTO() : return ("ACCE", #COMMUN# + "ACCE_ABSOLU", + "ALPH0_ELGA_EPSP", + "ALPHP_ELGA_ALPH0", + "COMPORTEMENT", + "COMPORTHER", + "CRIT_ELNO_RUPT", + "DCHA_ELGA_SIGM", + "DCHA_ELNO_SIGM", + "DCHA_NOEU_SIGM", + "DEDE_ELNO_DLDE", + "DEDE_NOEU_DLDE", + "DEGE_ELNO_DEPL", + "DEGE_NOEU_DEPL", + "DEPL", + "DEPL_ABSOLU", + "DESI_ELNO_DLSI", + "DESI_NOEU_DLSI", + "DETE_ELNO_DLTE", + "DETE_NOEU_DLTE", + "DURT_ELGA_META", + "DURT_ELNO_META", + "DURT_NOEU_META", + "ECIN_ELEM_DEPL", + "EFGE_ELNO_CART", + "EFGE_ELNO_DEPL", + "EFGE_NOEU_CART", + "EFGE_NOEU_DEPL", + "ENDO_ELGA", + "ENDO_ELNO_ELGA", + "ENDO_ELNO_SIGA", + "ENDO_ELNO_SINO", + "ENDO_NOEU_SINO", + "ENEL_ELGA", + "ENEL_ELNO_ELGA", + "ENEL_NOEU_ELGA", + "EPEQ_ELNO_TUYO", + "EPGR_ELGA", + "EPGR_ELNO", + "EPME_ELGA_DEPL", + "EPME_ELNO_DEPL", + "EPMG_ELGA_DEPL", + "EPMG_ELNO_DEPL", + "EPMG_NOEU_DEPL", + "EPOT_ELEM_DEPL", + "EPSA_ELNO", + "EPSA_NOEU", + "EPSG_ELGA_DEPL", + "EPSG_ELNO_DEPL", + "EPSG_NOEU_DEPL", + "EPSI_ELGA_DEPL", + "EPSI_ELNO_DEPL", + "EPSI_ELNO_TUYO", + "EPSI_NOEU_DEPL", + "EPSP_ELGA", + "EPSP_ELNO", + "EPSP_ELNO_ZAC", + "EPSP_NOEU", + "EPSP_NOEU_ZAC", + "EQUI_ELGA_EPME", + "EQUI_ELGA_EPSI", + "EQUI_ELGA_SIGM", + "EQUI_ELNO_EPME", + "EQUI_ELNO_EPSI", + "EQUI_ELNO_SIGM", + "EQUI_NOEU_EPME", + "EQUI_NOEU_EPSI", + "EQUI_NOEU_SIGM", + "ERRE_ELEM_NOZ1", + "ERRE_ELEM_NOZ2", + "ERRE_ELGA_NORE", + "ERRE_ELNO_ELGA", + "ERRE_NOEU_ELGA", + "ERTH_ELEM_TEMP", + "ERTH_ELNO_ELEM", + "ETOT_ELEM", + "ETOT_ELGA", + "ETOT_ELNO_ELGA", + "FLUX_ELGA_TEMP", + "FLUX_ELNO_TEMP", + "FLUX_NOEU_TEMP", + "FORC_NODA", + "FSUR_2D", + "FSUR_3D", + "FVOL_2D", + "FVOL_3D", + "GRAD_NOEU_THETA", + "HYDR_ELGA", + "HYDR_ELNO_ELGA", + "HYDR_NOEU_ELGA", + "INDI_LOCA_ELGA", + "INTE_ELNO_ACTI", + "INTE_ELNO_REAC", + "INTE_NOEU_ACTI", + "INTE_NOEU_REAC", + "IRRA", + "LANL_ELGA", + "META_ELGA_TEMP", + "META_ELNO_TEMP", + "META_NOEU_TEMP", + "MODE_FLAMB", + "PMPB_ELGA_SIEF", + "PMPB_ELNO_SIEF", + "PMPB_NOEU_SIEF", + "PRES", + "PRES_DBEL_DEPL", + "PRES_ELNO_DBEL", + "PRES_ELNO_IMAG", + "PRES_ELNO_REEL", + "PRES_NOEU_DBEL", + "PRES_NOEU_IMAG", + "PRES_NOEU_REEL", + "RADI_ELGA_SIGM", + "RADI_ELNO_SIGM", + "RADI_NOEU_SIGM", + "REAC_NODA", + "SIEF_ELGA", + "SIEF_ELGA_DEPL", + "SIEF_ELNO", + "SIEF_ELNO_ELGA", + "SIEF_NOEU", + "SIEF_NOEU_ELGA", + "SIEQ_ELNO_TUYO", + "SIGM_ELNO_CART", + "SIGM_ELNO_COQU", + "SIGM_ELNO_DEPL", + "SIGM_ELNO_SIEF", + "SIGM_ELNO_TUYO", + "SIGM_ELNO_ZAC", + "SIGM_NOEU_CART", + "SIGM_NOEU_COQU", + "SIGM_NOEU_DEPL", + "SIGM_NOEU_SIEF", + "SIGM_NOEU_ZAC", + "SIGM_NOZ1_ELGA", + "SIGM_NOZ2_ELGA", + "SIPO_ELNO_DEPL", + "SIPO_ELNO_SIEF", + "SIPO_NOEU_DEPL", + "SIPO_NOEU_SIEF", + "SIRE_ELNO_DEPL", + "SIRE_NOEU_DEPL", + "SOUR_ELGA_ELEC", + "TEMP", + "THETA", + "VALE_CONT", + "VALE_NCOU_MAXI", + "VARI_ELGA", + "VARI_ELGA_ZAC", + "VARI_ELNO", + "VARI_ELNO_COQU", + "VARI_ELNO_ELGA", + "VARI_ELNO_TUYO", + "VARI_NOEU", + "VARI_NOEU_ELGA", + "VARI_NON_LOCAL", + "VITE", + "VITE_ABSOLU", + "VITE_VENT", + ) +#& MODIF COMMUN DATE 16/06/2004 AUTEUR DURAND C.DURAND +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# ce fichier contient la liste des PARA possibles pour les fonctions et les nappes +def C_PARA_FONCTION() : return ( #COMMUN# + "DX","DY","DZ","DRX","DRY","DRZ","TEMP","TSEC", + "INST","X","Y","Z","EPSI","META","FREQ","PULS","DSP", + "AMOR","ABSC","SIGM","HYDR","SECH","PORO","SAT", + "PGAZ","PCAP","VITE","ENDO","NORM","EPAIS",) +#& MODIF COMMUN DATE 03/11/2004 AUTEUR CIBHHPD L.SALMONA +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# +# ce fichier contient la liste des "into" possibles pour le mot cle TYPE_CHAM +# c'est a dire les noms des types de champ des SD RESULTAT (DATA de la routine RSCRSD) +def C_TYPE_CHAM_INTO() : return ("ACCE", #COMMUN# + "CART_CORR_R", + "NOEU_DBEL_R", "ELEM_DBEL_R", "ELNO_DBEL_R", "ELGA_DBEL_R", + "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", + "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", + "NOEU_EPSI_R", "ELEM_EPSI_R", "ELNO_EPSI_R", "ELGA_EPSI_R", + "NOEU_ERREUR", "ELEM_ERREUR", "ELNO_ERREUR", "ELGA_ERREUR", + "NOEU_FLUX_R", "ELEM_FLUX_R", "ELNO_FLUX_R", "ELGA_FLUX_R", + "CART_GEOM_R", "NOEU_GEOM_R", "ELEM_GEOM_R", "ELNO_GEOM_R", "ELGA_GEOM_R", + "NOEU_G_DEPL_R","ELEM_G_DEPL_R","ELNO_G_DEPL_R","ELGA_G_DEPL_R", + "NOEU_HYDR_R", "ELEM_HYDR_R", "ELNO_HYDR_R", "ELGA_HYDR_R", + "NOEU_INST_R", "ELEM_INST_R", "ELNO_INST_R", "ELGA_INST_R", + "NOEU_INTE_R", "ELEM_INTE_R", "ELNO_INTE_R", "ELGA_INTE_R", + "CART_IRRA_R", "NOEU_IRRA_R", "ELEM_IRRA_R", "ELNO_IRRA_R", "ELGA_IRRA_R", + "NOEU_META_R", "ELEM_META_R", "ELNO_META_R", "ELGA_META_R", + "NOEU_NEUT_F", "ELEM_NEUT_F", "ELNO_NEUT_F", "ELGA_NEUT_F", + "CART_NEUT_R", "NOEU_NEUT_R", "ELEM_NEUT_R", "ELNO_NEUT_R", "ELGA_NEUT_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", + "NOEU_SOUR_R", "ELEM_SOUR_R", "ELNO_SOUR_R", "ELGA_SOUR_R", + "CART_TEMP_F", "NOEU_TEMP_F", "ELEM_SPMA_R", "ELNO_TEMP_F", "ELGA_TEMP_F", + "CART_TEMP_R", "NOEU_TEMP_R", "ELEM_TEMP_F", "ELNO_TEMP_R", "ELGA_TEMP_R", + "CART_VAR2_R", "NOEU_VAR2_R", "ELEM_TEMP_R", "ELNO_VARI_R", "ELGA_VARI_R", + "NOEU_VNOR_C", "ELEM_VARI_R", "ELNO_VNOR_C", "ELGA_VNOR_C", + "ELEM_VNOR_C", + ) +#& MODIF COMMANDE DATE 04/04/2006 AUTEUR CIBHHLV L.VIVAN +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE 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", + reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + regles=(AU_MOINS_UN('POUTRE','BARRE','COQUE','CABLE','DISCRET','DISCRET_2D','MASSIF', + 'ASSE_GRIL','GRILLE','AFFE_SECT','AFFE_FIBRE'),), + MODELE =SIMP(statut='o',typ=modele_sdaster ), + INFO =SIMP(statut='f',typ='I', defaut= 1 ,into=(1,2) ), + VERIF =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("MAILLE","NOEUD") ), + +#============================================================================ + POUTRE =FACT(statut='f',max='**', + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + SECTION =SIMP(statut='o',typ='TXM' ,into=("GENERALE","RECTANGLE","CERCLE") ), + PREC_AIRE =SIMP(statut='f',typ='R',defaut=0.01), + PREC_INERTIE =SIMP(statut='f',typ='R',defaut=0.1), + b_generale =BLOC( condition = "SECTION=='GENERALE'", + VARI_SECT =SIMP(statut='f',typ='TXM',into=("CONSTANT","HOMOTHETIQUE"),defaut="CONSTANT"), + b_constant =BLOC( condition = "VARI_SECT=='CONSTANT'", + CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=4 ,max=15, + fr="A,IY,IZ,JX sont des paramètres obligatoires", + into=("A","IY","IZ","AY","AZ","EY","EZ","JX","RY","RZ","RT", + "JG","IYR2","IZR2","AI") ), + VALE =SIMP(statut='o',typ='R',min=4 ,max=15), + ), + b_homothetique =BLOC( condition = "VARI_SECT=='HOMOTHETIQUE'", + CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=8 ,max=30, + fr="A1,A2,IY1,IY2,IZ1,IZ2,JX1,JX2 sont des paramètres obligatoires", + into=("A1","IY1","IZ1","AY1","AZ1","EY1","EZ1","JX1","RY1", + "RZ1","RT1","JG1","IYR21","IZR21","AI1", + "A2","IY2","IZ2","AY2","AZ2","EY2","EZ2","JX2","RY2", + "RZ2","RT2","JG2","IYR22","IZR22","AI2") ), + VALE =SIMP(statut='o',typ='R',min=8 ,max=30), + ), + ), + b_rectangle =BLOC( condition = "SECTION=='RECTANGLE'", + VARI_SECT =SIMP(statut='f',typ='TXM',into=("CONSTANT","HOMOTHETIQUE","AFFINE"),defaut="CONSTANT"), + b_constant =BLOC( condition = "VARI_SECT=='CONSTANT'", + CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=1 ,max=4, + into=("H","EP", "HY","HZ","EPY","EPZ") ), + VALE =SIMP(statut='o',typ='R',min=1 ,max=4), + ), + b_homothetique =BLOC( condition = "VARI_SECT=='HOMOTHETIQUE'", + CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=2 ,max=8, + into=("H1","HZ1","HY1","EP1","EPY1","EPZ1", + "H2","HZ2","HY2","EP2","EPY2","EPZ2") ), + VALE =SIMP(statut='o',typ='R',min=2 ,max=8), + ), + b_affine =BLOC( condition = "VARI_SECT=='AFFINE'", + CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=3 ,max=6, + into=("HY","EPY", "HZ1","EPZ1","HZ2","EPZ2") ), + VALE =SIMP(statut='o',typ='R',min=3 ,max=6), + ), + ), + b_cercle =BLOC( condition = "SECTION=='CERCLE'", + VARI_SECT =SIMP(statut='f',typ='TXM',into=("CONSTANT","HOMOTHETIQUE"),defaut="CONSTANT"), + b_constant =BLOC( condition = "VARI_SECT=='CONSTANT'", + CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=1 ,max=2, + fr="R est un paramètre obligatoire", + into=("R","EP") ), + VALE =SIMP(statut='o',typ='R',min=1 ,max=2), + ), + b_homothetique =BLOC( condition = "VARI_SECT=='HOMOTHETIQUE'", + CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=2 ,max=4, + fr="R1, R2 sont des paramètres obligatoires", + into=("R1","R2","EP1","EP2") ), + VALE =SIMP(statut='o',typ='R',min=2 ,max=4), + ), + MODI_METRIQUE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + FCX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + TUYAU_NSEC =SIMP(statut='f',typ='I',val_max=32,defaut=16), + TUYAU_NCOU =SIMP(statut='f',typ='I',val_max=10,defaut=3), + ), + ), + +#============================================================================ + BARRE =FACT(statut='f',max='**', + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + SECTION =SIMP(statut='o',typ='TXM',into=("GENERALE","RECTANGLE","CERCLE") ), + b_generale =BLOC( condition = "SECTION=='GENERALE'", + CARA =SIMP(statut='o',typ='TXM',into=("A",) ), + VALE =SIMP(statut='o',typ='R',min=1,max=1 ), + ), + b_rectangle =BLOC( condition = "SECTION=='RECTANGLE'", + CARA =SIMP(statut='o',typ='TXM',into=("H","EP", + "HZ","HY","EPY","EPZ"), + validators=NoRepeat(),min=1,max=4 ), + VALE =SIMP(statut='o',typ='R',min=1,max=4 ), + ), + b_cercle =BLOC( condition = "SECTION=='CERCLE'", + CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=1,max=2,into=("R","EP") ), + VALE =SIMP(statut='o',typ='R',min=1,max=2 ), + ), + FCX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + +#============================================================================ + COQUE =FACT(statut='f',max='**', + regles=(UN_PARMI('MAILLE','GROUP_MA' ), + PRESENT_PRESENT( 'EXCENTREMENT','INER_ROTA' ),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + EPAIS =SIMP(statut='o',typ='R' ), + ANGL_REP =SIMP(statut='f',typ='R',min=2,max=2), + A_CIS =SIMP(statut='c',typ='R',defaut= 0.8333333E0), + COEF_RIGI_DRZ =SIMP(statut='f',typ='R',defaut= 1.0E-5 ), + COQUE_NCOU =SIMP(statut='f',typ='I',defaut= 1 ), + EXCENTREMENT =SIMP(statut='f',typ='R' ), + INER_ROTA =SIMP(statut='f',typ='TXM',into=("OUI",) ), + MODI_METRIQUE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + ), + +#============================================================================ + CABLE =FACT(statut='f',max='**', + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + N_INIT =SIMP(statut='f',typ='R',defaut= 5000. ), + SECTION =SIMP(statut='f',typ='R' ), + FCX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + +#============================================================================ + DISCRET =FACT(statut='f',max='**', + REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ), + AMOR_HYST =SIMP(statut='f',typ='R' ), + CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1, + fr="Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds", + into=("K_T_D_N","K_T_D_L","K_TR_D_N","K_TR_D_L", + "K_T_N", "K_T_L", "K_TR_N", "K_TR_L", + "M_T_D_N","M_TR_D_N","M_T_N", + "M_T_L", "M_TR_N", "M_TR_L", + "A_T_D_N","A_TR_D_N","A_T_D_L","A_TR_D_L", + "A_T_N", "A_T_L", "A_TR_N", "A_TR_L") ), + +# affection des caractéristiques de RIGIDITE/AMORTISSEMENT + b_K_T_D_N =BLOC(condition = "(CARA=='K_T_D_N')or(CARA=='A_T_D_N')", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), + b_K_T_D_L =BLOC(condition = "(CARA=='K_T_D_L')or(CARA=='A_T_D_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), + b_K_TR_D_N =BLOC(condition = "(CARA=='K_TR_D_N')or(CARA=='A_TR_D_N')", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + VALE =SIMP(statut='o',typ='R',min=6 ,max=6 ),), + b_K_TR_D_L =BLOC(condition = "(CARA=='K_TR_D_L')or(CARA=='A_TR_D_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + VALE =SIMP(statut='o',typ='R',min=6 ,max=6 ),), + b_K_T_N =BLOC(condition = "(CARA=='K_T_N')or(CARA=='A_T_N')", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + VALE =SIMP(statut='o',typ='R',min=6 ,max=6 ),), + b_K_T_L =BLOC(condition = "(CARA=='K_T_L')or(CARA=='A_T_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + VALE =SIMP(statut='o',typ='R',min=21,max=21),), + b_K_TR_N =BLOC(condition = "(CARA=='K_TR_N')or(CARA=='A_TR_N')", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + VALE =SIMP(statut='o',typ='R',min=21,max=21),), + b_K_TR_L =BLOC(condition = "(CARA=='K_TR_L')or(CARA=='A_TR_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + VALE =SIMP(statut='o',typ='R',min=78,max=78),), + +# affection des caractéristiques de MASSE + b_M_T_D_N =BLOC(condition = "CARA=='M_T_D_N'", + fr="NOEUD: 1 valeur de masse", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + VALE =SIMP(statut='o',typ='R',min=1 ,max=1 ),), + b_M_TR_D_N =BLOC(condition = "CARA=='M_TR_D_N'", + fr="NOEUD: 1 valeur de masse, 6 valeurs du tenseur d'inertie, 3 composantes du vecteur d'excentricité", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + VALE =SIMP(statut='o',typ='R',min=10,max=10),), + b_M_T_N =BLOC(condition = "CARA=='M_T_N'", + fr="NOEUD: 6 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + VALE =SIMP(statut='o',typ='R',min=6 ,max=6 ),), + b_M_T_L =BLOC(condition = "CARA=='M_T_L'", + fr="SEGMENT: 21 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + VALE =SIMP(statut='o',typ='R',min=21,max=21),), + b_M_TR_N =BLOC(condition = "CARA=='M_TR_N'", + fr="NOEUD: 21 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + VALE =SIMP(statut='o',typ='R',min=21,max=21),), + b_M_TR_L =BLOC(condition = "CARA=='M_TR_L'", + fr="SEGMENT: 78 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + VALE =SIMP(statut='o',typ='R',min=78,max=78),), + ), + +#============================================================================ + DISCRET_2D =FACT(statut='f',max='**', + REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ), + AMOR_HYST =SIMP(statut='f',typ='R' ), + CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1, + fr="Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds", + into=("K_T_D_N","K_T_D_L","K_TR_D_N","K_TR_D_L", + "K_T_N", "K_T_L", "K_TR_N", "K_TR_L", + "M_T_D_N","M_T_N", "M_TR_D_N", + "M_T_L", "M_TR_N", "M_TR_L", + "A_T_D_N","A_TR_D_N","A_T_D_L","A_TR_D_L", + "A_T_N", "A_T_L", "A_TR_N", "A_TR_L") ), + +# affection des caractéristiques de RIGIDITE/AMORTISSEMENT + b_K_T_D_N =BLOC(condition = "(CARA=='K_T_D_N')or(CARA=='A_T_D_N')", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + VALE =SIMP(statut='o',typ='R',min=2 ,max=2 ),), + b_K_T_D_L =BLOC(condition = "(CARA=='K_T_D_L')or(CARA=='A_T_D_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + VALE =SIMP(statut='o',typ='R',min=2 ,max=2 ),), + b_K_TR_D_N =BLOC(condition = "(CARA=='K_TR_D_N')or(CARA=='A_TR_D_N')", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), + b_K_TR_D_L =BLOC(condition = "(CARA=='K_TR_D_L')or(CARA=='A_TR_D_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), + b_K_T_N =BLOC(condition = "(CARA=='K_T_N')or(CARA=='A_T_N')", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), + b_K_T_L =BLOC(condition = "(CARA=='K_T_L')or(CARA=='A_T_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + VALE =SIMP(statut='o',typ='R',min=10,max=10),), + b_K_TR_N =BLOC(condition = "(CARA=='K_TR_N')or(CARA=='A_TR_N')", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + VALE =SIMP(statut='o',typ='R',min=6 ,max=6),), + b_K_TR_L =BLOC(condition = "(CARA=='K_TR_L')or(CARA=='A_TR_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + VALE =SIMP(statut='o',typ='R',min=21,max=21),), + +# affection des caractéristiques de MASSE + b_M_T_D_N =BLOC(condition = "CARA=='M_T_D_N'", + fr="NOEUD: 1 valeur de masse", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + VALE =SIMP(statut='o',typ='R',min=1 ,max=1 ),), + b_M_TR_D_N =BLOC(condition = "CARA=='M_TR_D_N'", + fr="NOEUD: 1 valeur de masse(m), 1 valeur d'inertie(Izz), 2 composantes du vecteur d'excentricité(ex,ey) ", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + VALE =SIMP(statut='o',typ='R',min=4 ,max=4 ),), + b_M_T_N =BLOC(condition = "CARA=='M_T_N'", + fr="NOEUD: 3 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), + b_M_T_L =BLOC(condition = "CARA=='M_T_L'", + fr="SEGMENT: 10 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + VALE =SIMP(statut='o',typ='R',min=10,max=10),), + b_M_TR_N =BLOC(condition = "CARA=='M_TR_N'", + fr="NOEUD: 6 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + VALE =SIMP(statut='o',typ='R',min=6 ,max=6 ),), + b_M_TR_L =BLOC(condition = "CARA=='M_TR_L'", + fr="SEGMENT: 21 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + VALE =SIMP(statut='o',typ='R',min=21,max=21),), + ), + +#============================================================================ + ORIENTATION =FACT(statut='f',max='**', + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO' ),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + CARA =SIMP(statut='o',typ='TXM', + into=("VECT_Y","ANGL_VRIL","VECT_X_Y","ANGL_NAUT","GENE_TUYAU") ), + VALE =SIMP(statut='o',typ='R',max='**'), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-4 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + ), + +#============================================================================ + DEFI_ARC =FACT(statut='f',max='**', + regles=(UN_PARMI('MAILLE','GROUP_MA'), + UN_PARMI('ORIE_ARC','CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE', + 'POIN_TANG','NOEUD_POIN_TANG','GROUP_NO_POIN_TG'), + PRESENT_PRESENT('ORIE_ARC','RAYON'), + EXCLUS('COEF_FLEX','COEF_FLEX_XY'), + EXCLUS('COEF_FLEX','COEF_FLEX_XZ'), + EXCLUS('INDI_SIGM','INDI_SIGM_XY'), + EXCLUS('INDI_SIGM','INDI_SIGM_XZ'), + PRESENT_PRESENT('COEF_FLEX_XY','COEF_FLEX_XZ'), + PRESENT_PRESENT('INDI_SIGM_XY','INDI_SIGM_XZ'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + ORIE_ARC =SIMP(statut='f',typ='R'), + CENTRE =SIMP(statut='f',typ='R',max='**'), + NOEUD_CENTRE =SIMP(statut='f',typ=no), + GROUP_NO_CENTRE =SIMP(statut='f',typ=grno), + POIN_TANG =SIMP(statut='f',typ='R',max='**'), + NOEUD_POIN_TANG =SIMP(statut='f',typ=no), + GROUP_NO_POIN_TG=SIMP(statut='f',typ=grno), + RAYON =SIMP(statut='f',typ='R'), + COEF_FLEX =SIMP(statut='f',typ='R'), + INDI_SIGM =SIMP(statut='f',typ='R'), + COEF_FLEX_XY =SIMP(statut='f',typ='R'), + INDI_SIGM_XY =SIMP(statut='f',typ='R'), + COEF_FLEX_XZ =SIMP(statut='f',typ='R'), + INDI_SIGM_XZ =SIMP(statut='f',typ='R'), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + ), + +#============================================================================ + MASSIF =FACT(statut='f',max='**', + regles=(UN_PARMI('MAILLE','GROUP_MA'), + UN_PARMI('ANGL_REP','ANGL_AXE'), + EXCLUS('ANGL_REP','ANGL_AXE'), + EXCLUS('ANGL_REP','ORIG_AXE'), + PRESENT_PRESENT('ANGL_AXE','ORIG_AXE'), ), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + ANGL_REP =SIMP(statut='f',typ='R',max=3), + ANGL_AXE =SIMP(statut='f',typ='R',max=2), + ORIG_AXE =SIMP(statut='f',typ='R',max=3), + ), + +#============================================================================ + POUTRE_FLUI =FACT(statut='f',max='**', + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + B_T =SIMP(statut='o',typ='R'), + B_N =SIMP(statut='o',typ='R'), + B_TN =SIMP(statut='o',typ='R',defaut= 0.E+0 ), + A_FLUI =SIMP(statut='o',typ='R'), + A_CELL =SIMP(statut='o',typ='R'), + COEF_ECHELLE =SIMP(statut='o',typ='R'), + ), + +#============================================================================ + GRILLE =FACT(statut='f',max='**', + regles=(UN_PARMI('MAILLE','GROUP_MA'), + EXCLUS('ANGL_REP','ORIG_AXE'), + ENSEMBLE('ORIG_AXE','AXE')), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + SECTION =SIMP(statut='o',typ='R'), + ANGL_REP =SIMP(statut='f',typ='R',max=2), + EXCENTREMENT =SIMP(statut='f',typ='R'), + ORIG_AXE =SIMP(statut='f',typ='R',max='**'), + AXE =SIMP(statut='f',typ='R',max='**'), + COEF_RIGI_DRZ =SIMP(statut='f',typ='R',defaut= 1.0E-10 ), + GRILLE_NCOU =SIMP(statut='f',typ='I',defaut= 1,), + ), + +#============================================================================ + RIGI_PARASOL =FACT(statut='f',max='**', + regles=(UN_PARMI('COEF_GROUP','FONC_GROUP'), + UN_PARMI('COOR_CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE'),), + GROUP_MA =SIMP(statut='o',typ=ma,validators=NoRepeat(),max='**'), + GROUP_MA_POI1 =SIMP(statut='f',typ=ma), + FONC_GROUP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + COEF_GROUP =SIMP(statut='f',typ='R',max='**'), + REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ), + CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=2, + into=("K_TR_D_N","A_TR_D_N", + "K_T_D_N", "A_T_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='**'), + ), + +#============================================================================ + RIGI_MISS_3D =FACT(statut='f',max='**', + GROUP_MA_POI1 =SIMP(statut='o',typ=ma,max=1), + GROUP_MA_SEG2 =SIMP(statut='f',typ=ma,max=1), + FREQ_EXTR =SIMP(statut='o',typ='R',max=1), + UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30), + ), + +#============================================================================ + ASSE_GRIL =FACT(statut='f',max='**', + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),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',max='**', + regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), + AU_MOINS_UN('TOUT_SECT','GROUP_MA_SECT','MAILLE_SECT'), + PRESENT_ABSENT('TOUT_SECT','GROUP_MA_SECT','MAILLE_SECT'),), + + NOM =SIMP(statut='f',typ='TXM'), + + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + + TOUT_SECT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA_SECT =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_SECT =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + + MAILLAGE_SECT =SIMP(statut='o',typ=maillage_sdaster), + COOR_AXE_POUTRE =SIMP(statut='o',typ='R',min=2,max=2), + ), + + +#============================================================================ + AFFE_FIBRE =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),), + + NOM =SIMP(statut='f',typ='TXM'), + + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + + 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 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +AFFE_CHAR_ACOU=OPER(nom="AFFE_CHAR_ACOU",op= 68,sd_prod=char_acou, + fr="Affectation de charges et conditions aux limites acoustiques constantes", + reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + regles=(AU_MOINS_UN('PRES_IMPO','VITE_FACE','IMPE_FACE','LIAISON_UNIF' ),), + MODELE =SIMP(statut='o',typ=modele_sdaster ), + VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + PRES_IMPO =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + PRES =SIMP(statut='o',typ='C' ), + ), + VITE_FACE =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + VNOR =SIMP(statut='o',typ='C' ), + ), + IMPE_FACE =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + IMPE =SIMP(statut='o',typ='C' ), + ), + LIAISON_UNIF =FACT(statut='f',max='**', + regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE' ),), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + DDL =SIMP(statut='o',typ='TXM',max='**'), + ), +) ; +#& MODIF COMMANDE DATE 23/05/2006 AUTEUR CIBHHPD L.SALMONA +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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,**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=OPER(nom="AFFE_CHAR_CINE",op= 101,sd_prod=affe_char_cine_prod + ,fr="Affectation de conditions aux limites cinématiques pour traitement sans dualisation", + reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + regles=(AU_MOINS_UN('MECA_IMPO','THER_IMPO'), + EXCLUS('MECA_IMPO','THER_IMPO'),), + MODELE =SIMP(statut='o',typ=modele_sdaster ), + MECA_IMPO =FACT(statut='f',max='**', + regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'), + AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','TEMP','PHI'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + 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',max='**', + regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'), + AU_MOINS_UN('TEMP','TEMP_INF','TEMP_SUP'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + TEMP_SUP =SIMP(statut='f',typ='R' ), + TEMP =SIMP(statut='f',typ='R' ), + TEMP_INF =SIMP(statut='f',typ='R' ), + ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; +#& MODIF COMMANDE DATE 30/06/2004 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. +#fon +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +def affe_char_cine_f_prod(MECA_IMPO,THER_IMPO,**args): + if MECA_IMPO != None : return char_cine_meca + if THER_IMPO != None : return char_cine_ther + raise AsException("type de concept resultat non prevu") + +AFFE_CHAR_CINE_F=OPER(nom="AFFE_CHAR_CINE_F",op= 108,sd_prod=affe_char_cine_f_prod + ,fr="Affectation de conditions aux limites cinématiques pour traitement sans dualisation", + reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + regles=(AU_MOINS_UN('MECA_IMPO','THER_IMPO'), + EXCLUS('MECA_IMPO','THER_IMPO'),), + MODELE =SIMP(statut='o',typ=modele_sdaster ), + MECA_IMPO =FACT(statut='f',max='**', + regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'), + AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','TEMP','PHI'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + DX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DRY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DRZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + GRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + PHI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + THER_IMPO =FACT(statut='f',max='**', + regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'), + AU_MOINS_UN('TEMP','TEMP_INF','TEMP_SUP' ),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + TEMP_SUP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + TEMP_INF =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; +#& MODIF COMMANDE DATE 08/03/2005 AUTEUR LAMARCHE S.LAMARCHE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE G8BHHXD X.DESROCHES + +AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca + ,fr="Affectation de charges et conditions aux limites mécaniques constantes", + reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + regles=(AU_MOINS_UN('DDL_IMPO','FACE_IMPO','LIAISON_DDL','LIAISON_XFEM','FORCE_NODALE', + 'FORCE_FACE','FORCE_ARETE','FORCE_CONTOUR','FORCE_INTERNE', + 'PRES_REP','FORCE_POUTRE','FORCE_COQUE','LIAISON_OBLIQUE', + 'FORCE_ELEC','INTE_ELEC','PESANTEUR','ROTATION','IMPE_FACE', + 'VITE_FACE','TEMP_CALCULEE','RELA_CINE_BP','EPSI_INIT','CONTACT', + 'LIAISON_GROUP','LIAISON_UNIF','FLUX_THM_REP', + 'LIAISON_SOLIDE','LIAISON_ELEM','ONDE_FLUI','PRES_CALCULEE', + 'EPSA_CALCULEE','LIAISON_CHAMNO','VECT_ASSE','LIAISON_COQUE', + 'LIAISON_MAIL','FORCE_TUYAU','SECH_CALCULEE','HYDR_CALCULEE', + 'EFFE_FOND','EVOL_CHAR','ARLEQUIN','DDL_POUTRE','GRAPPE_FLUIDE'), + 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_sdaster) ), + 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',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), + AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', + 'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2', + 'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4', + 'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6', + 'VO6','WI6','WO6','WO','WI1','WO1','GONF','LIAISON'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + LIAISON =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)), + DX =SIMP(statut='f',typ='R' ), + DY =SIMP(statut='f',typ='R' ), + DZ =SIMP(statut='f',typ='R' ), + DRX =SIMP(statut='f',typ='R' ), + DRY =SIMP(statut='f',typ='R' ), + DRZ =SIMP(statut='f',typ='R' ), + GRX =SIMP(statut='f',typ='R' ), + PRES =SIMP(statut='f',typ='R' ), + PHI =SIMP(statut='f',typ='R' ), + TEMP =SIMP(statut='f',typ='R' ), + PRE1 =SIMP(statut='f',typ='R' ), + PRE2 =SIMP(statut='f',typ='R' ), + UI2 =SIMP(statut='f',typ='R' ), + UI3 =SIMP(statut='f',typ='R' ), + UI4 =SIMP(statut='f',typ='R' ), + UI5 =SIMP(statut='f',typ='R' ), + UI6 =SIMP(statut='f',typ='R' ), + UO2 =SIMP(statut='f',typ='R' ), + UO3 =SIMP(statut='f',typ='R' ), + UO4 =SIMP(statut='f',typ='R' ), + UO5 =SIMP(statut='f',typ='R' ), + UO6 =SIMP(statut='f',typ='R' ), + VI2 =SIMP(statut='f',typ='R' ), + VI3 =SIMP(statut='f',typ='R' ), + VI4 =SIMP(statut='f',typ='R' ), + VI5 =SIMP(statut='f',typ='R' ), + VI6 =SIMP(statut='f',typ='R' ), + VO2 =SIMP(statut='f',typ='R' ), + VO3 =SIMP(statut='f',typ='R' ), + VO4 =SIMP(statut='f',typ='R' ), + VO5 =SIMP(statut='f',typ='R' ), + VO6 =SIMP(statut='f',typ='R' ), + WI2 =SIMP(statut='f',typ='R' ), + WI3 =SIMP(statut='f',typ='R' ), + WI4 =SIMP(statut='f',typ='R' ), + WI5 =SIMP(statut='f',typ='R' ), + WI6 =SIMP(statut='f',typ='R' ), + WO2 =SIMP(statut='f',typ='R' ), + WO3 =SIMP(statut='f',typ='R' ), + WO4 =SIMP(statut='f',typ='R' ), + WO5 =SIMP(statut='f',typ='R' ), + WO6 =SIMP(statut='f',typ='R' ), + WO =SIMP(statut='f',typ='R' ), + WI1 =SIMP(statut='f',typ='R' ), + WO1 =SIMP(statut='f',typ='R' ), + GONF =SIMP(statut='f',typ='R' ), + ), + + + + DDL_POUTRE =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('GROUP_NO','NOEUD'), + AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ'), + UN_PARMI('VECT_Y','ANGL_VRIL'),), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + DX =SIMP(statut='f',typ='R' ), + DY =SIMP(statut='f',typ='R' ), + DZ =SIMP(statut='f',typ='R' ), + DRX =SIMP(statut='f',typ='R' ), + DRY =SIMP(statut='f',typ='R' ), + DRZ =SIMP(statut='f',typ='R' ), +# définition du repère local + VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), + ANGL_VRIL =SIMP(statut='f',typ='R',), +# restriction sur les mailles servant à définir le repère local + GROUP_MA =SIMP(statut='f',typ=grma,), + MAILLE =SIMP(statut='f',typ=ma,), + ), + + + + FACE_IMPO =FACT(statut='f',max='**', + regles=(UN_PARMI('GROUP_MA','MAILLE',), + AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', + 'TEMP','PRE1','PRE2','DNOR','DTAN'), + EXCLUS('DNOR','DX'), + EXCLUS('DNOR','DY'), + EXCLUS('DNOR','DZ'), + EXCLUS('DNOR','DRX'), + EXCLUS('DNOR','DRY'), + EXCLUS('DNOR','DRZ'), + EXCLUS('DTAN','DX'), + EXCLUS('DTAN','DY'), + EXCLUS('DTAN','DZ'), + EXCLUS('DTAN','DRX'), + EXCLUS('DTAN','DRY'), + EXCLUS('DTAN','DRZ'),), +# rajout d'un mot clé REPERE :/ LOCAL /GLOBAL + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + 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',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='R' ), + ), + + LIAISON_OBLIQUE =FACT(statut='f',max='**', + fr="Appliquer à des noeuds une valeur de déplacement dans un repere oblique", + regles=(UN_PARMI('GROUP_NO','NOEUD'), + UN_PARMI('DX','DY','DZ','DRX','DRY','DRZ'),), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + ANGL_NAUT =SIMP(statut='o',typ='R',max=3), + DX =SIMP(statut='f',typ='R' ), + DY =SIMP(statut='f',typ='R' ), + DZ =SIMP(statut='f',typ='R' ), + DRX =SIMP(statut='f',typ='R' ), + DRY =SIMP(statut='f',typ='R' ), + DRZ =SIMP(statut='f',typ='R' ), + ), + + LIAISON_GROUP =FACT(statut='f',max='**', + fr="Dé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,validators=NoRepeat(),max='**'), + MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + + SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), + DDL_1 =SIMP(statut='o',typ='TXM',max='**'), + COEF_MULT_1 =SIMP(statut='o',typ='R' ,max='**'), + DDL_2 =SIMP(statut='o',typ='TXM',max='**'), + COEF_MULT_2 =SIMP(statut='o',typ='R' ,max='**'), + COEF_IMPO =SIMP(statut='o',typ='R' ), + SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ), + TRAN =SIMP(statut='f',typ='R',max=3), + ANGL_NAUT =SIMP(statut='f',typ='R',max=3), + CENTRE =SIMP(statut='f',typ='R',max=3), + ), + + LIAISON_MAIL =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('GROUP_MA_MAIT','MAILLE_MAIT'), + AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL'), + PRESENT_PRESENT('DDL_MAIT','DDL_ESCL'),), + GROUP_MA_MAIT =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_MAIT =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA_ESCL =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_ESCL =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO_ESCL =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_ESCL =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + TRAN =SIMP(statut='f',typ='R',max=3 ), + ANGL_NAUT =SIMP(statut='f',typ='R',max=3 ), + CENTRE =SIMP(statut='f',typ='R',max=3 ), + DDL_MAIT =SIMP(statut='f',typ='TXM',into=("DNOR",) ), + DDL_ESCL =SIMP(statut='f',typ='TXM',into=("DNOR",) ), + ), + + + LIAISON_SOLIDE =FACT(statut='f',fr="Modéliser une partie indéformable d'une structure",max='**', + regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), + ), + + LIAISON_ELEM =FACT(statut='f',fr="Raccorder une poutre à une partie massive 3D ou une coque",max='**', + regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'), + UN_PARMI('GROUP_NO_2','NOEUD_2'),), + OPTION =SIMP(statut='o',typ='TXM',into=("3D_TUYAU","3D_POU","COQ_POU","COQ_TUYAU") ), + GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), + CARA_ELEM =SIMP(statut='f',typ=(cara_elem) ), + AXE_POUTRE =SIMP(statut='f',typ='R',max=3), + ANGL_MAX =SIMP(statut='f',typ='R',defaut= 1. ), + ), + + LIAISON_UNIF =FACT(statut='f',max='**', + fr="Imposer une meme valeur (inconnue) à des ddls d'un emsemble de noeuds", + regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + DDL =SIMP(statut='o',typ='TXM',max='**'), + ), + + LIAISON_CHAMNO =FACT(statut='f',max='**', + fr="définir une relation linéaire entre tous les ddls d'un concept cham_no_sdaster", +# type de cham_no_sdaster CO() + CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster), #CO() + COEF_IMPO =SIMP(statut='o',typ='R' ), + NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), + ), + + LIAISON_XFEM =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ), + + VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r ), + + CONTACT =FACT(statut='f',fr="Imposer du contact avec ou sans frottement",max='**', + regles=(UN_PARMI('GROUP_MA_ESCL','MAILLE_ESCL'),), + APPARIEMENT =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL", + into=("NON","NODAL","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_MAIT =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_MAIT =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA_ESCL =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_ESCL =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + TOLE_PROJ_EXT =SIMP(statut='f',typ='R',defaut=0.50), + TOLE_PROJ_INT =SIMP(statut='f',typ='R',defaut=0.001), + ITER_MULT_MAXI =SIMP(statut='f',typ='I',defaut=4), + + b_active =BLOC(condition = "METHODE == 'CONTRAINTE' ", + fr="Paramètres de la méthode des contraintes actives (contact uniquement)", + regles=(EXCLUS('DIST_ESCL','COEF_IMPO'), + EXCLUS('DIST_MAIT','COEF_IMPO'),), + NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","PRES","TEMP","PRE1","PRE2")), + FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS",) ), + NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), + REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",into=("AUTOMATIQUE","CONTROLE","SANS")), + b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ", + fr="Paramètre de la réactualisation géométrique", + NB_REAC_GEOM =SIMP(statut='o',typ='I'),), + SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), + COEF_IMPO =SIMP(statut='f',typ='R'), + COEF_MULT_ESCL =SIMP(statut='f',typ='R'), + VECT_NORM_ESCL =SIMP(statut='f',typ='R',max=3), + VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), + DIST_MAIT =SIMP(statut='f',typ='R'), + DIST_ESCL =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",) ), + NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), + REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",into=("AUTOMATIQUE","CONTROLE","SANS")), + b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ", + fr="Paramètre de la réactualisation géométrique", + NB_REAC_GEOM =SIMP(statut='o',typ='I'),), + SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), + DIST_MAIT =SIMP(statut='f',typ='R'), + DIST_ESCL =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',), + 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",) ), + NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), + REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",into=("AUTOMATIQUE","CONTROLE","SANS")), + b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ", + fr="Paramètre de la réactualisation géométrique", + NB_REAC_GEOM =SIMP(statut='o',typ='I'),), + SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), + DIST_MAIT =SIMP(statut='f',typ='R'), + DIST_ESCL =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',), + 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","VITE")), + 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")), + FORMULATION =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE")), + DIRE_APPA =SIMP(statut='f',typ='R',max=3,defaut=(0.,0.,0.,)), + ITER_GEOM_MAXI =SIMP(statut='f',typ='I',defaut=2), + ITER_CONT_MAXI =SIMP(statut='f',typ='I',defaut=30), + b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", + COULOMB =SIMP(statut='o',typ='R',), + ITER_FROT_MAXI =SIMP(statut='f',typ='I',defaut=2), + COEF_REGU_FROT =SIMP(statut='f',typ='R',defaut=100.E+0), + SEUIL_INIT =SIMP(statut='f',typ='R',defaut=0.E+0),),), + ), + + FORCE_NODALE =FACT(statut='f',fr="Imposer des forces nodales en des noeuds",max='**', + regles=(AU_MOINS_UN('GROUP_NO','NOEUD'), + AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + FX =SIMP(statut='f',typ='R' ), + FY =SIMP(statut='f',typ='R' ), + FZ =SIMP(statut='f',typ='R' ), + MX =SIMP(statut='f',typ='R' ), + MY =SIMP(statut='f',typ='R' ), + MZ =SIMP(statut='f',typ='R' ), + ANGL_NAUT =SIMP(statut='f',typ='R',max=3), + ), + + FORCE_FACE =FACT(statut='f',max='**', + fr="Appliquer des forces surfaciques sur une face d'éléments volumiques", + regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), + AU_MOINS_UN('FX','FY','FZ'),), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + FX =SIMP(statut='f',typ='R' ), + FY =SIMP(statut='f',typ='R' ), + FZ =SIMP(statut='f',typ='R' ), + ), + + FORCE_ARETE =FACT(statut='f',max='**', + fr="Appliquer des forces linéiques à une arete d élément volumique ou de coque", + regles=(AU_MOINS_UN('GROUP_MA','MAILLE',), + AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + FX =SIMP(statut='f',typ='R' ), + FY =SIMP(statut='f',typ='R' ), + FZ =SIMP(statut='f',typ='R' ), + MX =SIMP(statut='f',typ='R' ), + MY =SIMP(statut='f',typ='R' ), + MZ =SIMP(statut='f',typ='R' ), + ), + + FORCE_CONTOUR =FACT(statut='f',max='**', + fr="Appliquer des forces linéiques au bord d'un domaine 2D ou AXIS_FOURIER", + regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), + AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + FX =SIMP(statut='f',typ='R' ), + FY =SIMP(statut='f',typ='R' ), + FZ =SIMP(statut='f',typ='R' ), + MX =SIMP(statut='f',typ='R' ), + MY =SIMP(statut='f',typ='R' ), + MZ =SIMP(statut='f',typ='R' ), + ), + + FORCE_INTERNE =FACT(statut='f',max='**', + fr="Appliquer des forces volumiques (2D ou 3D) à un domaine volumique", + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('FX','FY','FZ' ),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + FX =SIMP(statut='f',typ='R' ), + FY =SIMP(statut='f',typ='R' ), + FZ =SIMP(statut='f',typ='R' ), + ), + + PRES_REP =FACT(statut='f',max='**', + fr="Appliquer une pression à un domaine de milieu continu 2D ou 3D", + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('PRES','CISA_2D' ),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + PRES =SIMP(statut='f',typ='R' ), + CISA_2D =SIMP(statut='f',typ='R' ), + ), + + EFFE_FOND =FACT(statut='f',fr="Imposer un effet de fond",max='**', + regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),), + GROUP_MA_INT =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + PRES =SIMP(statut='o',typ='R' ), + ), + + EPSI_INIT =FACT(statut='f',max='**', + fr="Appliquer un chargement de déformation initiale à un volume 3D ou 2D", + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ','EPX', + 'KY','KZ','EXX','EYY','EXY','KXX','KYY','KXY'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + EPXX =SIMP(statut='f',typ='R' ), + EPYY =SIMP(statut='f',typ='R' ), + EPZZ =SIMP(statut='f',typ='R' ), + EPXY =SIMP(statut='f',typ='R' ), + EPXZ =SIMP(statut='f',typ='R' ), + EPYZ =SIMP(statut='f',typ='R' ), + EPX =SIMP(statut='f',typ='R' ), + KY =SIMP(statut='f',typ='R' ), + KZ =SIMP(statut='f',typ='R' ), + EXX =SIMP(statut='f',typ='R' ), + EYY =SIMP(statut='f',typ='R' ), + EXY =SIMP(statut='f',typ='R' ), + KXX =SIMP(statut='f',typ='R' ), + KYY =SIMP(statut='f',typ='R' ), + KXY =SIMP(statut='f',typ='R' ), + ), + + ARLEQUIN =FACT(statut='f',min=1,max='**', + GROUP_MA_1 =SIMP(statut='o',typ=grma,max='**'), + GROUP_MA_2 =SIMP(statut='o',typ=grma,max='**'), + GROUP_MA_COLL =SIMP(statut='f',typ=grma,max='**'), + CARA_ELEM =SIMP(statut='f',typ=cara_elem ), + COND_LIM =SIMP(statut='f',typ=char_meca ), + COLLAGE =SIMP(statut='f',typ='TXM',defaut="GROSSIER",into=("GROSSIER","FIN","GROUP_MA_1","GROUP_MA_2"),), + regles =(UN_PARMI('POIDS_1','POIDS_2','POIDS_GROSSIER','POIDS_FIN',),), + POIDS_1 =SIMP(statut='f',typ='R'), + POIDS_2 =SIMP(statut='f',typ='R'), + POIDS_GROSSIER =SIMP(statut='f',typ='R'), + POIDS_FIN =SIMP(statut='f',typ='R'),), + + FORCE_POUTRE =FACT(statut='f',fr="Appliquer des forces linéiques sur des poutres",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,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE",) ), +# rajour d'un mot clé REPERE :/ LOCAL /GLOBAL + FX =SIMP(statut='f',typ='R' ), + FY =SIMP(statut='f',typ='R' ), + FZ =SIMP(statut='f',typ='R' ), + + N =SIMP(statut='f',typ='R' ), + VY =SIMP(statut='f',typ='R' ), + VZ =SIMP(statut='f',typ='R' ), + + ), + + FORCE_TUYAU =FACT(statut='f',fr="imposer une pression dans un élément TUYAU",max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + PRES =SIMP(statut='f',typ='R' ), + ), + + FORCE_COQUE =FACT(statut='f',fr="Appliquer des forces surfaciques sur des coques",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,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + + FX =SIMP(statut='f',typ='R' ), + FY =SIMP(statut='f',typ='R' ), + FZ =SIMP(statut='f',typ='R' ), + MX =SIMP(statut='f',typ='R' ), + MY =SIMP(statut='f',typ='R' ), + MZ =SIMP(statut='f',typ='R' ), + + F1 =SIMP(statut='f',typ='R' ), + F2 =SIMP(statut='f',typ='R' ), + F3 =SIMP(statut='f',typ='R' ), + MF1 =SIMP(statut='f',typ='R' ), + MF2 =SIMP(statut='f',typ='R' ), + + PRES =SIMP(statut='f',typ='R' ), + PLAN =SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL",) ), + ), + + + GRAPPE_FLUIDE =FACT(statut='f',max='**', + regles=(EXCLUS('GROUP_NO_EXTR','NOEUD_EXTR'), + EXCLUS('GROUP_NO_ORIG','NOEUD_ORIG'), + PRESENT_PRESENT('CARA_HYDR','VALE_HYDR'), + PRESENT_PRESENT('CARA_GRAPPE','VALE_GRAPPE'), + PRESENT_PRESENT('CARA_COMMANDE','VALE_COMMANDE'), + PRESENT_PRESENT('CARA_MANCHETTE','VALE_MANCHETTE'), + PRESENT_PRESENT('CARA_GUIDE','VALE_GUIDE'), + PRESENT_PRESENT('CARA_ASSEMBLAGE','VALE_ASSEMBLAGE'), + PRESENT_PRESENT('CARA_PDC','VALE_PDC'),), + GROUP_MA =SIMP(statut='f',typ=grma,max=1), + GROUP_NO_EXTR =SIMP(statut='f',typ=grno,max=1), + NOEUD_EXTR =SIMP(statut='f',typ=no,max=1), + GROUP_NO_ORIG =SIMP(statut='f',typ=grno,max=1), + NOEUD_ORIG =SIMP(statut='f',typ=no,max=1), + Z0 =SIMP(statut='f',typ='R' ), + CARA_HYDR =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', + fr="définition des données hydrauliques", + into=("Q","ROC","ROD","ROP","ROM","ROML","ROG","NUC","NUM", + "NUML","NUG","P2","P3","P4","CGG","G") ), + VALE_HYDR =SIMP(statut='f',typ='R',max='**', + fr="valeurs des données hydrauliques",), + CARA_GRAPPE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', + fr="définition des données géométriques de la grappe", + into=("M","DTIGE","DTMOY","ROTIGE","LTIGE","LLT","LCT", + "VARAI","RORAI","DCRAY","ROCRAY","LCRAY","LCHUT", + "CFCM","CFCI","CFCG","HRUGC","HRUGTC","NCA") ), + VALE_GRAPPE =SIMP(statut='f',typ='R',max='**', + fr="valeurs des données géométriques de la grappe",), + CARA_COMMANDE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', + fr="définition des données géométriques du mécanisme de commande", + into=("LI","LML","LG","LIG","DIML","DEML","DCSP", + "DG","HRUGML","HRUGCSP","HRUGG") ), + VALE_COMMANDE =SIMP(statut='f',typ='R',max='**', + fr="valeurs des données géométriques du mécanisme de commande",), + CARA_MANCHETTE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', + fr="définition des données géométriques de la manchette et son adaptateur", + into=("LM","LA","LIM","DIMT","DEMT","DCMT","VMT", + "ROMT","DA","HRUGM","HRUGA") ), + VALE_MANCHETTE =SIMP(statut='f',typ='R',max='**', + fr="valeurs des données géométriques de la manchette et son adaptateur",), + CARA_GUIDE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', + fr="définition des données géométriques des tubes guides", + into=("NRET","L0","L1","L2","L3","L4","DTG","DR", + "DOR","D0","D00","HRUGTG") ), + VALE_GUIDE =SIMP(statut='f',typ='R',max='**', + fr="valeurs des données géométriques des tubes guides",), + CARA_ASSEMBLAGE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', + fr="définition des données géométriques des assemblages", + into=("SASS","DCC","DTI","NGM","NGMDP","KM","KS","KI", + "KES","KEI","KF") ), + VALE_ASSEMBLAGE =SIMP(statut='f',typ='R',max='**', + fr="valeurs des données géométriques des assemblages",), + CARA_PDC =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', + fr="définition des coefficients de perte de charge singulière", + into=("CD0","CD1","CD2","CDELARG","CDRET","CDM","CDA","CDML", + "CDI","CDG") ), + VALE_PDC =SIMP(statut='f',typ='R',max='**', + fr="valeurs des coefficients de perte de charge singulière",), + APPL_FORC_ARCHI =SIMP(statut='f',typ='TXM',defaut="REPARTIE" , + fr="application de la force d'archimède", + into=("REPARTIE","CDG") ), + APPL_FORC_FPLAQ =SIMP(statut='f',typ='TXM',defaut="REPARTIE" , + fr="application de la force de plaquage dans le guidage continu", + into=("REPARTIE","CDG","ZONE","MILIEU","DISTRI") ), + APPL_FORC_FMEC =SIMP(statut='f',typ='TXM',defaut="REPARTIE" , + fr="application de la force dans le mécanisme de levée", + into=("REPARTIE","CDG","ZONE","PTREP") ), + APPL_FORC_FTG =SIMP(statut='f',typ='TXM',defaut="REPARTIE" , + fr="application de la force tube_guide", + into=("REPARTIE","CDG","ZONE","PTREP") ), + DIRE_FORC_FPLAQ =SIMP(statut='f',typ='R',min=3,max=3, + fr="direction d'application de la force de plaquage",), + b_CDG =BLOC(condition = "(APPL_FORC_ARCHI == 'CDG') or (APPL_FORC_FPLAQ == 'CDG') or \ + (APPL_FORC_FMEC == 'CDG') or (APPL_FORC_FTG == 'CDG')", + MASS_INER =SIMP(statut='o',typ=tabl_mass_iner ), + ), + UNITE_IMPR_FORCE =SIMP(statut='f',typ='I', + fr="unité d'impression des forces",), + UNITE_IMPR_NOEUD =SIMP(statut='f',typ='I', + fr="unité d'impression des noeuds par zone",), + ), + + LIAISON_COQUE =FACT(statut='f',max='**', + GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), + ), + + RELA_CINE_BP =FACT(statut='f',max='**', + CABLE_BP =SIMP(statut='o',typ=cabl_precont ), + SIGM_BPEL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + RELA_CINE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + + FORCE_ELEC =FACT(statut='f',max='**', + fr="Force de Laplace due à la présence d'un conducteur rectiligne secondaire non maillé", + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), + + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + + POSITION =SIMP(statut='f',typ='TXM',fr="Direction prédéfinie",into=("PARA","INFI","FINI",) ), + b_fxyz =BLOC ( condition = "POSITION == None", + FX =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + FY =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + FZ =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ), + + b_para =BLOC ( condition = "POSITION == 'PARA'", + regles=(UN_PARMI('TRANS','DIST'),), + TRANS =SIMP(statut='f',typ='R',max=3), + DIST =SIMP(statut='f',typ='R' ), + b_point2 =BLOC ( condition = "DIST != None", + POINT2 =SIMP(statut='o',typ='R',max=3), + ), + ), + b_fini_infi =BLOC ( condition = "(POSITION == 'FINI') or (POSITION == 'INFI')", + POINT1 =SIMP(statut='o',typ='R',max=3), + POINT2 =SIMP(statut='o',typ='R',max=3), + ), + ), + + + + + INTE_ELEC =FACT(statut='f',max='**', + fr="Force de Laplace due à la présence d'un conducteur non rectiligne secondaire", + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('GROUP_MA_2','MAILLE_2','TRANS','SYME'), + EXCLUS('TRANS','SYME'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + TRANS =SIMP(statut='f',typ='R' ,max='**'), + SYME =SIMP(statut='f',typ='R' ,max='**'), + ), + + + IMPE_FACE =FACT(statut='f',fr="Appliquer une impédance acoustique à une face",max='**', + regles=(AU_MOINS_UN('GROUP_MA','MAILLE' ),), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + IMPE =SIMP(statut='o',typ='R' ), + ), + + VITE_FACE =FACT(statut='f',fr="Imposer des vitesses acoustiquesnormales à une face",max='**', + regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + VNOR =SIMP(statut='o',typ='R' ), + ), + + + + ONDE_FLUI =FACT(statut='f',fr="Appliquer une amplitude de pression d onde incidente",max='**', + regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + PRES =SIMP(statut='o',typ='R' ), + ), + + FLUX_THM_REP =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('FLUN','FLUN_HYDR1','FLUN_HYDR2'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + 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 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE G8BHHXD X.DESROCHES +AFFE_CHAR_MECA_C=OPER(nom="AFFE_CHAR_MECA_C",op= 7,sd_prod=char_meca, + fr="Affectation de charges et conditions aux limites mécaniques complexes", + reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + regles=(AU_MOINS_UN('DDL_IMPO','FORCE_POUTRE','LIAISON_DDL', ),), + MODELE =SIMP(statut='o',typ=modele_sdaster ), + VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + DDL_IMPO =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD',), + AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI','LIAISON', ),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + LIAISON =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)), + DX =SIMP(statut='f',typ='C' ), + DY =SIMP(statut='f',typ='C' ), + DZ =SIMP(statut='f',typ='C' ), + DRX =SIMP(statut='f',typ='C' ), + DRY =SIMP(statut='f',typ='C' ), + DRZ =SIMP(statut='f',typ='C' ), + GRX =SIMP(statut='f',typ='C' ), + PRES =SIMP(statut='f',typ='C' ), + PHI =SIMP(statut='f',typ='C' ), + ), + FORCE_POUTRE =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('FX','FY','FZ','N','VY','VZ',), + PRESENT_ABSENT('FX','N','VY','VZ',), + PRESENT_ABSENT('FY','N','VY','VZ',), + PRESENT_ABSENT('FZ','N','VY','VZ',), + PRESENT_ABSENT('N','FX','FY','FZ',), + PRESENT_ABSENT('VY', 'FX','FY','FZ',), + PRESENT_ABSENT('VZ','FX','FY','FZ', ),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE") ), + FX =SIMP(statut='f',typ='C' ), + FY =SIMP(statut='f',typ='C' ), + FZ =SIMP(statut='f',typ='C' ), + N =SIMP(statut='f',typ='C' ), + VY =SIMP(statut='f',typ='C' ), + VZ =SIMP(statut='f',typ='C' ), + ), + LIAISON_DDL =FACT(statut='f',max='**', + 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 02/11/2004 AUTEUR MABBAS M.ABBAS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE G8BHHXD X.DESROCHES +AFFE_CHAR_MECA_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", + reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + regles=(AU_MOINS_UN('DDL_IMPO','FACE_IMPO','LIAISON_DDL','FORCE_NODALE', + 'FORCE_FACE','FORCE_ARETE','FORCE_CONTOUR','FORCE_INTERNE', + 'PRES_REP','FORCE_POUTRE','VITE_FACE','IMPE_FACE','ONDE_PLANE', + 'LIAISON_OBLIQUE','EPSI_INIT','LIAISON_GROUP','LIAISON_UNIF', + 'LIAISON_SOLIDE','FORCE_COQUE','LIAISON_COQUE','FORCE_TUYAU', + 'CONTACT','EFFE_FOND','FLUX_THM_REP'),), + VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + VERI_NORM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + MODELE =SIMP(statut='o',typ=modele_sdaster), + + DDL_IMPO =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), + AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', + 'TEMP','PRE1','PRE2','LIAISON',),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + LIAISON =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)), + DX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DRY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DRZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + GRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + PHI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + PRE1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + PRE2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + FACE_IMPO =FACT(statut='f',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,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + DX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DRY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DRZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + GRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + PHI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + PRE1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + PRE2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DNOR =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DTAN =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + LIAISON_DDL =FACT(statut='f',max='**', + fr="Dé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_sdaster,nappe_sdaster,formule) ), + ), + + LIAISON_OBLIQUE =FACT(statut='f',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_sdaster,nappe_sdaster,formule) ), + DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DRY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DRZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + LIAISON_GROUP =FACT(statut='f',max='**', + fr="Dé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,validators=NoRepeat(),max='**'), + MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + DDL_1 =SIMP(statut='o',typ='TXM',max='**'), + COEF_MULT_1 =SIMP(statut='o',typ='R',max='**'), + DDL_2 =SIMP(statut='o',typ='TXM',max='**'), + COEF_MULT_2 =SIMP(statut='o',typ='R',max='**'), + COEF_IMPO =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ), + TRAN =SIMP(statut='f',typ='R',max=3), + ANGL_NAUT =SIMP(statut='f',typ='R',max=3), + CENTRE =SIMP(statut='f',typ='R',max=3), + ), + + CONTACT =FACT(statut='f',fr="Imposer du contact avec ou sans frottement",max='**', + regles=(UN_PARMI('GROUP_MA_ESCL','MAILLE_ESCL'),), + APPARIEMENT =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL", + into=("NON","NODAL","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_MAIT =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_MAIT =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA_ESCL =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_ESCL =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + TOLE_PROJ_EXT =SIMP(statut='f',typ='R',defaut=0.50), + TOLE_PROJ_INT =SIMP(statut='f',typ='R',defaut=0.001), + ITER_MULT_MAXI =SIMP(statut='f',typ='I',defaut=4), + b_active =BLOC(condition = "METHODE == 'CONTRAINTE' ", + fr="Paramètres de la méthode des contraintes actives (contact uniquement)", + regles=(EXCLUS('DIST_ESCL','COEF_IMPO'), + EXCLUS('DIST_MAIT','COEF_IMPO'),), + NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","PRES","TEMP","PRE1","PRE2")), + FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS",) ), + NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), + REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",into=("AUTOMATIQUE","CONTROLE","SANS")), + b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ", + fr="Paramètre de la réactualisation géométrique", + NB_REAC_GEOM =SIMP(statut='o',typ='I'),), + SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), + COEF_IMPO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + COEF_MULT_ESCL =SIMP(statut='f',typ='R'), + VECT_NORM_ESCL =SIMP(statut='f',typ='R',max=3), + VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), + DIST_MAIT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + DIST_ESCL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + 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",) ), + NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), + REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",into=("AUTOMATIQUE","CONTROLE","SANS")), + b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ", + fr="Paramètre de la réactualisation géométrique", + NB_REAC_GEOM =SIMP(statut='o',typ='I'),), + SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), + DIST_MAIT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + DIST_ESCL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + 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',), + 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",) ), + NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), + REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",into=("AUTOMATIQUE","CONTROLE","SANS")), + b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ", + fr="Paramètre de la réactualisation géométrique", + NB_REAC_GEOM =SIMP(statut='o',typ='I'),), + SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), + DIST_MAIT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + DIST_ESCL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + 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',), + 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), + FORMULATION =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE")), + MODL_AXIS =SIMP(statut='o',typ='TXM',into=("OUI","NON")), + DIRE_APPA =SIMP(statut='f',typ='R',max=3), + ITER_GEOM_MAXI =SIMP(statut='f',typ='I',defaut=2), + ITER_CONT_MAXI =SIMP(statut='f',typ='I',defaut=30), + b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", + COULOMB =SIMP(statut='o',typ='R',), + ITER_FROT_MAXI =SIMP(statut='f',typ='I',defaut=2), + COEF_REGU_FROT =SIMP(statut='f',typ='R',defaut=100.E+0), + SEUIL_INIT =SIMP(statut='f',typ='I',defaut=0),),), + ), + + LIAISON_UNIF =FACT(statut='f',max='**', + fr="Imposer une meme valeur (inconnue) a des ddls d un emsemble de noeuds", + regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + DDL =SIMP(statut='o',typ='TXM',max='**'), + ), + + LIAISON_SOLIDE =FACT(statut='f',max='**', + fr="Modéliser une partie indéformable d une structure", + regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES",) ), + ), + + + + FORCE_NODALE =FACT(statut='f',max='**', + regles=(UN_PARMI('GROUP_NO','NOEUD'), + AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ANGL_NAUT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max=3 ), + ), + + FORCE_FACE =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), + AU_MOINS_UN('FX','FY','FZ'),), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + FORCE_ARETE =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), + AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + FORCE_CONTOUR =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), + AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + FORCE_INTERNE =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('FX','FY','FZ'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + PRES_REP =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('PRES','CISA_2D'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + CISA_2D =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + EFFE_FOND =FACT(statut='f',fr="Imposer un effet de fond",max='**', + regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),), + GROUP_MA_INT =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + PRES =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + EPSI_INIT =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + EPXX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + EPYY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + EPZZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + EPXY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + EPXZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + EPYZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + FORCE_POUTRE =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('FX','FY','FZ','N','VY','VZ'), + PRESENT_ABSENT('FX','N','VY','VZ'), + PRESENT_ABSENT('FY','N','VY','VZ'), + PRESENT_ABSENT('FZ','N','VY','VZ'), + PRESENT_ABSENT('N','FX','FY','FZ'), + PRESENT_ABSENT('VY','FX','FY','FZ'), + PRESENT_ABSENT('VZ','FX','FY','FZ'),), +# rajout d un mot cle REPERE : / GLOBAL / LOCAL + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE") ), + FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + VY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + VZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + FORCE_TUYAU =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + FORCE_COQUE =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','PRES','F1','F2','F3','MF1','MF2'), + PRESENT_ABSENT('FX','PRES','F1','F2','F3','MF1','MF2'), + PRESENT_ABSENT('FY','PRES','F1','F2','F3','MF1','MF2'), + PRESENT_ABSENT('FZ','PRES','F1','F2','F3','MF1','MF2'), + PRESENT_ABSENT('MX','PRES','F1','F2','F3','MF1','MF2'), + PRESENT_ABSENT('MY','PRES','F1','F2','F3','MF1','MF2'), + PRESENT_ABSENT('MZ','PRES','F1','F2','F3','MF1','MF2'), + PRESENT_ABSENT('F1','PRES','FX','FY','FZ','MX','MY','MZ'), + PRESENT_ABSENT('F2','PRES','FX','FY','FZ','MX','MY','MZ'), + PRESENT_ABSENT('F3','PRES','FX','FY','FZ','MX','MY','MZ'), + PRESENT_ABSENT('MF1','PRES','FX','FY','FZ','MX','MY','MZ'), + PRESENT_ABSENT('MF2','PRES','FX','FY','FZ','MX','MY','MZ'), + PRESENT_ABSENT('PRES','FX','FY','FZ','MX','MY','MZ','F1','F2','F3','MF1','MF2'),), +# rajout d un mot cle REPERE : / GLOBAL / LOCAL + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + F1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + F2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + F3 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MF1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MF2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + PLAN =SIMP(statut='f',typ='TXM',defaut="MAIL", + into=("SUP","INF","MOY","MAIL") ), + ), + + LIAISON_COQUE =FACT(statut='f',max='**', + GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES",) ), + ), + + + VITE_FACE =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), + PRESENT_ABSENT('GROUP_MA','MAILLE'),), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + VNOR =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + IMPE_FACE =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), + PRESENT_ABSENT('GROUP_MA','MAILLE'),), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + IMPE =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + ONDE_PLANE =FACT(statut='f',max='**', + DIRECTION =SIMP(statut='o',typ='R',max='**'), + TYPE_ONDE =SIMP(statut='o',typ='TXM' ), + FONC_SIGNAL =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DIST_ORIG =SIMP(statut='o',typ='R' ), + ), + + + + FLUX_THM_REP =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('FLUN','FLUN_HYDR1','FLUN_HYDR2'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + FLUN =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FLUN_HYDR1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FLUN_HYDR2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; + + +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +AFFE_CHAR_OPS011=OPER(nom="AFFE_CHAR_OPS011",op= 190,sd_prod=char_ther, + fr=" ", + reentrant='n', + UIinfo={"groupes":("Outils métier",)}, + regles=(AU_MOINS_UN('CARA_TORSION', ),), + MODELE =SIMP(statut='o',typ=modele_sdaster ), + VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI", + into=("OUI","NON") ), + CARA_TORSION =FACT(statut='f',max='**', + regles=(UN_PARMI('TOUT','GROUP_MA'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther + ,fr="Affectation de charges et conditions aux limites thermiques constantes", + reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + regles=(AU_MOINS_UN('TEMP_IMPO','SOURCE','FLUX_REP','ECHANGE', + 'ECHANGE_PAROI','GRAD_TEMP_INIT','LIAISON_DDL','LIAISON_GROUP', + 'LIAISON_UNIF','LIAISON_CHAMNO','RAYONNEMENT','LIAISON_MAIL' ),), + VERI_DDL =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="OUI"), + MODELE =SIMP(statut='o',typ=(modele_sdaster) ), + + TEMP_IMPO =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), + AU_MOINS_UN('TEMP_SUP','TEMP','TEMP_INF'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + TEMP =SIMP(statut='f',typ='R'), + TEMP_INF =SIMP(statut='f',typ='R'), + TEMP_SUP =SIMP(statut='f',typ='R'), ), + + FLUX_REP =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + PRESENT_PRESENT('CARA_TORSION','GROUP_MA'), + AU_MOINS_UN('FLUN','FLUN_INF','FLUN_SUP','CARA_TORSION') ), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + FLUN =SIMP(statut='f',typ='R'), + FLUN_INF =SIMP(statut='f',typ='R'), + FLUN_SUP =SIMP(statut='f',typ='R'), + CARA_TORSION =SIMP(statut='f',typ=tabl_aire_int ), + ), + + + RAYONNEMENT =FACT(statut='f',max='**', + fr="Attention, exprimer les températures en Celsius si rayonnement", + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + SIGMA =SIMP(statut='o',typ='R'), + EPSILON =SIMP(statut='o',typ='R'), + TEMP_EXT =SIMP(statut='o',typ='R'), + ), + + ECHANGE =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('COEF_H','COEF_H_INF','COEF_H_SUP'), + ENSEMBLE('COEF_H','TEMP_EXT',), + ENSEMBLE('COEF_H_INF','TEMP_EXT_INF'), + ENSEMBLE('COEF_H_SUP','TEMP_EXT_SUP'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + COEF_H =SIMP(statut='f',typ='R'), + TEMP_EXT =SIMP(statut='f',typ='R'), + COEF_H_INF =SIMP(statut='f',typ='R'), + TEMP_EXT_INF =SIMP(statut='f',typ='R'), + COEF_H_SUP =SIMP(statut='f',typ='R'), + TEMP_EXT_SUP =SIMP(statut='f',typ='R'), + ), + + SOURCE =FACT(statut='f',max='**', + regles=(UN_PARMI('SOUR','SOUR_CALCULEE',), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('SOUR_CALCULEE','TOUT','GROUP_MA','MAILLE'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + SOUR =SIMP(statut='f',typ='R'), + SOUR_CALCULEE =SIMP(statut='f',typ=(cham_elem_sour_r) ), + ), + + GRAD_TEMP_INIT =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('FLUX_X','FLUX_Y','FLUX_Z'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + FLUX_X =SIMP(statut='f',typ='R' ), + FLUX_Y =SIMP(statut='f',typ='R' ), + FLUX_Z =SIMP(statut='f',typ='R' ), + ), + + LIAISON_DDL =FACT(statut='f',max='**', + regles=(UN_PARMI('GROUP_NO','NOEUD', ),), + GROUP_NO =SIMP(statut='f',typ=grno,max='**'), + NOEUD =SIMP(statut='f',typ=no ,max='**'), + DDL =SIMP(statut='f',typ='TXM',max='**', + into=("TEMP","TEMP_INF","TEMP_SUP") ), + COEF_MULT =SIMP(statut='o',typ='R',max='**'), + COEF_IMPO =SIMP(statut='o',typ='R' ), + ), + + LIAISON_GROUP =FACT(statut='f',max='**', + regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), + UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'), + EXCLUS('GROUP_MA_1','GROUP_NO_2'), + EXCLUS('GROUP_MA_1','NOEUD_2'), + EXCLUS('GROUP_NO_1','GROUP_MA_2'), + EXCLUS('GROUP_NO_1','MAILLE_2'), + EXCLUS('MAILLE_1','GROUP_NO_2'), + EXCLUS('MAILLE_1','NOEUD_2'), + EXCLUS('NOEUD_1','GROUP_MA_2'), + EXCLUS('NOEUD_1','MAILLE_2'), + EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),), + GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + DDL_1 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", + into=("TEMP","TEMP_INF","TEMP_SUP") ), + COEF_MULT_1 =SIMP(statut='o',typ='R',max='**'), + DDL_2 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", + into=("TEMP","TEMP_INF","TEMP_SUP",) ), + COEF_MULT_2 =SIMP(statut='o',typ='R',max='**'), + COEF_IMPO =SIMP(statut='o',typ='R' ), + SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ), + TRAN =SIMP(statut='f',typ='R',max='**'), + ANGL_NAUT =SIMP(statut='f',typ='R',max='**'), + CENTRE =SIMP(statut='f',typ='R',max='**'), + ), + + LIAISON_MAIL =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('GROUP_MA_MAIT','MAILLE_MAIT'), + AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL', + 'NOEUD_ESCL'),), + GROUP_MA_MAIT =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_MAIT =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA_ESCL =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_ESCL =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO_ESCL =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_ESCL =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + TRAN =SIMP(statut='f',typ='R',max='**' ), + ANGL_NAUT =SIMP(statut='f',typ='R',max='**' ), + CENTRE =SIMP(statut='f',typ='R',max='**' ), + ), + + ECHANGE_PAROI =FACT(statut='f',max='**', + regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'), + UN_PARMI('GROUP_MA_2','MAILLE_2'),), + GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + COEF_H =SIMP(statut='f',typ='R'), + TRAN =SIMP(statut='f',typ='R',min=2,max=3), + ANGL_NAUT =SIMP(statut='f',typ='R',max=3), + CENTRE =SIMP(statut='f',typ='R',min=2,max=3), + ), + + LIAISON_UNIF =FACT(statut='f',max='**', + regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + DDL =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", + into=("TEMP","TEMP_INF","TEMP_SUP") ), + ), + + LIAISON_CHAMNO =FACT(statut='f',max='**', + CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster),# CO()# "il faut definir une structure de donnee generique chamno" + COEF_IMPO =SIMP(statut='o',typ='R' ), + NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), + ), + + CONVECTION =FACT(statut='f',max='**', + VITESSE =SIMP(statut='o',typ=(cham_no_depl_r) ), + ), + + + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 30/06/2004 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. +# ====================================================================== +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, ...)", + 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_sdaster) ), + + TEMP_IMPO =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), + AU_MOINS_UN('TEMP_SUP','TEMP','TEMP_INF','EVOL_THER'), + PRESENT_ABSENT('EVOL_THER','TEMP','TEMP_INF','TEMP_SUP'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + EVOL_THER =SIMP(statut='f',typ=(evol_ther) ), + DDL =SIMP(statut='f',typ='TXM',into=("TEMP",) ), + TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + TEMP_INF =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + TEMP_SUP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + FLUX_REP =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('FLUN','FLUN_INF','FLUN_SUP','FLUX_X','FLUX_Y','FLUX_Z'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + FLUN =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FLUN_INF =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FLUN_SUP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FLUX_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FLUX_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FLUX_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + FLUX_NL =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + FLUN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + + RAYONNEMENT =FACT(statut='f',max='**', + fr="Attention, exprimer les températures en Celsius si rayonnement", + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + SIGMA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + EPSILON =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + TEMP_EXT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + + + ECHANGE =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('COEF_H','COEF_H_INF','COEF_H_SUP'), + ENSEMBLE('COEF_H','TEMP_EXT'), + ENSEMBLE('COEF_H_INF','TEMP_EXT_INF'), + ENSEMBLE('COEF_H_SUP','TEMP_EXT_SUP'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + COEF_H =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + TEMP_EXT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + COEF_H_INF =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + TEMP_EXT_INF =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + COEF_H_SUP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + TEMP_EXT_SUP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + + SOURCE =FACT(statut='f',max='**', + regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + SOUR =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + GRAD_TEMP_INIT =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('FLUX_X','FLUX_Y','FLUX_Z'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + FLUX_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FLUX_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FLUX_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + ECHANGE_PAROI =FACT(statut='f',max='**', + regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'), + UN_PARMI('GROUP_MA_2','MAILLE_2'),), + GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + COEF_H =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + TRAN =SIMP(statut='f',typ='R',min=2,max=3), + ANGL_NAUT =SIMP(statut='f',typ='R',max=3), + CENTRE =SIMP(statut='f',typ='R',min=2,max=3), + ), + + LIAISON_DDL =FACT(statut='f',max='**', + regles=(UN_PARMI('GROUP_NO','NOEUD'),), + GROUP_NO =SIMP(statut='f',typ=grno,max='**'), + NOEUD =SIMP(statut='f',typ=no ,max='**'), + DDL =SIMP(statut='f',typ='TXM',max='**',into=("TEMP","TEMP_INF","TEMP_SUP") ), + COEF_MULT =SIMP(statut='o',typ='R',max='**'), + COEF_IMPO =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + LIAISON_GROUP =FACT(statut='f',max='**', + regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), + UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'), + EXCLUS('GROUP_MA_1','GROUP_NO_2'), + EXCLUS('GROUP_MA_1','NOEUD_2'), + EXCLUS('GROUP_NO_1','GROUP_MA_2'), + EXCLUS('GROUP_NO_1','MAILLE_2'), + EXCLUS('MAILLE_1','GROUP_NO_2'), + EXCLUS('MAILLE_1','NOEUD_2'), + EXCLUS('NOEUD_1','GROUP_MA_2'), + EXCLUS('NOEUD_1','MAILLE_2'), + EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),), + GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + DDL_1 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", + into=("TEMP","TEMP_INF","TEMP_SUP") ), + COEF_MULT_1 =SIMP(statut='o',typ='R',max='**'), + DDL_2 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", + into=("TEMP","TEMP_INF","TEMP_SUP") ), + COEF_MULT_2 =SIMP(statut='o',typ='R',max='**'), + COEF_IMPO =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ), + TRAN =SIMP(statut='f',typ='R',max='**'), + ANGL_NAUT =SIMP(statut='f',typ='R',max='**'), + CENTRE =SIMP(statut='f',typ='R',max='**'), + ), + + LIAISON_UNIF =FACT(statut='f',max='**', + regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + DDL =SIMP(statut='f',typ='TXM',defaut="TEMP", + into=("TEMP","TEMP_INF","TEMP_SUP") ), + ), + + CONVECTION =FACT(statut='f',max='**', + VITESSE =SIMP(statut='o',typ=(cham_no_depl_r) ), + ), + + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE 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", + reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), + MODELE =SIMP(statut='f',typ=modele_sdaster), + AFFE =FACT(statut='o',max='**', + regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + MATER =SIMP(statut='o',typ=mater_sdaster,max=30), + TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + SECH_REF =SIMP(statut='f',typ='R',val_min=0.E+0), + ), +) ; +#& MODIF COMMANDE DATE 12/04/2005 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE JMBHH01 J.M.PROIX +AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster, + 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_sdaster) ), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), + VERIF =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2,into=("MAILLE","NOEUD") ), + AFFE_SOUS_STRUC =FACT(statut='f', + regles=(UN_PARMI('TOUT','MAILLE'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), + PHENOMENE =SIMP(statut='f',typ='TXM',defaut="MECANIQUE",into=("MECANIQUE",) ), + ), + AFFE =FACT(statut='f',max='**', + regles=(UN_PARMI('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + PHENOMENE =SIMP(statut='o',typ='TXM', + into=("MECANIQUE","THERMIQUE","ACOUSTIQUE") ), + b_mecanique =BLOC( condition = "PHENOMENE=='MECANIQUE'", + fr="modelisations mécaniques", + MODELISATION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=( + "2D_DIS_T", + "2D_DIS_TR", + "2D_FLUI_ABSO", + "2D_FLUI_PESA", + "2D_FLUI_STRU", + "2D_FLUIDE", + "3D", + "3D_ABSO", + "3D_FAISCEAU", + "3D_FLUI_ABSO", + "3D_FLUIDE", + "3D_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_NS", + "AXIS_SI", + "AXIS_THH", + "AXIS_THHM", + "AXIS_THM", + "AXIS_GRAD_VARI", + "AXIS_FISSURE", + "BARRE", + "2D_BARRE", + "C_PLAN", + "C_PLAN_NS", + "C_PLAN_SI", + "C_PLAN_GRAD_EPSI", + "C_PLAN_GRAD_VARI", + "CABLE", + "CABLE_POULIE", + "COQUE_3D", + "COQUE_AXIS", + "COQUE_C_PLAN", + "COQUE_D_PLAN", + "D_PLAN", + "D_PLAN_GRAD_EPSI", + "D_PLAN_GRAD_VARI", + "D_PLAN_NS", + "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_HH2MD", + "AXIS_HHMD", + "AXIS_HMD", + "AXIS_THHD", + "AXIS_THH2D", + "AXIS_THVD", + "AXIS_THHMD", + "AXIS_THH2MD", + "AXIS_THMD", + "D_PLAN_HHMD", + "D_PLAN_HH2MD", + "D_PLAN_HMD", + "D_PLAN_THHD", + "D_PLAN_THH2D", + "D_PLAN_THVD", + "D_PLAN_THH2MD", + "D_PLAN_THHMD", + "D_PLAN_THMD", + "DIS_T", + "DIS_TR", + "DKT", + "DKTG", + "DST", + "FLUI_STRU", + "GRILLE", + "GRILLE_MEMBRANE", + "POU_C_T", + "POU_D_E", + "POU_D_EM", + "POU_D_T", + "POU_D_T_GD", + "POU_D_TG", + "POU_D_TGM", + "Q4G", + "TUYAU_3M", + "TUYAU_6M", + "SHB8" + ) ) ), + + b_thermique =BLOC( condition = "PHENOMENE=='THERMIQUE'", + fr="modelisations thermiques", + MODELISATION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=( + "3D", + "3D_DIAG", + "AXIS", + "AXIS_DIAG", + "AXIS_FOURIER", + "COQUE", + "COQUE_AXIS", + "COQUE_PLAN", + "PLAN", + "PLAN_DIAG", + ),),), + + b_acoustique =BLOC( condition = "PHENOMENE=='ACOUSTIQUE'", + fr="modelisations acoustiques", + MODELISATION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=( + "3D", + "PLAN" + ), ),), + + ), +) ; +#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +AIDE=PROC(nom="AIDE",op=42, + UIinfo={"groupes":("Modélisation",)}, + fr="Interrogation sur le catalogue des commandes et les concepts produits", + regles=(AU_MOINS_UN('CONCEPT','TYPE_ELEM', ),), + UNITE =SIMP(statut='f',typ='I',defaut=8), + TYPE_ELEM =FACT(fr="couple type_elem option",statut='f', + INITEL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), + ), + CONCEPT =FACT(statut='f',max='**', + NOM =SIMP(fr="liste des noms de concept",statut='f',typ='TXM',validators=NoRepeat(),max='**',defaut="*"), + OPTION =SIMP(fr="option d'édition de concept",statut='f',typ='TXM',defaut="TOUT_TYPE", + into=("TOUT_TYPE","CREER","A_CREER",) ), + ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE VABHHTS J.PELLET +ASSE_MAILLAGE=OPER(nom="ASSE_MAILLAGE",op= 105,sd_prod=maillage_sdaster, + fr="Assembler deux maillages sous un seul nom", + reentrant='n', + UIinfo={"groupes":("Maillage",)}, + MAILLAGE_1 = SIMP(statut='o',typ=maillage_sdaster,), + MAILLAGE_2 = SIMP(statut='o',typ=maillage_sdaster,), + OPERATION = SIMP(statut='o',typ='TXM',into=("SOUS_STR","SUPERPOSE","COLLAGE"),), + b_collage = BLOC(condition = "OPERATION == 'COLLAGE'", + COLLAGE = FACT(statut='o', + GROUP_MA_1 =SIMP(statut='o',typ=grma), + GROUP_MA_2 =SIMP(statut='o',typ=grma), + ), + ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +ASSE_MATR_GENE=OPER(nom="ASSE_MATR_GENE",op= 128,sd_prod=matr_asse_gene_r, + fr="Assemblage des matrices généralisées de macro éléments pour construction de la matrice globale généralisée", + reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), + OPTION =SIMP(statut='o',typ='TXM',into=("RIGI_GENE","MASS_GENE","AMOR_GENE") ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE VABHHTS J.PELLET +def asse_matrice_prod(MATR_ELEM,**args): + if AsType(MATR_ELEM) == matr_elem_depl_r : return matr_asse_depl_r + if AsType(MATR_ELEM) == matr_elem_depl_c : return matr_asse_depl_c + if AsType(MATR_ELEM) == matr_elem_temp_r : return matr_asse_temp_r + if AsType(MATR_ELEM) == matr_elem_pres_c : return matr_asse_pres_c + raise AsException("type de concept resultat non prevu") + +ASSE_MATRICE=OPER(nom="ASSE_MATRICE",op=12,sd_prod=asse_matrice_prod, + fr="Construction d une matrice assemblée",reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + MATR_ELEM =SIMP(statut='o', + typ=(matr_elem_depl_r,matr_elem_depl_c,matr_elem_temp_r,matr_elem_pres_c) ), + NUME_DDL =SIMP(statut='o',typ=nume_ddl_sdaster), + CHAR_CINE =SIMP(statut='f',typ=(char_cine_meca,char_cine_ther,char_cine_acou) ), + INFO =SIMP(statut='f',typ='I',into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +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", + reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), + CHAR_SOUS_STRUC =FACT(statut='o',max='**', + SOUS_STRUC =SIMP(statut='o',typ='TXM' ), + VECT_ASSE =SIMP(statut='o',typ=cham_no_depl_r ), + ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE 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",reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + VECT_ELEM =SIMP(statut='o',typ=vect_elem,max='**'), + NUME_DDL =SIMP(statut='o',typ=nume_ddl_sdaster ), + INFO =SIMP(statut='f',typ='I',into=(1,2,) ), +) ; +#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +CALC_AMOR_MODAL=OPER(nom="CALC_AMOR_MODAL",op= 172,sd_prod=listr8_sdaster, + fr="Création d'une liste d'amortissements modaux calculés selon la règle du RCC-G", + reentrant='n', + UIinfo={"groupes":("Résolution",)}, + ENER_SOL =FACT(statut='o', + regles=(UN_PARMI('GROUP_NO_RADIER','GROUP_MA_RADIER'), + PRESENT_ABSENT('COEF_GROUP','FONC_GROUP'), +# Peut-on remplacer les deux règles suivantes par un ENSEMBLE_('KRX','KRY','KRZ') + PRESENT_PRESENT('KRX','KRY'), + PRESENT_PRESENT('KRX','KRZ'), + PRESENT_ABSENT('COOR_CENTRE','NOEUD_CENTRE'), + PRESENT_ABSENT('GROUP_NO_CENTRE','NOEUD_CENTRE'), + PRESENT_ABSENT('GROUP_NO_CENTRE','COOR_CENTRE'),), + METHODE =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","RIGI_PARASOL") ), + MODE_MECA =SIMP(statut='o',typ=mode_meca ), + GROUP_NO_RADIER =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + GROUP_MA_RADIER =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + FONC_GROUP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + COEF_GROUP =SIMP(statut='f',typ='R',max='**'), + KX =SIMP(statut='o',typ='R' ), + KY =SIMP(statut='o',typ='R' ), + KZ =SIMP(statut='o',typ='R' ), + KRX =SIMP(statut='f',typ='R' ), + KRY =SIMP(statut='f',typ='R' ), + KRZ =SIMP(statut='f',typ='R' ), + GROUP_NO_CENTRE =SIMP(statut='f',typ=grno), + NOEUD_CENTRE =SIMP(statut='f',typ=no), + COOR_CENTRE =SIMP(statut='f',typ='R',max=3), + ), + AMOR_INTERNE =FACT(statut='o', + ENER_POT =SIMP(statut='o',typ=tabl_ener_pot ), + GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), + AMOR_REDUIT =SIMP(statut='o',typ='R',max='**'), + ), + AMOR_SOL =FACT(statut='o', + AMOR_REDUIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + FONC_AMOR_GEO =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ), + HOMOGENE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + SEUIL =SIMP(statut='f',typ='R',defaut= 0.3 ), + ), +) ; +#& MODIF COMMANDE DATE 30/06/2004 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 JMBHH01 J.M.PROIX +def calc_cham_elem_prod(OPTION,**args): + + +# 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", + reentrant='n', + UIinfo={"groupes":("Post traitements",)}, + MODELE =SIMP(statut='o',typ=modele_sdaster), + CHAM_MATER =SIMP(statut='o',typ=cham_mater), + CARA_ELEM =SIMP(statut='f',typ=cara_elem), + + regles=(EXCLUS('TOUT','GROUP_MA',),EXCLUS('TOUT','MAILLE',),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + +# +# +# introduire un mot cle de type modelisation : mécanique,thermique,... +# + + OPTION =SIMP(statut='o',typ='TXM', + into=("FLUX_ELGA_TEMP","FLUX_ELNO_TEMP","SOUR_ELGA_ELEC", + "PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG", + "COOR_ELGA"), ), + + 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',max='**', + regles=(EXCLUS('FONC_MULT','COEF_MULT', ),), + CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou)), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + COEF_MULT =SIMP(statut='f',typ='R'), ), + + INST =SIMP(statut='f',typ='R',defaut= 0.E+0), + ACCE =SIMP(statut='f',typ=cham_no_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 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE 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)", + reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + NUME_DDL =SIMP(statut='o',typ=nume_ddl_sdaster ), + CHAR_CINE =SIMP(statut='o',typ=(char_cine_meca,char_cine_ther,char_cine_acou ) ), + INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +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, + 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,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 23/11/2004 AUTEUR ASSIRE A.ASSIRE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE JMBHH01 J.M.PROIX +def calc_elem_prod(RESULTAT,**args): + if AsType(RESULTAT) != None : return AsType(RESULTAT) + raise AsException("type de concept resultat non prevu") + +CALC_ELEM=OPER(nom="CALC_ELEM",op=58,sd_prod=calc_elem_prod,reentrant='f', + UIinfo={"groupes":("Post traitements",)}, + fr="Compléter ou créer un résultat en calculant des champs par éléments (contraintes, déformations,... )", + MODELE =SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER =SIMP(statut='f',typ=cham_mater), + CARA_ELEM =SIMP(statut='f',typ=cara_elem), + + RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,mode_meca, + mode_stat,mode_stat_depl,mode_stat_acce,mode_stat_forc, + evol_noli,mult_elas,fourier_elas, + evol_ther,base_modale, + acou_harmo,mode_acou,mode_flamb) , + fr="Résultat d'une commande globale"), + + regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', + 'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'),), + TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), + NOM_CAS =SIMP(statut='f',typ='TXM' ), + + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), + LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), + + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', + fr="le calcul ne sera effectué que sur ces mailles là"), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**', + fr="le calcul ne sera effectué que sur ces mailles là"), + +# options pour des resultats lineaire + + b_lineaire =BLOC( condition = "AsType(RESULTAT) in (evol_elas,dyna_trans,dyna_harmo,mode_meca,\ + mode_stat,mode_stat_depl,mode_stat_acce,mode_stat_forc,\ + mult_elas,fourier_elas,base_modale,mode_flamb)", + fr="options mecaniques lineaires", + TYPE_OPTION =SIMP(statut='f',typ='TXM',defaut='TOUTES',fr="type d'options mecaniques lineaires", + into=("SIGM_MASSIF","SIGM_STRUCT","EPSI","ENER","CRIT","DERIVEES", + "INDI_ERRE","AUTRES","TOUTES"), + ), + b_toutes=BLOC( condition = "TYPE_OPTION == 'TOUTES'",fr="toutes les options evol elas", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="SIEF_ELNO_ELGA", + # contraintes + into=( "SIEF_ELNO_ELGA","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL", + "SIPO_ELNO_DEPL","EFGE_ELNO_DEPL","EFGE_ELNO_CART","SIGM_ELNO_CART", + "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF","SIGM_ELNO_TUYO", + # déformations + "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPSG_ELGA_DEPL","EPSG_ELNO_DEPL", + "EPME_ELNO_DEPL","EPME_ELGA_DEPL","DEGE_ELNO_DEPL","EPSI_ELNO_TUYO", + # ENER + "EPOT_ELEM_DEPL","ECIN_ELEM_DEPL","ENEL_ELGA","ENEL_ELNO_ELGA", + "ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM", + # estimateurs erreur + "SIGM_NOZ1_ELGA","ERRE_ELEM_NOZ1","SIGM_NOZ2_ELGA","ERRE_ELEM_NOZ2", + "SIRE_ELNO_DEPL","ERRE_ELGA_NORE","ERRE_ELNO_ELGA", + # CRIT + "EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","CRIT_ELNO_RUPT", + "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME", + "ENDO_ELGA","ENDO_ELNO_ELGA", + "ENDO_ELNO_SIGA","ENDO_ELNO_SINO","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO", + # derivees + "DEUL_ELGA_DEPL","DEDE_ELNO_DLDE","DESI_ELNO_DLSI", + # autres + "VNOR_ELEM_DEPL","VALE_NCOU_MAXI","PRES_DBEL_DEPL"),), + + NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1, + fr="numero de couche dans l'épaisseur de la coque ou du tuyau" ), + NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), + fr="position dans l'épaisseur de la coque, ou de la couche" ), + ANGLE =SIMP(statut='f',typ='I',defaut= 0,fr="angle en degres à partir de la génératrice"), + NOM_CHAM =SIMP(statut='f',typ='TXM',fr="nom du champ pour VALE_NCOU_MAXI", ), + NOM_CMP =SIMP(statut='f',typ='TXM',fr="nom de la composante pour VALE_NCOU_MAXI", ), + PLAN = SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL"), + fr="Plan de calcul pour les plaques excentrées" ), + + + EXCIT =FACT(statut='f',max='**', + fr="Charges contenant les températures, les efforts répartis pour les poutres...", + regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),), + CHARGE =SIMP(statut='o',typ=char_meca ), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FONC_MULT_C =SIMP(statut='f',typ=fonction_c), + COEF_MULT =SIMP(statut='f',typ='R'), + COEF_MULT_C =SIMP(statut='f',typ='C'), + PHAS_DEG =SIMP(statut='f',typ='R'), + PUIS_PULS =SIMP(statut='f',typ='I'), + TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),), + + + ), +# fin bloc b_toutes + + b_sigm_massif =BLOC( condition = "TYPE_OPTION == 'SIGM_MASSIF'", + fr="options de contraintes elasticite 2D et 3D", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut='SIEF_ELNO_ELGA', + fr="option de calcul des contraintes", + into=( "SIEF_ELNO_ELGA","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL",),), + + b_charge =BLOC( condition = "OPTION in ('SIGM_ELNO_DEPL','SIEF_ELGA_DEPL',) or \ + (type(OPTION)==type(()) and 'SIGM_ELNO_DEPL' in OPTION ) or \ + (type(OPTION)==type(()) and 'SIEF_ELGA_DEPL' in OPTION ) ", + fr="charge contenant les temperatures ou autre charge", + EXCIT =FACT(statut='f',max='**', + CHARGE =SIMP(statut='o',typ=char_meca ),), + ), + ), + + b_sigm_struct =BLOC( condition = "TYPE_OPTION == 'SIGM_STRUCT'", + fr="options de contraintes elasticite poutres, coques, tuyaux", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut='SIEF_ELNO_ELGA', + fr="option de calcul des contraintes ou efforts generalises", + into=( "SIEF_ELNO_ELGA","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL","SIGM_ELNO_TUYO", + "SIPO_ELNO_DEPL","EFGE_ELNO_DEPL","EFGE_ELNO_CART","SIGM_ELNO_CART", + "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF"),), + + b_charge =BLOC( condition = "OPTION in ('SIGM_ELNO_DEPL','SIEF_ELGA_DEPL',\ + 'SIPO_ELNO_DEPL','EFGE_ELNO_DEPL',) or \ + (type(OPTION)==type(()) and 'SIGM_ELNO_DEPL' in OPTION ) or \ + (type(OPTION)==type(()) and 'SIEF_ELGA_DEPL' in OPTION ) or \ + (type(OPTION)==type(()) and 'SIPO_ELNO_DEPL' in OPTION ) or \ + (type(OPTION)==type(()) and 'EFGE_ELNO_DEPL' in OPTION ) ", + fr="charge contenant les temperatures ou les efforts répartis (poutres) ou autre", + EXCIT =FACT(statut='f',max='**', + regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),), + CHARGE =SIMP(statut='f',typ=char_meca ), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FONC_MULT_C =SIMP(statut='f',typ=fonction_c), + COEF_MULT =SIMP(statut='f',typ='R'), + COEF_MULT_C =SIMP(statut='f',typ='C'), + PHAS_DEG =SIMP(statut='f',typ='R'), + PUIS_PULS =SIMP(statut='f',typ='I'), + TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),), + ), + + b_niv_couche = BLOC( condition = "OPTION in ('SIGM_ELNO_DEPL',) or \ + (type(OPTION)==type(()) and 'SIGM_ELNO_DEPL' in OPTION) ", + + NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1, + fr="numero de couche dans l'épaisseur de la coque (coques multicouches)" ), + NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), + fr="position dans l'épaisseur de la coque, ou de la couche" ), + ), + + b_sigtuyo = BLOC( condition = "OPTION == 'SIGM_ELNO_TUYO' or \ + (type(OPTION)==type(()) and 'SIGM_ELNO_TUYO' in OPTION) ", + NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1 , + fr="numero de couche dans l'épaisseur du tuyau" ), + ANGLE =SIMP(statut='f',typ='I',defaut= 0,fr="angle en degres à partir de la génératrice" ), + NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), + fr="position dans l'épaisseur de la couche" ), + ), + b_plan_excentrement =BLOC( condition = "OPTION=='EFGE_ELNO_DEPL' or \ + (type(OPTION)==type(()) and 'EFGE_ELNO_DEPL' in OPTION)", + fr="Plan de calcul des efforts pour les plaques avec excentrement", + PLAN = SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL"), + fr="Plan de calcul des efforts pour les plaques avec excentrement",), + + ), + ), +# fin bloc contraintes struct + + b_epsi =BLOC( condition = "TYPE_OPTION=='EPSI'", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=("EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPME_ELNO_DEPL","EPME_ELGA_DEPL", + "DEGE_ELNO_DEPL","EPSI_ELNO_TUYO",), + ), + b_niv_couche = BLOC( condition = "OPTION =='EPSI_ELNO_DEPL' or \ + (type(OPTION)==type(()) and 'EPSI_ELNO_DEPL' in OPTION) ", + NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1, + fr="numero de couche dans l'épaisseur de la coque (coques multicouches)" ), + NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), + fr="position dans l'épaisseur de la coque, ou de la couche" ), + ) , + b_epstuyo = BLOC( condition = "OPTION == 'EPSI_ELNO_TUYO' or \ + (type(OPTION)==type(()) and 'EPSI_ELNO_TUYO' in OPTION) ", + NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1 , + fr="numero de couche dans l'épaisseur du tuyau" ), + ANGLE =SIMP(statut='f',typ='I',defaut= 0,fr="angle en degres à partir de la génératrice" ), + NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), + fr="position dans l'épaisseur de la couche" ), + ), +b_charge =BLOC( condition = "OPTION in ('EPME_ELNO_DEPL','EPSI_ELGA_DEPL','EPME_ELGA_DEPL','EPSI_ELNO_DEPL','EPSI_ELNO_TUYO' ) or \ + (type(OPTION)==type(()) and 'EPSI_ELNO_DEPL' in OPTION ) or \ + (type(OPTION)==type(()) and 'EPSI_ELNO_TUYO' in OPTION ) or \ + (type(OPTION)==type(()) and 'EPSI_ELGA_DEPL' in OPTION ) or \ + (type(OPTION)==type(()) and 'EPME_ELNO_DEPL' in OPTION ) or \ + (type(OPTION)==type(()) and 'EPME_ELGA_DEPL' in OPTION ) ", + fr="charge contenant les temperatures", + EXCIT =FACT(statut='f',max='**', + CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), + ), + ), + b_ener =BLOC( condition = "TYPE_OPTION=='ENER'", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=("EPOT_ELEM_DEPL","ECIN_ELEM_DEPL","ENEL_ELGA","ENEL_ELNO_ELGA", + "ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM",), + ), + b_charge =BLOC( condition = "OPTION in ('EPOT_ELEM_DEPL','ECIN_ELEM_DEPL','ENEL_ELGA','ENEL_ELNO_ELGA',) or \ + (type(OPTION)==type(()) and 'EPOT_ELEM_DEPL' in OPTION ) or \ + (type(OPTION)==type(()) and 'ENEL_ELGA' in OPTION ) or \ + (type(OPTION)==type(()) and 'ENEL_ELNO_ELGA' in OPTION ) or \ + (type(OPTION)==type(()) and 'ECIN_ELEM_DEPL' in OPTION ) ", + fr="charge contenant les temperatures", + EXCIT =FACT(statut='f',max='**', + CHARGE =SIMP(statut='f',typ=(char_meca,char_ther,char_acou) ),), + ), + ), + + b_crit =BLOC( condition = "TYPE_OPTION=='CRIT'", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=("EQUI_ELNO_SIGM","EQUI_ELGA_SIGM", + "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME", + "ENDO_ELGA","ENDO_ELNO_ELGA", + "ENDO_ELNO_SIGA","ENDO_ELNO_SINO","CRIT_ELNO_RUPT","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO", + ) ), + b_niv_couche = BLOC( condition = "OPTION in ('CRIT_ELNO_RUPT','EQUI_ELNO_SIGM') or \ + (type(OPTION)==type(()) and 'EQUI_ELNO_SIGM' in OPTION) or \ + (type(OPTION)==type(()) and 'SIEQ_ELNO_TUYO' in OPTION) or \ + (type(OPTION)==type(()) and 'CRIT_ELNO_RUPT' in OPTION) ", + NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1, + fr="numero de couche dans l'épaisseur de la coque (coques multicouches)" ), + NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), + fr="position dans l'épaisseur de la coque, ou de la couche" ), + ), + EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures", + CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), + ), + + b_derivees =BLOC( condition = "TYPE_OPTION=='DERIVEES'", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=("DEUL_ELGA_DEPL","DEDE_ELNO_DLDE","DESI_ELNO_DLSI", + ) ),), + + b_autres =BLOC( condition = "TYPE_OPTION=='AUTRES'", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=("VALE_NCOU_MAXI","PRES_DBEL_DEPL","VNOR_ELEM_DEPL", + ) ), + b_maxi =BLOC( condition = "OPTION=='VALE_NCOU_MAXI' or \ + (type(OPTION)==type(()) and 'VALE_NCOU_MAXI' in OPTION)", + NOM_CHAM =SIMP(statut='o',typ='TXM',fr="Nom du champ pour VALE_NCOU_MAXI" ), + NOM_CMP =SIMP(statut='o',typ='TXM',fr="Nom de la composante pour VALE_NCOU_MAXI"),), + ), + + b_indi_erre =BLOC( condition = "TYPE_OPTION=='INDI_ERRE'", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="ERRE_ELGA_NORE", + into=("SIGM_NOZ1_ELGA","ERRE_ELEM_NOZ1","SIGM_NOZ2_ELGA","ERRE_ELEM_NOZ2", + "SIRE_ELNO_DEPL","ERRE_ELGA_NORE","ERRE_ELNO_ELGA", + ) ), + EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures", + CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), + ), + ), +# fin bloc lineaire + + +# statique ou dynamique non lineaire : evol_noli + b_noli =BLOC( condition = "AsType(RESULTAT) == evol_noli",fr="options evol noli", + TYPE_OPTION =SIMP(statut='f',typ='TXM',defaut='TOUTES', + into=("SIGM_MASSIF","SIGM_STRUCT","EPSI","ENER","CRIT", + "VARI","INDI_ERRE","TOUTES","AUTRES"), + ), + b_toutes =BLOC( condition = "TYPE_OPTION == 'TOUTES'",fr="toutes les options evol elas", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=( "SIEF_ELNO_ELGA", + "SIGM_ELNO_TUYO","SIGM_ELNO_COQU", + "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF","EFGE_ELNO_CART", + # EPSI + "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPSG_ELNO_DEPL","EPSG_ELGA_DEPL", + "EPME_ELNO_DEPL","EPME_ELGA_DEPL","EPMG_ELNO_DEPL","EPMG_ELGA_DEPL", + "DEGE_ELNO_DEPL","EPSI_ELNO_TUYO", + "EPSP_ELNO","EPSP_ELGA", + "EPGR_ELNO","EPGR_ELGA", + "VARI_ELNO_ELGA","VARI_ELNO_TUYO","VARI_ELNO_COQU","CRIT_ELNO_RUPT", + # CRIT + "EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO", + "ERRE_ELGA_NORE","ERRE_ELNO_ELGA","ERRE_ELEM_NOZ1","ERRE_ELEM_NOZ2", + "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME", + "DCHA_ELNO_SIGM","DCHA_ELGA_SIGM","RADI_ELNO_SIGM","RADI_ELGA_SIGM", + "ENDO_ELGA","ENDO_ELNO_ELGA","INDI_LOCA_ELGA", + "ENDO_ELNO_SIGA","ENDO_ELNO_SINO", + "PMPB_ELNO_SIEF","PMPB_ELGA_SIEF","ENEL_ELGA","ENEL_ELNO_ELGA", + "ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM","VALE_NCOU_MAXI"), + ), + NORME =SIMP(statut='f',typ='TXM',defaut="VMIS", + into=("VMIS","TOTAL","VMIS_CINE","TOTAL_CINE"), + fr="Type de norme pour les options RADI_ et DCHA_"), + + NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1,fr="numéro de couche pour coques et tuyaux" ), + NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), + fr="choix du point d'intégration dans la couche" ), + ANGLE =SIMP(statut='f',typ='I',defaut= 0 ,fr="angle de dépouillement pour les tuyaux"), + NOM_CHAM =SIMP(statut='f',typ='TXM',fr="Nom du champ pour VALE_NCOU_MAXI"), + NOM_CMP =SIMP(statut='f',typ='TXM',fr="Nom de la composante pour VALE_NCOU_MAXI"), + PLAN = SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL") ), + + EXCIT =FACT(statut='f',max='**', + regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),), + CHARGE =SIMP(statut='o',typ=char_meca ), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FONC_MULT_C =SIMP(statut='f',typ=fonction_c), + COEF_MULT =SIMP(statut='f',typ='R'), + COEF_MULT_C =SIMP(statut='f',typ='C'), + PHAS_DEG =SIMP(statut='f',typ='R'), + PUIS_PULS =SIMP(statut='f',typ='I'), + TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),), + ), + + b_sigm_massif =BLOC( condition = "TYPE_OPTION == 'SIGM_MASSIF'", + fr="options de contraintes non lin 2D et 3D", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + # contraintes + into=( "SIEF_ELNO_ELGA",),), + ), + + b_sigm_struct =BLOC( condition = "TYPE_OPTION == 'SIGM_STRUCT'", + fr="options de contraintes non lin poutres, coques", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + # contraintes + into=( "SIEF_ELNO_ELGA","EFGE_ELNO_CART","SIGM_ELNO_TUYO","SIGM_ELNO_COQU", + "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF",),), + b_sigcoqu = BLOC( condition = "OPTION in ('SIGM_ELNO_COQU',) or \ + (type(OPTION)==type(()) and 'SIGM_ELNO_COQU' in OPTION) ", + NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1, + fr="numéro de couche dans l'épaisseur de la coque" ), + NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), + fr="choix du point d'intégration dans la couche" ), + ), + b_sigtuyo = BLOC( condition = "OPTION in ('SIGM_ELNO_TUYO',) or \ + (type(OPTION)==type(()) and 'SIGM_ELNO_TUYO' in OPTION)", + NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1, + fr="numéro de couche dans l'épaisseur du tuyau" ), + ANGLE =SIMP(statut='f',typ='I',defaut= 0, + fr="angle de dépouillement pour les tuyaux, en degres" ), + NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), + fr="choix du point d'intégration dans la couche"), + ), + ), + + b_epsi =BLOC( condition = "TYPE_OPTION=='EPSI'", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=( "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPSG_ELNO_DEPL","EPSG_ELGA_DEPL", + "EPME_ELNO_DEPL","EPME_ELGA_DEPL","EPMG_ELNO_DEPL","EPMG_ELGA_DEPL", + "EPSP_ELNO","EPSP_ELGA","EPGR_ELNO","EPGR_ELGA", + "DEGE_ELNO_DEPL",), + ), + b_niv_couche = BLOC( condition = "OPTION =='EPSI_ELNO_DEPL' or \ + (type(OPTION)==type(()) and 'EPSI_ELNO_DEPL' in OPTION) ", + NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1, + fr="numero de couche dans l'épaisseur de la coque (coques multicouches)" ), + NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), + fr="position dans l'épaisseur de la coque, ou de la couche" ), + ) , + EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures", + CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), + ), + b_epstuyo = BLOC( condition = "OPTION == 'EPSI_ELNO_TUYO' or \ + (type(OPTION)==type(()) and 'EPSI_ELNO_TUYO' in OPTION) ", + NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1 , + fr="numero de couche dans l'épaisseur du tuyau" ), + ANGLE =SIMP(statut='f',typ='I',defaut= 0,fr="angle en degres à partir de la génératrice" ), + NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), + fr="position dans l'épaisseur de la couche" ), + EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures", + CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), + ), + + b_vari =BLOC( condition = "TYPE_OPTION=='VARI'", + fr="Calcul et extraction des variables internes", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=("VARI_ELNO_ELGA","VARI_ELNO_TUYO","VARI_ELNO_COQU",), + ), + b_varcoqu = BLOC( condition = "OPTION in ('VARI_ELNO_COQU',) or \ + (type(OPTION)==type(()) and 'VARI_ELNO_COQU' in OPTION) ", + NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1, + fr="numéro de couche dans l'épaisseur de la coque"), + NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), + fr="choix du point d'intégration dans la couche" ), + ), + b_vartuyo = BLOC( condition = "OPTION in ('VARI_ELNO_TUYO',) or \ + (type(OPTION)==type(()) and 'VARI_ELNO_TUYO' in OPTION) ", + NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1, + fr="numéro de couche dans l'épaisseur de tuyau" ), + ANGLE =SIMP(statut='f',typ='I',defaut= 0, + fr="angle de dépouillement pour les tuyaux, en degres"), + NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), + fr="choix du point d'intégration dans la couche" ), + ), + ), + + b_ener =BLOC( condition = "TYPE_OPTION=='ENER'", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=("ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM","ENEL_ELGA","ENEL_ELNO_ELGA",), + ), + EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures", + CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), + ), + + b_crit =BLOC( condition = "TYPE_OPTION=='CRIT'", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=("EQUI_ELNO_SIGM","EQUI_ELGA_SIGM", + "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME", + "ENDO_ELNO_SIGA","ENDO_ELNO_SINO","CRIT_ELNO_RUPT", + "ENDO_ELGA","ENDO_ELNO_ELGA", + "PMPB_ELNO_SIEF","PMPB_ELGA_SIEF","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO", + ) ), + NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1,fr="numéro de couche dans l'épaisseur de la coque"), + NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), + fr="choix du point d'intégration dans la couche" ), + ), + + b_autres =BLOC( condition = "TYPE_OPTION=='AUTRES'", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=("VALE_NCOU_MAXI",) ), + b_maxi =BLOC( condition = "OPTION=='VALE_NCOU_MAXI' or \ + (type(OPTION)==type(()) and 'VALE_NCOU_MAXI' in OPTION)", + NOM_CHAM =SIMP(statut='o',typ='TXM',fr="Nom du champ pour VALE_NCOU_MAXI" ), + NOM_CMP =SIMP(statut='o',typ='TXM',fr="Nom de la composante pour VALE_NCOU_MAXI"),), + ), + + + b_indi_erre =BLOC( condition = "TYPE_OPTION=='INDI_ERRE'", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="ERRE_ELGA_NORE", + into=("ERRE_ELGA_NORE","ERRE_ELNO_ELGA","ERRE_ELEM_NOZ1","ERRE_ELEM_NOZ2", + "DCHA_ELNO_SIGM","DCHA_ELGA_SIGM","RADI_ELNO_SIGM","RADI_ELGA_SIGM", + ) ), + b_indic = BLOC( condition ="OPTION in ('DCHA_ELNO_SIGM','DCHA_ELGA_SIGM','RADI_ELNO_SIGM','RADI_ELGA_SIGM') or\ + (type(OPTION)==type(()) and 'DCHA_ELNO_SIGM' in OPTION) or\ + (type(OPTION)==type(()) and 'DCHA_ELGA_SIGM' in OPTION) or\ + (type(OPTION)==type(()) and 'RADI_ELNO_SIGM' in OPTION) or\ + (type(OPTION)==type(()) and 'RADI_ELGA_SIGM' in OPTION) ", + NORME =SIMP(statut='f',typ='TXM',defaut="VMIS", + into=("VMIS","TOTAL","VMIS_CINE","TOTAL_CINE") ), + ), + ), + ), +# fin bloc evol_noli + +# thermique : evol_ther + b_ther =BLOC( condition = "AsType(RESULTAT) == evol_ther",fr="options thermiques", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=("DEUL_ELGA_TEMP","DETE_ELNO_DLTE","FLUX_ELGA_TEMP","FLUX_ELNO_TEMP", + "HYDR_ELNO_ELGA","DURT_ELGA_META","DURT_ELNO_META", + "SOUR_ELGA_ELEC","ERTH_ELEM_TEMP","ERTH_ELNO_ELEM",),), + EXCIT =FACT(statut='f',max='**', + regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),), + CHARGE =SIMP(statut='o',typ=char_ther ), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FONC_MULT_C =SIMP(statut='f',typ=fonction_c), + COEF_MULT =SIMP(statut='f',typ='R'), + COEF_MULT_C =SIMP(statut='f',typ='C'), + PHAS_DEG =SIMP(statut='f',typ='R'), + PUIS_PULS =SIMP(statut='f',typ='I'), + TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),), + ), + NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), + fr="choix du point de calcul dans l'épaisseur des coques" ), + + ), + +# acoustique + b_acou =BLOC( condition = "AsType(RESULTAT) in (acou_harmo,mode_acou,)",fr="options acoustiques", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=("PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG", + "INTE_ELNO_ACTI","INTE_ELNO_REAC", + ),), + EXCIT =FACT(statut='f',max='**', + regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),), + CHARGE =SIMP(statut='o',typ=char_acou ), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FONC_MULT_C =SIMP(statut='f',typ=fonction_c), + COEF_MULT =SIMP(statut='f',typ='R'), + COEF_MULT_C =SIMP(statut='f',typ='C'), + PHAS_DEG =SIMP(statut='f',typ='R'), + PUIS_PULS =SIMP(statut='f',typ='I'), + TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),), + ), + + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des paramètres de sensibilité.", + ang="List of sensitivity parameters"), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 10/01/2005 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. +# ====================================================================== +def calc_fatigue_prod(TYPE_CALCUL,OPTION,**args): + if TYPE_CALCUL == "CUMUL_DOMMAGE" : return cham_elem_dommag + if TYPE_CALCUL == "FATIGUE_MULTI" and OPTION == "DOMA_ELGA": return cham_elem_facy_r + if TYPE_CALCUL == "FATIGUE_MULTI" and OPTION == "DOMA_NOEUD": return cham_no_facy_r + 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.", + UIinfo={"groupes":("Post traitements",)}, + + TYPE_CALCUL = SIMP(statut='o',typ='TXM', + into=("CUMUL_DOMMAGE","FATIGUE_MULTI",) ), + + b_cumul_domma =BLOC(condition = "TYPE_CALCUL == 'CUMUL_DOMMAGE'", + fr="Calcul d un champ de dommage subi par une structure.", + regles=(PRESENT_PRESENT('DOMMAGE','MATER', ),), + OPTION =SIMP(statut='o',typ='TXM', + into=("DOMA_ELNO_SIGM","DOMA_ELGA_SIGM", + "DOMA_ELNO_EPSI","DOMA_ELGA_EPSI", + "DOMA_ELNO_EPME","DOMA_ELGA_EPME") ), + HISTOIRE =FACT(statut='o', + RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans, + evol_noli) ), + EQUI_GD =SIMP(statut='f',typ='TXM',defaut="VMIS_SG", + into=("VMIS_SG","INVA_2_SG") ), + ), + DOMMAGE =SIMP(statut='o',typ='TXM', + into=("WOHLER","MANSON_COFFIN","TAHERI_MANSON", + "TAHERI_MIXTE",) ), + MATER =SIMP(statut='o',typ=(mater_sdaster) ), + TAHERI_NAPPE =SIMP(statut='f',typ=(nappe_sdaster,formule) ), + TAHERI_FONC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + b_fatigue_multi =BLOC(condition = "TYPE_CALCUL == 'FATIGUE_MULTI'", + fr="Plan critique dans le cas de la fatigue multiaxiale à grand nombre de cycles.", + TYPE_CHARGE =SIMP(statut='o',typ='TXM',into=("PERIODIQUE","NON_PERIODIQUE") ), + OPTION =SIMP(statut='o',typ='TXM',into=("DOMA_ELGA","DOMA_NOEUD") ), + RESULTAT =SIMP(statut='o',typ=(evol_elas, evol_noli) ), + CHAM_MATER =SIMP(statut='o',typ=(cham_mater) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**' ), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**' ), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**' ), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**' ), + COEF_PREECROU =SIMP(statut='f',typ='R',defaut= 1.0E+0), + b_period =BLOC(condition = "TYPE_CHARGE == 'PERIODIQUE'", + CRITERE =SIMP(statut='o',typ='TXM',into=("MATAKE","DANG_VAN_MODI_AC") ), + METHODE =SIMP(statut='o',typ='TXM',into=("CERCLE_EXACT",) ), + ), + b_non_period =BLOC(condition = "TYPE_CHARGE == 'NON_PERIODIQUE'", + CRITERE =SIMP(statut='o',typ='TXM',into=("DOMM_MAXI","DANG_VAN_MODI_AV") ), + PROJECTION =SIMP(statut='o',typ='TXM',into=("UN_AXE", "DEUX_AXES") ), + DELTA_OSCI = SIMP(statut='f',typ='R',defaut= 0.0E+0), + ), + b_fati_grmano =BLOC(condition = "(GROUP_MA != None or MAILLE != None or GROUP_NO != None or NOEUD != None)", + MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), + ), + ), + + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +CALC_FLUI_STRU=OPER(nom="CALC_FLUI_STRU",op= 144,sd_prod=melasflu_sdaster, + reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + VITE_FLUI =FACT(statut='o', + 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', + + 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', + 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 23/05/2006 AUTEUR CIBHHPD L.SALMONA +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +def calc_fonc_interp_prod(FONCTION, NOM_PARA_FONC, **args): + if AsType(FONCTION) ==nappe_sdaster : return nappe_sdaster + elif AsType(FONCTION)==fonction_sdaster : return fonction_sdaster + elif AsType(FONCTION)==fonction_c : return fonction_c + elif AsType(FONCTION)==formule : + if NOM_PARA_FONC != None: + return nappe_sdaster + return fonction_sdaster + elif AsType(FONCTION)==para_sensi : return para_sensi + raise AsException("type de concept resultat non prevu") + +CALC_FONC_INTERP=OPER(nom="CALC_FONC_INTERP",op= 134,sd_prod=calc_fonc_interp_prod, + docu="U4.32.01-e",reentrant='n', + UIinfo={"groupes":("Fonction",)}, + regles=(UN_PARMI('VALE_PARA','LIST_PARA'),), + FONCTION =SIMP(statut='o',typ=(formule,fonction_sdaster,nappe_sdaster,fonction_c) ), + VALE_PARA =SIMP(statut='f',typ='R',max='**'), + LIST_PARA =SIMP(statut='f',typ=listr8_sdaster ), + NOM_RESU =SIMP(statut='f',typ='TXM'), + NOM_PARA =SIMP(statut='f',typ='TXM'), + INTERPOL =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ), + PROL_DROITE =SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ), + PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ), + NOM_PARA_FONC =SIMP(statut='f',typ='TXM'), + b_eval_nappe =BLOC(condition = "NOM_PARA_FONC != None", + regles=(UN_PARMI('VALE_PARA_FONC','LIST_PARA_FONC'),), + VALE_PARA_FONC =SIMP(statut='f',typ='R',max='**'), + LIST_PARA_FONC =SIMP(statut='f',typ=listr8_sdaster ), + INTERPOL_FONC =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG")), + PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ), + PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), +) ; +#& MODIF COMMANDE DATE 10/10/2005 AUTEUR MCOURTOI M.COURTOIS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE MCOURTOI M.COURTOIS +def calc_fonction_prod(DERIVE,EXTRACTION,INTEGRE,ECART_TYPE,INVERSE,RMS,NOCI_SEISME,MAX,COMB,COMB_C,ENVELOPPE, + SPEC_OSCI,ASSE,FFT,COMPOSE,CORR_ACCE,PUISSANCE,LISS_ENVELOP,NORME,ABS, **args): + if (RMS != None): return table_sdaster + if (MAX != None): return table_sdaster + if (NOCI_SEISME != None): return table_sdaster + if (ECART_TYPE != None): return table_sdaster + if (INTEGRE != None): return fonction_sdaster + if (DERIVE != None): return fonction_sdaster + if (INVERSE != None): return fonction_sdaster + if (COMB != None): return AsType(COMB[0]['FONCTION']) + if (COMB_C != None): + vale=COMB_C[0]['FONCTION'] + if(AsType(vale) == nappe_sdaster): + return nappe_sdaster + else: + return fonction_c + if (ENVELOPPE != None): return AsType(ENVELOPPE[0]['FONCTION']) + if (EXTRACTION != None): return fonction_sdaster + if (SPEC_OSCI != None): return nappe_sdaster + if (COMPOSE != None): return fonction_sdaster + if (ASSE != None): return fonction_sdaster + if (FFT != None): + vale=FFT[0]['FONCTION'] + if (AsType(vale) == fonction_sdaster ) : return fonction_c + if (AsType(vale) == fonction_c) : return fonction_sdaster + if (CORR_ACCE != None): return fonction_sdaster + if (LISS_ENVELOP!= None): return AsType(LISS_ENVELOP[0]['FONCTION']) + if (PUISSANCE != None): return AsType(PUISSANCE[0]['FONCTION']) + if (ABS != None): return fonction_sdaster + if (NORME != None): return table_sdaster + 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, fonction_c ou nappe", + 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','ECART_TYPE','INVERSE','ABS'),), + FFT =FACT(statut='f',fr="Calcul de la transformee de Fourier ou de son inverse", + FONCTION =SIMP(statut='o',typ=(fonction_sdaster,fonction_c) ), + METHODE =SIMP(statut='f',typ='TXM',defaut="PROL_ZERO",into=("PROL_ZERO","TRONCATURE") ), + ), + DERIVE =FACT(statut='f',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_sdaster ), + ), + INTEGRE =FACT(statut='f',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_sdaster), + COEF =SIMP(statut='f',typ='R',defaut= 0.E+0,fr="Valeur de la constante d intégration" ), + ), + RMS =FACT(statut='f',fr="Calcul de la valeur RMS d une fonction",max='**', + METHODE =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ), + FONCTION =SIMP(statut='o',typ=fonction_sdaster ), + INST_INIT =SIMP(statut='f',typ='R',fr="Instant initial définissant le début du signal" ), + INST_FIN =SIMP(statut='f',typ='R',fr="Instant final définissant la fin du signal" ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + ), + NOCI_SEISME =FACT(statut='f', + FONCTION =SIMP(statut='f',typ=fonction_sdaster ), + SPEC_OSCI =SIMP(statut='f',typ=nappe_sdaster ), + OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",validators=NoRepeat(),max='**', + into=("INTE_ARIAS","POUV_DEST","INTE_SPEC","VITE_ABSO_CUMU", + "DUREE_PHAS_FORT","MAXI","ACCE_SUR_VITE","TOUT",) ), + 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_sdaster ), + FREQ =SIMP(statut='f',typ='R',max='**'), + NORME =SIMP(statut='f',typ='R',defaut= 1.E+0 ), + BORNE_INF =SIMP(statut='f',typ='R',defaut= 0.05E+0 ), + BORNE_SUP =SIMP(statut='f',typ='R',defaut= 0.95E+0 ), + b_acce_reel =BLOC(condition="(INST_INIT != None)or(INST_FIN != None)or(FREQ_INIT != None)or(FREQ_FIN != None)", + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + ), + ), + LISS_ENVELOP = FACT(statut='f',fr="Lissage d une enveloppe", + FONCTION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster) ), + AMOR =SIMP(statut='f',typ='R',max='**'), + FREQ_MIN =SIMP(statut='f',typ='R'), + FREQ_MAX =SIMP(statut='f',typ='R'), + 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 ), + ), + 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_sdaster ), + AMOR_ECH =SIMP(statut='f',typ='R',max='**'), + ), + ), + SPEC_OSCI =FACT(statut='f',fr="Calcul du spectre d oscillateur", + METHODE =SIMP(statut='f',typ='TXM',defaut="NIGAM",into=("NIGAM",) ), + FONCTION =SIMP(statut='o',typ=fonction_sdaster ), + AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), + LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), + FREQ =SIMP(statut='f',typ='R',max='**'), + NORME =SIMP(statut='o',typ='R',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',fr="Calcul des extrémas locaux d une fonction", + FONCTION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster) ), + ), + ABS =FACT(statut='f',fr="Calcul de la valeur absolue d une fonction", + FONCTION =SIMP(statut='o',typ=fonction_sdaster,), + ), + COMB =FACT(statut='f',max='**',fr="Calcul d une combinaison linéaire réelle de fonctions", + FONCTION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster) ), + COEF =SIMP(statut='o',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ), + ), + COMB_C =FACT(statut='f',max='**',fr="Calcul d une combinaison linéaire complexe de fonctions", + regles=(UN_PARMI('COEF_R','COEF_C'),), + FONCTION =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster) ), + COEF_R =SIMP(statut='f',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ), + COEF_C =SIMP(statut='f',typ='C',fr="Coefficient complexe de la combinaison linéaire associée à la fonction" ), + ), + b_comb =BLOC ( condition = " (COMB != None) or (COMB_C != None)", + LIST_PARA =SIMP(statut='f',typ=listr8_sdaster ), + ), + COMPOSE =FACT(statut='f',fr="Calcul de la composition de deux fonctions FONC_RESU(FONC_PARA)", + FONC_RESU =SIMP(statut='o',typ=fonction_sdaster), + FONC_PARA =SIMP(statut='o',typ=fonction_sdaster), + ), + EXTRACTION =FACT(statut='f',fr="Opération d extraction sur une fonction complexe", + FONCTION =SIMP(statut='o',typ=fonction_c), + PARTIE =SIMP(statut='o',typ='TXM',into=("REEL","IMAG","MODULE","PHASE"),fr="Partie à extraire"), + ), + ENVELOPPE =FACT(statut='f',fr="Calcul de l enveloppe d une famille de fonctions", + FONCTION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster),max='**' ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="SUP",into=("SUP","INF"),fr="Type de l enveloppe" ), + ), + ASSE =FACT(statut='f',fr="Création à partir de la concatenation de fonctions", + FONCTION =SIMP(statut='o',typ=fonction_sdaster,max='**' ), + SURCHARGE =SIMP(statut='f',typ='TXM',defaut="DROITE",into=("DROITE","GAUCHE")), + ), + CORR_ACCE =FACT(statut='f',fr="Correction d un accelerogramme reel", + CORR_DEPL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), + FONCTION =SIMP(statut='o',typ=fonction_sdaster ), + ), + PUISSANCE =FACT(statut='f',fr="Cacul du carré d'une fonction", + FONCTION =SIMP(statut='o', typ=(fonction_sdaster,nappe_sdaster) ), + EXPOSANT =SIMP(statut='f', typ='I', defaut=1 ), + ), + NORME =FACT(statut='f',fr="Cacul de la norme L2 d'une fonction", + FONCTION =SIMP(statut='o', typ=nappe_sdaster), + ), + INVERSE =FACT(statut='f',fr="Cacul de l inverse d une fonction", + FONCTION =SIMP(statut='o', typ=fonction_sdaster), + ), + ECART_TYPE =FACT(statut='f',fr="Cacul de l ecart-type d une fonction", + METHODE =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ), + FONCTION =SIMP(statut='o',typ=fonction_sdaster), + INST_INIT =SIMP(statut='f',typ='R',fr="Instant initial définissant le début du signal" ), + INST_FIN =SIMP(statut='f',typ='R',fr="Instant final définissant la fin du signal" ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + ), + NOM_PARA =SIMP(statut='f',typ='TXM',), + 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',), + 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 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +CALC_FORC_AJOU=OPER(nom="CALC_FORC_AJOU",op=199,sd_prod=vect_asse_gene, + fr="calcul de la force ajoutee ", + reentrant ='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + + regles=(EXCLUS('MODE_MECA','MODELE_GENE'), + PRESENT_PRESENT( 'MODELE_GENE','NUME_DDL_GENE'), + UN_PARMI('MONO_APPUI', 'NOEUD','GROUP_NO'), + UN_PARMI('MONO_APPUI','MODE_STAT')), + + MODELE_FLUIDE =SIMP(statut='o',typ=modele_sdaster ), + MODELE_INTERFACE=SIMP(statut='o',typ=modele_sdaster ), + CHAM_MATER =SIMP(statut='o',typ=cham_mater ), + CHARGE =SIMP(statut='o',typ=char_ther ), + MODE_MECA =SIMP(statut='f',typ=mode_meca ), + MODELE_GENE =SIMP(statut='f',typ=modele_gene ), + NUME_DDL_GENE =SIMP(statut='f',typ=nume_ddl_gene ), + DIST_REFE =SIMP(statut='f',typ='R',defaut= 1.E-2 ), + AVEC_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + NUME_MODE_MECA =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + POTENTIEL =SIMP(statut='f',typ=evol_ther ), + NOEUD_DOUBLE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + + DIRECTION =SIMP(statut='o',typ='R',max=3), + MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,),), + + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), + + SOLVEUR =FACT(statut='d', + METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), + b_mult_front = BLOC ( condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", + RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), + ), + b_ldlt =BLOC( condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), + ), + b_ldlt_mult =BLOC( condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", + fr="Paramètres relatifs à la non iversibilité de la matrice à factorise", + NPREC =SIMP(statut='f',typ='I',defaut= 8 ), + STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + b_gcpc =BLOC (condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", + PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), + NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0), + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), + RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), + NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), + ), + ), + + ) ; +#& MODIF COMMANDE DATE 11/10/2004 AUTEUR LEBOUVIE F.LEBOUVIER +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +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",reentrant='n', + UIinfo={"groupes":("Post traitements",)}, + MODELE =SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER =SIMP(statut='f',typ=cham_mater), + regles=(UN_PARMI('RESULTAT','DEPL'), + PRESENT_PRESENT('VITE','ACCE'), + UN_PARMI('R_INF','R_INF_FO'), + PRESENT_PRESENT('R_INF','R_SUP'), + PRESENT_PRESENT('R_INF_FO','R_SUP_FO'), ), + FOND_FISS =SIMP(statut='f',typ=fond_fiss), + DEPL =SIMP(statut='f',typ=cham_no_depl_r), + VITE =SIMP(statut='f',typ=cham_no_depl_r), + ACCE =SIMP(statut='f',typ=cham_no_depl_r), + RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,dyna_trans),), + b_extrac =BLOC(condition="RESULTAT != None",fr="extraction d un champ", + regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), + TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + + b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)", + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + ), + ), + EXCIT =FACT(statut='f',max='**', + CHARGE =SIMP(statut='o',typ=(char_meca,char_cine_meca)), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), + ), + SYME_CHAR =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","ANTI","SANS") ), + + COMP_ELAS =FACT(statut='f', + RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS", + into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC") ), + ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), + ELAS_VMIS_LINE =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), + ELAS_VMIS_TRAC =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), + DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN") ), + regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), + ), + + COMP_INCR =FACT(statut='f', + RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS", + into=("ELAS","VMIS_ISOT_TRAC","VMIS_ISOT_LINE","VMIS_CINE_LINE") ), + ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), + VMIS_ISOT_TRAC =SIMP(statut='f',typ='I',defaut=2,into=(2,) ), + VMIS_ISOT_LINE =SIMP(statut='f',typ='I',defaut=2,into=(2,) ), + DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC") ), + regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), + ), + + ETAT_INIT =FACT(statut='f', + SIGM =SIMP(statut='f',typ=cham_elem_sief_r), + DEPL =SIMP(statut='f',typ=cham_no_depl_r), + ), + + OPTION =SIMP(statut='f',typ='TXM',defaut="CALC_G", + into=("CALC_G","CALC_K_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_k_g =BLOC(condition="OPTION=='CALC_K_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") ), + FISSURE =SIMP(statut='o',typ=fiss_xfem,max=1), + ), + b_calc_g_max =BLOC(condition="OPTION=='CALC_G_MAX'", + BORNES =FACT(statut='o',max='**', + NUME_ORDRE =SIMP(statut='o',typ='I'), + VALE_MIN =SIMP(statut='o',typ='R'), + VALE_MAX =SIMP(statut='o',typ='R'), + ), + 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_sdaster,nappe_sdaster,formule)), + R_SUP_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 11/10/2004 AUTEUR LEBOUVIE F.LEBOUVIER +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +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", + reentrant='f', + UIinfo={"groupes":("Post traitements",)}, + regles=(UN_PARMI('RESULTAT','DEPL'), + PRESENT_PRESENT('VITE','ACCE'), + EXCLUS('COMP_ELAS','COMP_INCR'),), + MODELE =SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER =SIMP(statut='f',typ=cham_mater), + THETA =SIMP(statut='o',typ=(theta_geom,cham_no_depl_r),), + DEPL =SIMP(statut='f',typ=cham_no_depl_r), + VITE =SIMP(statut='f',typ=cham_no_depl_r), + ACCE =SIMP(statut='f',typ=cham_no_depl_r), + RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,dyna_trans),), + + b_extrac =BLOC(condition="RESULTAT != None",fr="extraction d un champ", + regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), + TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + + b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)", + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + ), + ), + EXCIT =FACT(statut='f',max='**', + CHARGE =SIMP(statut='o',typ=(char_meca,char_cine_meca)), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), + ), + SYME_CHAR =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","ANTI","SANS") ), + + COMP_ELAS =FACT(statut='f', + RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS", + into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC") ), + ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), + ELAS_VMIS_LINE =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), + ELAS_VMIS_TRAC =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), + DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN") ), + regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), + ), + COMP_INCR =FACT(statut='f', + RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS", + into=("ELAS","VMIS_ISOT_TRAC","VMIS_ISOT_LINE","VMIS_CINE_LINE") ), + ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), + VMIS_ISOT_TRAC =SIMP(statut='f',typ='I',defaut=2,into=(2,) ), + VMIS_ISOT_LINE =SIMP(statut='f',typ='I',defaut=2,into=(2,) ), + DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC") ), + regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), + ), + ETAT_INIT =FACT(statut='f', + SIGM =SIMP(statut='f',typ=cham_elem_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',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_FISS =SIMP(statut='o',typ=fond_fiss), + ), + b_calc_g_lagr =BLOC(condition="OPTION=='CALC_G_LAGR'", + PROPAGATION =SIMP(statut='o',typ='R'), + ), + + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des paramètres de sensibilité.", + ang="List of sensitivity parameters"), + + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +CALC_INTE_SPEC=OPER(nom="CALC_INTE_SPEC",op= 120,sd_prod=tabl_intsp, + fr="Calcul d une matrice interspectrale d une fonction du temps", + reentrant='n', + UIinfo={"groupes":("Fonction",)}, + INST_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + INST_FIN =SIMP(statut='o',typ='R' ), + DUREE_ANALYSE =SIMP(statut='f',typ='R' ), + DUREE_DECALAGE =SIMP(statut='f',typ='R' ), + NB_POIN =SIMP(statut='o',typ='I' ), + FONCTION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ), + TITRE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +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", + reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + regles=(EXCLUS('MODE_MECA','CHAM_NO','MODELE_GENE'), + PRESENT_ABSENT('NUME_DDL_GENE','CHAM_NO'), + PRESENT_PRESENT('MODELE_GENE','NUME_DDL_GENE'),), + MODELE_FLUIDE =SIMP(statut='o',typ=modele_sdaster ), + MODELE_INTERFACE=SIMP(statut='o',typ=modele_sdaster ), + CHAM_MATER =SIMP(statut='o',typ=cham_mater ), + CHARGE =SIMP(statut='o',typ=char_ther ), + MODE_MECA =SIMP(statut='f',typ=mode_meca ), + CHAM_NO =SIMP(statut='f',typ=cham_no_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',validators=NoRepeat(),max='**'), + OPTION =SIMP(statut='o',typ='TXM',into=("MASS_AJOU","AMOR_AJOU","RIGI_AJOU") ), + POTENTIEL =SIMP(statut='f',typ=evol_ther ), + NOEUD_DOUBLE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), + + SOLVEUR =FACT(statut='d', + METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), + b_mult_front = BLOC ( condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", + RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), + ), + b_ldlt =BLOC( condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), + ), + b_ldlt_mult =BLOC( condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", + fr="Paramètres relatifs à la non iversibilité de la matrice à factorise", + NPREC =SIMP(statut='f',typ='I',defaut= 8 ), + STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + b_gcpc =BLOC (condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", + PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), + NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0), + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), + RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), + NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), + ), + ), +) ; +#& MODIF COMMANDE DATE 31/01/2006 AUTEUR ACBHHCD G.DEVESA +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE VABHHTS J.PELLET +def calc_matr_elem_prod(OPTION,**args): + if OPTION == "RIGI_MECA" : return matr_elem_depl_r + if OPTION == "RIGI_FLUI_STRU" : return matr_elem_depl_r + if OPTION == "RIGI_MECA_LAGR" : return matr_elem_depl_r + if OPTION == "MASS_ID_MDEP_R" : return matr_elem_depl_r + if OPTION == "MASS_ID_MDNS_R" : return matr_elem_depl_r + if OPTION == "MASS_ID_MTEM_R" : return matr_elem_temp_r + if OPTION == "MASS_ID_MTNS_R" : return matr_elem_temp_r + if OPTION == "MASS_MECA" : return matr_elem_depl_r + if OPTION == "MASS_FLUI_STRU" : return matr_elem_depl_r + if OPTION == "RIGI_GEOM" : return matr_elem_depl_r + if OPTION == "RIGI_ROTA" : return matr_elem_depl_r + if OPTION == "AMOR_MECA" : return matr_elem_depl_r + if OPTION == "IMPE_MECA" : return matr_elem_depl_r + if OPTION == "ONDE_FLUI" : return matr_elem_depl_r + if OPTION == "AMOR_MECA_ABSO" : return matr_elem_depl_r + if OPTION == "RIGI_MECA_HYST" : return matr_elem_depl_c + if OPTION == "RIGI_THER" : return matr_elem_temp_r + if OPTION == "MASS_THER" : return matr_elem_temp_r + if OPTION == "MASS_MECA_DIAG" : return matr_elem_depl_r + if OPTION == "RIGI_ACOU" : return matr_elem_pres_c + if OPTION == "MASS_ACOU" : return matr_elem_pres_c + if OPTION == "AMOR_ACOU" : return matr_elem_pres_c + raise AsException("type de concept resultat non prevu") + +CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op= 9,sd_prod=calc_matr_elem_prod + ,fr="Calcul des matrices élémentaires",reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + + OPTION =SIMP(statut='o',typ='TXM', + into=("RIGI_MECA","MASS_MECA","RIGI_GEOM", + "AMOR_MECA","RIGI_THER","MASS_THER","IMPE_MECA", + "ONDE_FLUI","AMOR_MECA_ABSO","MASS_FLUI_STRU","RIGI_FLUI_STRU", + "RIGI_ROTA","MASS_MECA_DIAG","RIGI_ACOU", + "MASS_ID_MDEP_R","MASS_ID_MDNS_R","MASS_ID_MTEM_R","MASS_ID_MTNS_R", + "MASS_ACOU","AMOR_ACOU","RIGI_MECA_HYST", + "RIGI_MECA_LAGR") ), + + # mots clés facultatifs que l'on a du mal à mettre dans les blocs + # sans gener MACRO_MATR_ASSE : + #------------------------------------------------------------------ + INST=SIMP(statut='f',typ='R',defaut= 0.E+0 ), + + + b_rigi_meca = BLOC( condition = "OPTION=='RIGI_MECA'", + regles=(AU_MOINS_UN('MODELE','CHARGE' ),), + MODELE =SIMP(statut='f',typ=modele_sdaster ), + b_modele =BLOC(condition = "MODELE != None", + CHAM_MATER =SIMP(statut='f',typ=cham_mater ), + CARA_ELEM =SIMP(statut='f',typ=cara_elem ), + MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ), + ), + CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**' ), + ), + + b_rigi_meca_lagr =BLOC(condition = "OPTION=='RIGI_MECA_LAGR'", + MODELE =SIMP(statut='o',typ=modele_sdaster ), + CHAM_MATER =SIMP(statut='o',typ=cham_mater ), + CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**' ), + THETA =SIMP(statut='o',typ=theta_geom ), + PROPAGATION =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ), + + b_mass_meca =BLOC(condition = "(OPTION=='MASS_MECA') or (OPTION=='MASS_MECA_DIAG')", + regles=(AU_MOINS_UN('MODELE','CHARGE'),), + MODELE =SIMP(statut='f',typ=modele_sdaster ), + b_modele =BLOC(condition = "MODELE != None", + CHAM_MATER =SIMP(statut='f',typ=cham_mater ), + CARA_ELEM =SIMP(statut='f',typ=cara_elem ), + ), + CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), + ), + + b_mass_identite =BLOC(condition = "(OPTION in ('MASS_ID_MDEP_R','MASS_ID_MTEM_R','MASS_ID_MDNS_R','MASS_ID_MTNS_R')) ", + MODELE =SIMP(statut='o',typ=modele_sdaster ), + # j'ajoute ces 2 mot clés inutiles à cause de l'alarme pas assez subtile de MEDOME + CHAM_MATER =SIMP(statut='f',typ=cham_mater ), + CARA_ELEM =SIMP(statut='f',typ=cara_elem ), + ), + + b_rigi_geom =BLOC(condition = "OPTION=='RIGI_GEOM'", + MODELE =SIMP(statut='o',typ=modele_sdaster ), + CARA_ELEM =SIMP(statut='f',typ=cara_elem ), + SIEF_ELGA =SIMP(statut='o',typ=cham_elem_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_sdaster ), + CHAM_MATER =SIMP(statut='o',typ=cham_mater ), + CHARGE =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**' ), + ), + + b_amor_meca =BLOC(condition = "OPTION=='AMOR_MECA'", + regles=(AU_MOINS_UN('CARA_ELEM','RIGI_MECA'), + ENSEMBLE('RIGI_MECA','MASS_MECA','CHAM_MATER'), ), + MODELE =SIMP(statut='o',typ=modele_sdaster ), + CARA_ELEM =SIMP(statut='f',typ=cara_elem ), + CHAM_MATER =SIMP(statut='f',typ=cham_mater ), + RIGI_MECA =SIMP(statut='f',typ=matr_elem_depl_r ), + MASS_MECA =SIMP(statut='f',typ=matr_elem_depl_r ), + CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), + ), + + b_amor_meca_abso =BLOC(condition = "OPTION=='AMOR_MECA_ABSO'", + regles=(AU_MOINS_UN('CARA_ELEM','RIGI_MECA'), + ENSEMBLE('RIGI_MECA','MASS_MECA','CHAM_MATER'), ), + MODELE =SIMP(statut='o',typ=modele_sdaster ), + CARA_ELEM =SIMP(statut='f',typ=cara_elem ), + CHAM_MATER =SIMP(statut='o',typ=cham_mater ), + RIGI_MECA =SIMP(statut='f',typ=matr_elem_depl_r ), + MASS_MECA =SIMP(statut='f',typ=matr_elem_depl_r ), + CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), + ), + + b_rigi_meca_hyst =BLOC( condition = "OPTION=='RIGI_MECA_HYST'", + MODELE =SIMP(statut='o',typ=modele_sdaster ), + CHARGE =SIMP(statut='f',typ=char_meca ,validators=NoRepeat(),max='**' ), + CHAM_MATER =SIMP(statut='f',typ=cham_mater ), + CARA_ELEM =SIMP(statut='f',typ=cara_elem ), + RIGI_MECA =SIMP(statut='o',typ=matr_elem_depl_r ), + ), + + b_rigi_ther =BLOC(condition = "OPTION=='RIGI_THER'", + regles=(AU_MOINS_UN('MODELE','CHARGE' ),), + MODELE =SIMP(statut='f',typ=modele_sdaster ), + b_modele =BLOC(condition = "MODELE != None", + CHAM_MATER =SIMP(statut='o',typ=cham_mater ), + CARA_ELEM =SIMP(statut='f',typ=cara_elem ), + MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ), + ), + CHARGE =SIMP(statut='f',typ=char_ther,validators=NoRepeat(),max='**' ), + ), + + b_mass_ther =BLOC(condition = "OPTION=='MASS_THER'", + MODELE =SIMP(statut='o',typ=modele_sdaster ), + CHAM_MATER =SIMP(statut='o',typ=cham_mater ), + CARA_ELEM =SIMP(statut='f',typ=cara_elem ), + CHARGE =SIMP(statut='f',typ=char_ther ,validators=NoRepeat(),max='**' ), + ), + + b_rigi_acou =BLOC(condition = "OPTION=='RIGI_ACOU'", + MODELE =SIMP(statut='o',typ=modele_sdaster ), + CHAM_MATER =SIMP(statut='o',typ=cham_mater ), + CHARGE =SIMP(statut='f',typ=char_acou ,validators=NoRepeat(),max='**' ), + ), + + b_mass_acou =BLOC(condition = "(OPTION=='MASS_ACOU') or (OPTION=='AMOR_ACOU')", + MODELE =SIMP(statut='o',typ=modele_sdaster ), + CHAM_MATER =SIMP(statut='o',typ=cham_mater ), + CHARGE =SIMP(statut='f',typ=char_acou ,validators=NoRepeat(),max='**' ), + ), + + b_rigi_flui =BLOC(condition = "OPTION=='RIGI_FLUI_STRU'", + MODELE =SIMP(statut='o',typ=modele_sdaster ), + CARA_ELEM =SIMP(statut='o',typ=cara_elem ), + CHAM_MATER =SIMP(statut='o',typ=cham_mater ), + CHARGE =SIMP(statut='o',typ=char_meca ,validators=NoRepeat(),max='**' ), + ), + + b_mass_flui =BLOC(condition = "OPTION=='MASS_FLUI_STRU'", + MODELE =SIMP(statut='o',typ=modele_sdaster ), + CARA_ELEM =SIMP(statut='o',typ=cara_elem ), + CHAM_MATER =SIMP(statut='o',typ=cham_mater ), + CHARGE =SIMP(statut='o',typ=char_meca ,validators=NoRepeat(),max='**'), + ), + + b_impe_meca =BLOC(condition = "(OPTION=='IMPE_MECA') or (OPTION=='ONDE_FLUI')", + MODELE =SIMP(statut='o',typ=modele_sdaster ), + CHAM_MATER =SIMP(statut='o',typ=cham_mater ), + CHARGE =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**' ), + ), +) ; +#& MODIF COMMANDE DATE 24/10/2005 AUTEUR ADBHHVV V.CANO +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +CALC_META=OPER(nom="CALC_META",op=194,sd_prod=evol_ther,reentrant='o', + UIinfo={"groupes":("Post traitements",)}, + fr="Calcule la métallurgie a partir du résultat du calcul thermique", + MODELE =SIMP(statut='o',typ=modele_sdaster ), + CHAM_MATER =SIMP(statut='o',typ=cham_mater ), + RESULTAT =SIMP(statut='o',typ=evol_ther ), + ETAT_INIT =FACT(statut='o', + regles=(UN_PARMI('EVOL_THER', 'META_INIT'),), + EVOL_THER =SIMP(statut='f',typ=evol_ther ), + META_INIT =SIMP(statut='f',typ=carte_var2_r ), + b_etat =BLOC(condition="EVOL_THER != None", + regles=(UN_PARMI('NUME_INIT', 'INST_INIT',),), + NUME_INIT =SIMP(statut='f',typ='I'), + INST_INIT =SIMP(statut='f',typ='R'), + b_inst =BLOC(condition="INST_INIT != None", + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ) + ), + ), + ), + COMP_INCR =FACT(statut='o',max='**', + RELATION =SIMP(statut='o',typ='TXM',into=("ACIER","ZIRC",) ), + ACIER =SIMP(statut='c',typ='I',defaut=7,into=(7,) ), + ZIRC =SIMP(statut='c',typ='I',defaut=3,into=(3,) ), + regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma), + MAILLE =SIMP(statut='f',typ=ma), + ), + OPTION =SIMP(statut='f',typ='TXM' + ,into=("META_ELNO_TEMP",) ), +) ; +#& MODIF COMMANDE DATE 30/06/2004 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 +def calc_no_prod(RESULTAT,**args): + if AsType(RESULTAT) != None : return AsType(RESULTAT) + raise AsException("type de concept resultat non prevu") + +CALC_NO=OPER(nom="CALC_NO",op= 106,sd_prod=calc_no_prod,reentrant='o', + 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),validators=NoRepeat(),max='**', + fr="Liste des paramètres de sensibilité.", + ang="List of sensitivity parameters"), + + regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', + 'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'),), + TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), + NOM_CAS =SIMP(statut='f',typ='TXM' ), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), + + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=("FORC_NODA","REAC_NODA", + "DCHA_NOEU_SIGM", + "DEGE_NOEU_DEPL", + "DETE_NOEU_DLTE", + "DEDE_NOEU_DLDE", + "DESI_NOEU_DLSI", + "DURT_NOEU_META", + "EFGE_NOEU_CART","EFGE_NOEU_DEPL", + "ENDO_NOEU_SINO", + "ENEL_NOEU_ELGA", + "EPMG_NOEU_DEPL", + "EPSA_NOEU", + "EPSG_NOEU_DEPL", + "EPSI_NOEU_DEPL", + "EPSP_NOEU" ,"EPSP_NOEU_ZAC", + "EQUI_NOEU_EPME","EQUI_NOEU_EPSI","EQUI_NOEU_SIGM", + "ERRE_NOEU_ELGA", + "FLUX_NOEU_TEMP", + "HYDR_NOEU_ELGA", + "INTE_NOEU_ACTI","INTE_NOEU_REAC", + "META_NOEU_TEMP", + "PMPB_NOEU_SIEF", + "PRES_NOEU_DBEL","PRES_NOEU_IMAG","PRES_NOEU_REEL", + "RADI_NOEU_SIGM", + "SIEF_NOEU" ,"SIEF_NOEU_ELGA", + "SIGM_NOEU_CART","SIGM_NOEU_COQU","SIGM_NOEU_DEPL", + "SIGM_NOEU_SIEF","SIGM_NOEU_ZAC", + "SIPO_NOEU_DEPL","SIPO_NOEU_SIEF", + "SIRE_NOEU_DEPL", + "VARI_NOEU" ,"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='f',typ=modele_sdaster), + ), + + CHAM_MATER =SIMP(statut='f',typ=cham_mater), + CARA_ELEM =SIMP(statut='f',typ=cara_elem), + EXCIT =FACT(statut='f',max='**', + CHARGE =SIMP(statut='f',typ=(char_meca,char_ther,char_acou) ), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE", + into=("FIXE_CSTE","FIXE_PILO","SUIV") ), + ), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), + GROUP_MA_RESU =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_RESU =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), + GROUP_NO_RESU =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + NOEUD_RESU =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE ASSIRE A.ASSIRE + +from Macro.calc_precont_ops import calc_precont_ops + + +# =========================================================================== +# CATALOGUE DE LA MACRO "CALC_PRECONT" +# ----------------------------------------- +# USAGE : +# +# +# =========================================================================== + +CALC_PRECONT=MACRO(nom="CALC_PRECONT",op=calc_precont_ops,sd_prod=evol_noli, + fr="imposer la tension definie par le BPEL dans les cables", + reentrant='f', + reuse =SIMP(statut='f',typ='evol_noli'), + MODELE =SIMP(statut='o',typ=modele_sdaster), + CHAM_MATER =SIMP(statut='o',typ=cham_mater), + CARA_ELEM =SIMP(statut='o',typ=cara_elem), + CABLE_BP =SIMP(statut='o',typ=cabl_precont,validators=NoRepeat(),max='**'), + CABLE_BP_INACTIF =SIMP(statut='f',typ=cabl_precont,validators=NoRepeat(),max='**'), + INCREMENT =FACT(statut='o', + LIST_INST =SIMP(statut='o',typ=listr8_sdaster), + INST_INIT =SIMP(statut='f',typ='R'), + INST_FIN =SIMP(statut='f',typ='R'), + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), + 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', + REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), + PREDICTION =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ), + MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ), + PAS_MINI_ELAS =SIMP(statut='f',typ='R',defaut=0.0E+0), + REAC_ITER =SIMP(statut='f',typ='I',defaut=0), + EVOL_NOLI =SIMP(statut='f',typ=evol_noli), + ), + RECH_LINEAIRE =FACT(statut='f', + RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-1 ), + ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3), + ), + CONVERGENCE =FACT(statut='d', + RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), + RESI_GLOB_RELA =SIMP(statut='f',typ='R'), + ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), + ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25), + ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), + RESI_INTE_RELA =SIMP(statut='f',typ='R' + ,defaut= 1.0E-6), + ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), + ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), + RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", + into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), + ), + ETAT_INIT =FACT(statut='f', + regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','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'), + ), + SOLVEUR =FACT(statut='d', + METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), + b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", + RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), + ), + b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), + ), + b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", + fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", + NPREC =SIMP(statut='f',typ='I',defaut= 8 ), + STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ), + ), + b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", + PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), + NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), + RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), + NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), + ), + SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + ), + SOLV_NON_LOCAL =FACT(statut='f', + METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), + b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", + RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), + ), + b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), + ), + b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", + fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", + NPREC =SIMP(statut='f',typ='I',defaut= 8 ), + STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", + PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), + NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), + RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), + NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), + ), + EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ), + LAGR_NON_LOCAL =FACT(statut='f', + ITER_DUAL_MAXI =SIMP(statut='f',typ='I',defaut= 50), + RESI_DUAL_ABSO =SIMP(statut='o',typ='R'), + RESI_PRIM_ABSO =SIMP(statut='o',typ='R'), + R =SIMP(statut='f',typ='R',defaut= 1000.), + ITER_PRIM_MAXI =SIMP(statut='f',typ='I',defaut= 10), + ), + PARM_THETA =SIMP(statut='f',typ='R' + ,defaut= 1. ), + INFO =SIMP(statut='f',typ='I',into=(1,2) ), + TITRE =SIMP(statut='f',typ='TXM',max='**' ), + + EXCIT =FACT(statut='o',max='**', + CHARGE =SIMP(statut='o',typ=char_meca), + ), + + COMP_INCR =C_COMP_INCR(), + ) ; +#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +CALC_THETA=OPER(nom="CALC_THETA",op=54,sd_prod=theta_geom,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_sdaster) ), + THETA_3D =FACT(statut='f',max='**', + regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'), + UN_PARMI('MODULE','MODULE_FO'), + ENSEMBLE('MODULE','R_INF','R_SUP'), + ENSEMBLE('MODULE_FO','R_INF_FO','R_SUP_FO'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MODULE =SIMP(statut='f',typ='R'), + R_INF =SIMP(statut='f',typ='R'), + R_SUP =SIMP(statut='f',typ='R'), + MODULE_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + R_INF_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + R_SUP_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ), + b_theta_3d =BLOC(condition="THETA_3D != None", + FOND_FISS =SIMP(statut='f',typ=fond_fiss),), + DIRE_THETA =SIMP(statut='f',typ=(cham_no_depl_r) ), + DIRECTION =SIMP(statut='f',typ='R',max='**'), + THETA_2D =FACT(statut='f',max='**', + regles=(UN_PARMI('GROUP_NO','NOEUD'),), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MODULE =SIMP(statut='o',typ='R'), + R_INF =SIMP(statut='o',typ='R'), + R_SUP =SIMP(statut='o',typ='R'), + ), + THETA_BANDE =FACT(statut='f',max='**', + MODULE =SIMP(statut='o',typ='R'), + R_INF =SIMP(statut='o',typ='R'), + R_SUP =SIMP(statut='o',typ='R'), + ), + GRAD_NOEU_THETA =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + IMPRESSION =FACT(statut='f', + UNITE =SIMP(statut='f',typ='I',defaut=8), + FORMAT =SIMP(statut='f',typ='TXM',defaut="EXCEL",into=("EXCEL","AGRAF") ), + ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE VABHHTS J.PELLET +def calc_vect_elem_prod(OPTION,**args): + if OPTION == "CHAR_MECA" : return vect_elem_depl_r + if OPTION == "CHAR_MECA_LAGR" : return vect_elem_depl_r + if OPTION == "CHAR_THER" : return vect_elem_temp_r + if OPTION == "CHAR_ACOU" : return vect_elem_pres_c + if OPTION == "FORC_NODA" : return vect_elem_depl_r + raise AsException("type de concept resultat non prevu") + +CALC_VECT_ELEM=OPER(nom="CALC_VECT_ELEM",op=8,sd_prod=calc_vect_elem_prod,reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + fr="Calcul des seconds membres élémentaires", + OPTION =SIMP(statut='o',typ='TXM',into=("CHAR_MECA","CHAR_THER","CHAR_ACOU", + "FORC_NODA","CHAR_MECA_LAGR") ), + b_char_meca =BLOC(condition = "OPTION=='CHAR_MECA'", + regles=(AU_MOINS_UN('CHARGE','MODELE'),), + CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), + MODELE =SIMP(statut='f',typ=modele_sdaster), + b_charge =BLOC(condition = "CHARGE != None", fr="modèle ne contenant pas de sous-structure", + CHAM_MATER =SIMP(statut='f',typ=cham_mater), + CARA_ELEM =SIMP(statut='f',typ=cara_elem), + INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ), + ), + b_modele =BLOC(condition = "(MODELE != None)",fr="modèle contenant une sous-structure", + SOUS_STRUC =FACT(statut='o',min=01, + regles=(UN_PARMI('TOUT','MAILLE'),), + CAS_CHARGE =SIMP(statut='o',typ='TXM' ), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',), + ), + ), + ), + b_char_ther =BLOC(condition = "OPTION=='CHAR_THER'", + CARA_ELEM =SIMP(statut='f',typ=cara_elem), + CHARGE =SIMP(statut='o',typ=char_ther,validators=NoRepeat(),max='**'), + INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ), + + b_char_acou =BLOC(condition = "OPTION=='CHAR_ACOU'", + CHAM_MATER =SIMP(statut='o',typ=cham_mater), + CHARGE =SIMP(statut='o',typ=char_acou,validators=NoRepeat(),max='**'), + ), + + b_forc_noda =BLOC(condition = "OPTION=='FORC_NODA'", + SIEF_ELGA =SIMP(statut='o',typ=cham_elem_sief_r), + CARA_ELEM =SIMP(statut='f',typ=cara_elem), + MODELE =SIMP(statut='f',typ=modele_sdaster), + ), + + b_meca_lagr =BLOC(condition = "OPTION=='CHAR_MECA_LAGR'", + CHAM_MATER =SIMP(statut='o',typ=cham_mater), + THETA =SIMP(statut='o',typ=theta_geom), + PROPAGATION =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), + INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE 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[0]['CHAM_ELEM'] + elif COMB_C != None: + vale=COMB_C[0]['CHAM_ELEM'] + elif COMB_FOURIER != None: + vale=COMB_FOURIER[0]['CHAM_ELEM'] + 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", + UIinfo={"groupes":("Résultats et champs",)}, + regles=(UN_PARMI('COMB_R','COMB_C','COMB_FOURIER'), + PRESENT_PRESENT('COMB_FOURIER','ANGL'),), + COMB_R =FACT(statut='f',max='**', + 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',max='**', + regles=(UN_PARMI('COEF_R','COEF_C', ),), + COEF_R =SIMP(statut='f',typ='R'), + COEF_C =SIMP(statut='f',typ='C'), + CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r) ), + ), + COMB_FOURIER =FACT(statut='f',max='**', + 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 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE G8BHHXD X.DESROCHES +def comb_cham_no_prod(COMB_R,COMB_C,COMB_FOURIER,**args): + if COMB_C != None: + type_mat = AsType(COMB_C[0]['CHAM_NO']) + 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[0]['CHAM_NO']) + 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[0]['CHAM_NO']) + 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", + reentrant='f', + UIinfo={"groupes":("Résultats et champs",)}, + regles=(UN_PARMI('COMB_R','COMB_C','COMB_FOURIER'),), + COMB_R =FACT(statut='f',max='**', + PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG",) ), + CHAM_NO =SIMP(statut='o',typ=(cham_no_temp_r,cham_no_temp_c,cham_no_depl_r,cham_no_depl_c + ,cham_no_pres_r,cham_no_pres_c ) ), + COEF_R =SIMP(statut='o',typ='R' ), + ), + COMB_C =FACT(statut='f',max='**', + regles=(UN_PARMI('COEF_R','COEF_C' ),), + CHAM_NO =SIMP(statut='o',typ=(cham_no_temp_r,cham_no_depl_r,cham_no_pres_r,cham_no_temp_c + ,cham_no_depl_c,cham_no_pres_c ) ), + COEF_R =SIMP(statut='f',typ='R' ), + COEF_C =SIMP(statut='f',typ='C' ), + ), + COMB_FOURIER =FACT(statut='f',max='**', + 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 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE G8BHHXD X.DESROCHES +COMB_FOURIER=OPER(nom="COMB_FOURIER",op= 161,sd_prod=comb_fourier, + 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',validators=NoRepeat(),max=5, + into=("DEPL","REAC_NODA","SIEF_ELGA_DEPL","EPSI_ELNO_DEPL","SIGM_ELNO_DEPL") ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE VABHHTS J.PELLET +def comb_matr_asse_prod(COMB_R,COMB_C,CALC_AMOR_GENE,**args): + if COMB_C != None: + type_mat = AsType(COMB_C[0]['MATR_ASSE']) + if type_mat in (matr_asse_depl_c,matr_asse_depl_r) : return matr_asse_depl_c + if type_mat in (matr_asse_gene_c,matr_asse_gene_r) : return matr_asse_gene_c + if type_mat in (matr_asse_temp_c,matr_asse_temp_r) : return matr_asse_temp_c + if type_mat in (matr_asse_pres_c,matr_asse_pres_r) : return matr_asse_pres_c + elif COMB_R != None: + type_mat = AsType(COMB_R[0]['MATR_ASSE']) + if type_mat in (matr_asse_depl_c,matr_asse_depl_r) : return matr_asse_depl_r + if type_mat in (matr_asse_temp_c,matr_asse_temp_r) : return matr_asse_temp_r + if type_mat in (matr_asse_pres_c,matr_asse_pres_r) : return matr_asse_pres_r + if type_mat in (matr_asse_gene_c,matr_asse_gene_r) : return matr_asse_gene_r + elif CALC_AMOR_GENE != None: return matr_asse_gene_r + raise AsException("type de concept resultat non prevu") + +COMB_MATR_ASSE=OPER(nom="COMB_MATR_ASSE",op= 31,sd_prod=comb_matr_asse_prod, + fr="Combinaison linéaire de matrices assemblées", + reentrant='f', + UIinfo={"groupes":("Résultats et champs",)}, + regles=(UN_PARMI('COMB_R','COMB_C','CALC_AMOR_GENE' ),), + COMB_R =FACT(statut='f',max='**', + PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ), + MATR_ASSE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,matr_asse_temp_c + ,matr_asse_pres_r,matr_asse_pres_c,matr_asse_gene_r,matr_asse_gene_c ) ), + COEF_R =SIMP(statut='o',typ='R' ), + ), + COMB_C =FACT(statut='f',max='**', + regles=(UN_PARMI('COEF_R','COEF_C' ),), + MATR_ASSE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,matr_asse_temp_c + ,matr_asse_pres_r,matr_asse_pres_c,matr_asse_gene_r,matr_asse_gene_c ) ), + COEF_R =SIMP(statut='f',typ='R' ), + COEF_C =SIMP(statut='f',typ='C' ), + ), + CALC_AMOR_GENE =FACT(statut='f', + 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_sdaster ), + ), + SANS_CMP =SIMP(statut='f',typ='TXM',into=("LAGR",) ), +) ; +#& MODIF COMMANDE DATE 30/06/2004 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. +# ====================================================================== +COMB_SISM_MODAL=OPER(nom="COMB_SISM_MODAL",op= 109,sd_prod=mode_stat, + fr="Réponse sismique par recombinaison modale par une méthode spectrale", + reentrant='n', + UIinfo={"groupes":("Post traitements",)}, + regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','FREQ','NUME_MODE','LIST_FREQ','LIST_ORDRE'), + UN_PARMI('AMOR_REDUIT','LIST_AMOR','AMOR_GENE' ),), + MODE_MECA =SIMP(statut='o',typ=mode_meca ), + TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster ), + NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), + b_freq =BLOC(condition = "FREQ != None or LIST_FREQ != None", + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + ), + MODE_CORR =SIMP(statut='f',typ=mode_stat_acce ), + + AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), + LIST_AMOR =SIMP(statut='f',typ=listr8_sdaster ), + AMOR_GENE =SIMP(statut='f',typ=matr_asse_gene_r ), + + MASS_INER =SIMP(statut='f',typ=tabl_mass_iner ), + CORR_FREQ =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + + EXCIT =FACT(statut='o',max='**', + regles=(UN_PARMI('MONO_APPUI','NOEUD','GROUP_NO'), + UN_PARMI('AXE','TRI_AXE','TRI_SPEC' ),), + + MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + AXE =SIMP(statut='f',typ='R',max=3,fr="Excitation suivant un seul axe",), + TRI_AXE =SIMP(statut='f',typ='R',max=3,fr="Excitation suivant les trois axes mais avec le meme spectre",), + TRI_SPEC =SIMP(statut='f',typ='TXM',into=("OUI",), + fr="Excitation suivant les trois axes avec trois spectres"), + b_axe =BLOC(condition = "AXE != None",fr="Excitation suivant un seul axe", + SPEC_OSCI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),), + ECHELLE =SIMP(statut='f',typ='R',), + ), + b_tri_axe =BLOC(condition = "TRI_AXE != None",fr="Excitation suivant les trois axes mais avec le meme spectre", + SPEC_OSCI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),), + ECHELLE =SIMP(statut='f',typ='R',), + ), + b_tri_spec =BLOC(condition = "TRI_SPEC != None",fr="Excitation suivant les trois axes avec trois spectres", + SPEC_OSCI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),min=3,max=3 ), + ECHELLE =SIMP(statut='f',typ='R',min=3,max=3), + ), + NATURE =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("ACCE","VITE","DEPL") ), + ), + COMB_MODE =FACT(statut='o', + TYPE =SIMP(statut='o',typ='TXM',into=("SRSS","CQC","DSC","ABS","DPC") ), + DUREE =SIMP(statut='f',typ='R' ), + ), + COMB_DIRECTION =FACT(statut='f', + TYPE =SIMP(statut='f',typ='TXM',into=("QUAD","NEWMARK") ), + ), + COMB_MULT_APPUI =FACT(statut='f',max='**', + regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO' ),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + TYPE_COMBI =SIMP(statut='f',typ='TXM',into=("QUAD","LINE",) ), + ), + COMB_DEPL_APPUI=FACT(statut='f',max='**', + regles=(UN_PARMI('TOUT','LIST_CAS'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)), + LIST_CAS =SIMP(statut='f',typ='I',max='**'), + TYPE_COMBI =SIMP(statut='f',typ='TXM',into=("QUAD","LINE","ABS") ), + ), + DEPL_MULT_APPUI =FACT(statut='f',max='**', + regles=(UN_PARMI('NOEUD','GROUP_NO'), + AU_MOINS_UN('DX','DY','DZ' ),), + NOM_CAS =SIMP(statut='o',typ='TXM',max='**'), + NUME_CAS =SIMP(statut='o',typ='I',max='**'), + MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,), ), + NOEUD_REFE =SIMP(statut='f',typ=no), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + DX =SIMP(statut='f',typ='R' ), + DY =SIMP(statut='f',typ='R' ), + DZ =SIMP(statut='f',typ='R' ), + ), + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=9, + into=("DEPL","VITE","ACCE_ABSOLU","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL", + "EFGE_ELNO_DEPL","REAC_NODA","FORC_NODA","EFGE_ELNO_CART", + "SIPO_ELNO_DEPL") ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), + IMPRESSION =FACT(statut='f',max='**', + regles=(EXCLUS('TOUT','NIVEAU'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NIVEAU =SIMP(statut='f',typ='TXM',into=("SPEC_OSCI","MASS_EFFE","MAXI_GENE"),validators=NoRepeat(),max=3 ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 22/11/2005 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. +# ====================================================================== +def crea_champ_prod(TYPE_CHAM,**args): + import string + grandeur=string.lower(TYPE_CHAM[5:]) + + if TYPE_CHAM[0:5] == "CART_" : + uu="carte_"+grandeur + elif TYPE_CHAM[0:5] == "NOEU_" : + uu="cham_no_"+grandeur + elif TYPE_CHAM[0:2] == "EL" : + uu="cham_elem_"+grandeur + else : + raise AsException("type de concept resultat_sdaster non prevu") + + try : + vv=eval(uu) + except : + raise AsException("type de concept champ non prevu : %s" % uu) + return vv + + +CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod, + fr=" ",reentrant='n', + UIinfo={"groupes":("Résultats et champs",)}, + TYPE_CHAM =SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO()), + # TYPE_CHAM doit etre de la forme : CART_xx, NOEU_xx, ELEM_xx, ELGA_xx ou ELNO_xx + # ou xx est le nom d'une grandeur définie dans le catalogue des grandeurs + +# SI CREATION D'UN CHAM_NO, POUR IMPOSER LA NUMEROTATION DES DDLS : +# ------------------------------------------------------------------ + regles=(EXCLUS('NUME_DDL','CHAM_NO',)), + NUME_DDL =SIMP(statut='f',typ=(nume_ddl_sdaster) ), + CHAM_NO =SIMP(statut='f',typ=(cham_no_sdaster) ), + +# SI CREATION D'UN CHAM_ELEM, POUR aider a l'allocation du champ : +# (PAR DEFAUT : TOU_INI_ELNO/_ELGA/_ELEM) +# ------------------------------------------------------------------ + OPTION =SIMP(statut='f',typ='TXM'), + + OPERATION =SIMP(statut='o',typ='TXM',into=("AFFE","ASSE","EVAL","EXTR","DISC",) ), + + b_affe =BLOC(condition = "OPERATION == 'AFFE'", + regles=(UN_PARMI('MAILLAGE','MODELE'),), + MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster) ), + MODELE =SIMP(statut='f',typ=(modele_sdaster) ), + b_affe_modele =BLOC(condition = "MODELE != None", + PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), ), + AFFE =FACT(statut='o',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD',), + UN_PARMI('VALE','VALE_I','VALE_C','VALE_F', ),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), + VALE =SIMP(statut='f',typ='R',max='**' ), + VALE_I =SIMP(statut='f',typ='I',max='**' ), + VALE_C =SIMP(statut='f',typ='C',max='**' ), + VALE_F =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'), + ), + ), + b_asse =BLOC(condition = "OPERATION == 'ASSE'", + regles=(UN_PARMI('MAILLAGE','MODELE'),), + MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster) ), + MODELE =SIMP(statut='f',typ=(modele_sdaster) ), + b_asse_modele =BLOC(condition = "MODELE != None", + PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), ), + ASSE =FACT(statut='o',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD',), + PRESENT_PRESENT('NOM_CMP_RESU','NOM_CMP', ),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + CHAM_GD =SIMP(statut='o',typ=(cham_gd_sdaster)), + NOM_CMP =SIMP(statut='f',typ='TXM',max='**' ), + NOM_CMP_RESU =SIMP(statut='f',typ='TXM',max='**' ), + CUMUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), + COEF_R =SIMP(statut='f',typ='R',defaut= 1. ), + ), + ), + b_eval =BLOC(condition = "OPERATION == 'EVAL'", + CHAM_F =SIMP(statut='o',typ=(cham_gd_sdaster)), + CHAM_PARA =SIMP(statut='o',typ=(cham_gd_sdaster),max='**'), + ), + b_disc =BLOC(condition = "OPERATION == 'DISC'", + MODELE =SIMP(statut='f',typ=(modele_sdaster) ), + PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), + CHAM_GD =SIMP(statut='o',typ=(cham_gd_sdaster)), + ), + b_extr =BLOC(condition = "OPERATION == 'EXTR'", + regles=(UN_PARMI('MAILLAGE','FISSURE','RESULTAT'),), + MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster) ), + FISSURE =SIMP(statut='f',typ=(fiss_xfem) ), + RESULTAT =SIMP(statut='f',typ=(resultat_sdaster) ), + b_extr_maillage =BLOC(condition = "MAILLAGE != None", + NOM_CHAM =SIMP(statut='o',typ='TXM',into=("GEOMETRIE",)), + ), + b_extr_fissure =BLOC(condition = "FISSURE != None", + NOM_CHAM =SIMP(statut='o',typ='TXM',into=("LTNO","LNNO","GRLTNO","GRLNNO",)), + ), + 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), + fr="Paramètre de sensibilité.", + ang="Sensitivity parameter"), + NOM_CHAM =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()), + TYPE_MAXI =SIMP(statut='f',typ='TXM',into=("MAXI","MINI","MAXI_ABS","MINI_ABS","NORM_TRAN",) ), + 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_sdaster) ), + 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/11/2004 AUTEUR VABHHTS J.PELLET +# RESPONSABLE MCOURTOI M.COURTOIS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage_sdaster, + reentrant='n', + UIinfo={"groupes":("Maillage",)}, + regles=(EXCLUS('ECLA_PG','CREA_MAILLE'), + EXCLUS('ECLA_PG','CREA_GROUP_MA'), + EXCLUS('ECLA_PG','DETR_GROUP_MA'), + EXCLUS('ECLA_PG','MODI_MAILLE'), + EXCLUS('ECLA_PG','LINE_QUAD'), + EXCLUS('ECLA_PG','COQU_VOLU'), + EXCLUS('LINE_QUAD','MODI_MAILLE'), + EXCLUS('LINE_QUAD','CREA_MAILLE'), + EXCLUS('LINE_QUAD','CREA_GROUP_MA'), + EXCLUS('LINE_QUAD','DETR_GROUP_MA'), + EXCLUS('LINE_QUAD','COQU_VOLU'), + EXCLUS('COQU_VOLU','MODI_MAILLE'), + EXCLUS('COQU_VOLU','CREA_MAILLE'), + EXCLUS('COQU_VOLU','CREA_GROUP_MA'), + EXCLUS('COQU_VOLU','DETR_GROUP_MA'), + ), + + # le MAILLAGE est inutile si ECLA_PG + MAILLAGE =SIMP(statut='f',typ=maillage_sdaster ), + + CREA_POI1 =FACT(statut='f',max='**',fr="Création de mailles de type POI1 à partir de noeuds", + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD' ),), + NOM_GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + ), + CREA_MAILLE =FACT(statut='f',max='**',fr="Duplication de mailles", + regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + PREF_MAILLE =SIMP(statut='o',typ='TXM' ), + PREF_NUME =SIMP(statut='f',typ='I' ), + ), + CREA_GROUP_MA =FACT(statut='f',max='**',fr="Duplication de mailles et création de groupes de mailles", + regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),), + NOM =SIMP(statut='o',typ='TXM'), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + PREF_MAILLE =SIMP(statut='o',typ='TXM' ), + PREF_NUME =SIMP(statut='f',typ='I' ), + ), + DETR_GROUP_MA =FACT(statut='f',fr="Destruction de groupes de mailles", + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + NB_MAILLE =SIMP(statut='f',typ='I',defaut= 0, + fr="Nombre minimal de mailles que doit contenir le groupe pour etre détruit", ), + ), + COQU_VOLU =FACT(statut='f', + fr="Creation de mailles volumiques à partir de mailles surfaciques", + NOM =SIMP(statut='o',typ='TXM'), + GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max ='**'), + EPAIS =SIMP(statut='o',typ='R' ), + PREF_MAILLE =SIMP(statut='f',typ='TXM',defaut="MS" ), + PREF_NOEUD =SIMP(statut='f',typ='TXM',defaut="NS" ), + PREF_NUME =SIMP(statut='f',typ='I' ,defaut=1 ), + PLAN =SIMP(statut='o',typ='TXM',into=("SUP","MOY","INF")), + b_MOY =BLOC(condition = "PLAN == 'MOY'", + TRANSLATION =SIMP(statut='o',typ='TXM',into=("SUP","INF") ), + ), + ), + MODI_MAILLE =FACT(statut='f',max='**',fr="Modification du type de mailles", + regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + MAILLE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + OPTION =SIMP(statut='o',typ='TXM',into=("TRIA6_7","QUAD8_9","SEG3_4","QUAD_TRIA3"), + fr="Choix de la transformation" ), + b_NOS =BLOC(condition = "OPTION == 'TRIA6_7' or OPTION == 'QUAD8_9' or OPTION == 'SEG3_4'", + PREF_NOEUD =SIMP(statut='f',typ='TXM',defaut="NS"), + PREF_NUME =SIMP(statut='f',typ='I',defaut= 1 ), + ), + b_QTR =BLOC(condition = "OPTION == 'QUAD_TRIA3'", + PREF_MAILLE =SIMP(statut='f',typ='TXM',defaut="MS" ), + PREF_NUME =SIMP(statut='f',typ='I',defaut= 1 ), + ), + ), + LINE_QUAD =FACT(statut='f',fr="Passage linéaire -> quadratique", + regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + MAILLE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + PREF_NOEUD =SIMP(statut='f',typ='TXM',defaut="NS"), + PREF_NUME =SIMP(statut='f',typ='I',defaut= 1 ), + ), + REPERE =FACT(statut='f',max='**', + fr="changement de repère servant à déterminer les caractéristiques d une section de poutre", + TABLE =SIMP(statut='o',typ=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', + fr="Eclatement des mailles en petites mailles contenant chacune un seul point de gauss", + MODELE =SIMP(statut='o',typ=modele_sdaster ), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + SHRINK =SIMP(statut='f',typ='R',defaut= 0.9, fr="Facteur de réduction" ), + TAILLE_MIN =SIMP(statut='f',typ='R',defaut= 0.0, fr="Taille minimale d'un coté" ), + NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', + into=("SIEF_ELGA","VARI_ELGA","SIEF_ELGA_DEPL","FLUX_ELGA_TEMP",) ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +# + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 30/01/2006 AUTEUR D6BHHJP J.P.LEFEBVRE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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,reentrant='f', + UIinfo={"groupes":("Modélisation",)}, + fr="Créer ou enrichir une structure de donnees resultat à partir de champs aux noeuds", + + OPERATION =SIMP(statut='o',typ='TXM',into=("AFFE","ECLA_PG","PERM_CHAM","PROL_RTZ",), + fr="choix de la fonction a activer",), + + b_affe =BLOC(condition = "OPERATION == 'AFFE'", + + TYPE_RESU =SIMP(statut='o',position='global',typ='TXM',into=("MULT_ELAS","EVOL_ELAS","EVOL_NOLI","FOURIER_ELAS", + "EVOL_THER","EVOL_VARC",) ), + NOM_CHAM =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()), + + AFFE =FACT(statut='o',max='**', + CHAM_GD =SIMP(statut='o',typ=(cham_gd_sdaster)), + MODELE =SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER =SIMP(statut='f',typ=cham_mater), + CARA_ELEM =SIMP(statut='f',typ=cara_elem), + + b_mult_elas =BLOC(condition = "TYPE_RESU == 'MULT_ELAS' ", + NOM_CAS =SIMP(statut='f',typ='TXM' ), + ), + b_evol =BLOC(condition = "((TYPE_RESU=='EVOL_ELAS') or (TYPE_RESU=='EVOL_NOLI') or (TYPE_RESU=='EVOL_THER')\ + or (TYPE_RESU=='EVOL_VARC') )", + regles=(UN_PARMI('INST','LIST_INST'),), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + NUME_INIT =SIMP(statut='f',typ='I', val_min=1), + NUME_FIN =SIMP(statut='f',typ='I', val_min=1), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + ), + b_fourier =BLOC(condition = "TYPE_RESU == 'FOURIER_ELAS' ", + NUME_MODE =SIMP(statut='f',typ='I'), + TYPE_MODE =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ), + ), + ), + ), + + b_ecla_pg =BLOC(condition = "OPERATION == 'ECLA_PG'", + + TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_ELAS","EVOL_NOLI","EVOL_THER"), ), + + ECLA_PG =FACT(statut='o', + regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=("SIEF_ELGA","VARI_ELGA","SIEF_ELGA_DEPL","FLUX_ELGA_TEMP",) ), + MODELE_INIT =SIMP(statut='o',typ=modele_sdaster), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + RESU_INIT =SIMP(statut='o',typ=resultat_sdaster), + MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), + TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), + ), + ), + + b_perm_cham =BLOC(condition = "OPERATION == 'PERM_CHAM'", + + TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_NOLI",) ), + NOM_CHAM =SIMP(statut='f',typ='TXM',into=("DEPL","SIEF_ELGA","VARI_ELGA",),validators=NoRepeat(),max='**' ), + RESU_INIT =SIMP(statut='o',typ=evol_noli), + INST_INIT =SIMP(statut='f',typ='R'), + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), + CRITERE =SIMP(statut='f',typ='TXM',into=('RELATIF','ABSOLU'),defaut='RELATIF'), + MAILLAGE_INIT =SIMP(statut='o',typ=maillage_sdaster,), + RESU_FINAL =SIMP(statut='o',typ=evol_noli,), + MAILLAGE_FINAL =SIMP(statut='o',typ=maillage_sdaster,), + PERM_CHAM =FACT(statut='o',max='**', + GROUP_MA_FINAL =SIMP(statut='o',typ=grma), + GROUP_MA_INIT =SIMP(statut='o',typ=grma), + TRAN =SIMP(statut='o',typ='R',max='**'), + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), + ), + ), + + b_prol_rtz =BLOC(condition = "OPERATION == 'PROL_RTZ'", + + TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_THER",) ), + + PROL_RTZ =FACT(statut='o', + regles=(EXCLUS('INST','LIST_INST'),), + MAILLAGE_FINAL =SIMP(statut='o',typ=maillage_sdaster,), + TABLE =SIMP(statut='o',typ=table_sdaster,fr="Table issue de post_releve_t"), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)", + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + ), + PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU",),), + PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU",),), + REPERE =SIMP(statut='o',typ='TXM',into=("CYLINDRIQUE",),), + ORIGINE =SIMP(statut='o',typ='R',min=3,max=3), + AXE_Z =SIMP(statut='o',typ='R',min=3,max=3), + ), + ), + +) ; +#& MODIF COMMANDE DATE 20/09/2004 AUTEUR DURAND C.DURAND +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +def crea_table_prod(TYPE_TABLE,**args): + if TYPE_TABLE == "TABLE" : return table_sdaster + 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 + if TYPE_TABLE == "TABL_INTE_SPEC" : return tabl_intsp + raise AsException("type de concept resultat non prevu") + +CREA_TABLE=OPER(nom="CREA_TABLE",op= 36,sd_prod=crea_table_prod, + fr="Creation d'une table a partir d'une fonction ou de deux listes", + reentrant='n',UIinfo={"groupes":("Table",)}, + + regles=(EXCLUS('FONCTION','LISTE')), + + TYPE_TABLE=SIMP(statut='f',typ='TXM',defaut="TABLE", + into=("TABLE", + "TABL_CARA_GEOM", + "TABL_POST_RELE", + "TABL_POST_USUR", + "TABL_POST_ALEA", + "TABL_INTE_SPEC" ) ), + LISTE=FACT(statut='f',min=2,max='**', + fr="Creation d'une table a partir de listes", + regles=(UN_PARMI('LISTE_I','LISTE_R','LISTE_K')), + PARA=SIMP(statut='o',typ='TXM'), + TYPE_K=SIMP(statut='f',typ='TXM',defaut='K8', + into=('K8','K16','K24')), + NUME_LIGN=SIMP(statut='f',typ='I',max='**'), + LISTE_I=SIMP(statut='f',typ='I',max='**'), + LISTE_R=SIMP(statut='f',typ='R',max='**'), + LISTE_K=SIMP(statut='f',typ='TXM', max='**')), + FONCTION=FACT(statut='f',min=1,max=1, + fr="Creation d'une table a partir d'une fonction", + FONCTION=SIMP(statut='o',typ=fonction_sdaster), + PARA=SIMP(statut='f',typ='TXM',min=2,max=2)), + TITRE=SIMP(statut='f',typ='TXM',max='**'), +) ; + + + +#& MODIF COMMANDE DATE 30/01/2006 AUTEUR D6BHHJP J.P.LEFEBVRE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +DEBUT=MACRO(nom="DEBUT",op=ops.build_debut ,repetable='n', + UIinfo={"groupes":("Gestion du travail",)}, + fr="Ouverture d une étude. Allocation des ressources mémoire et disque", + 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'ensemble d'une étude", + statut='f',min=1,max=1, + NOM =SIMP(statut='o',typ='TXM'), + NIV_PUB_WEB =SIMP(statut='o',typ='TXM',into=('INTERNET','INTRANET')), + VISU_EFICAS =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI'), + UNITE =SIMP(statut='f',typ='I',defaut=15), + ), + 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 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +DEFI_BASE_MODALE=OPER(nom="DEFI_BASE_MODALE",op= 99,sd_prod=base_modale, + reentrant='f', + UIinfo={"groupes":("Matrices/vecteurs",)}, + regles=(UN_PARMI('CLASSIQUE','RITZ','DIAG_MASS'),), + CLASSIQUE =FACT(statut='f', + INTERF_DYNA =SIMP(statut='o',typ=interf_dyna_clas ), + MODE_MECA =SIMP(statut='o',typ=mode_meca,max='**' ), + NMAX_MODE =SIMP(statut='f',typ='I',defaut= 10 ), + ), + RITZ =FACT(statut='f',max='**', + regles=(UN_PARMI('MODE_STAT','MODE_MECA','MULT_ELAS','BASE_MODALE'),), + MODE_MECA =SIMP(statut='f',typ=mode_meca,max='**' ), + NMAX_MODE =SIMP(statut='f',typ='I',defaut= 999 ), + MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ), + MULT_ELAS =SIMP(statut='f',typ=mult_elas ), + BASE_MODALE =SIMP(statut='f',typ=base_modale ), + ), + DIAG_MASS =FACT(statut='f',max='**', + MODE_MECA =SIMP(statut='o',typ=mode_meca,max='**' ), + MODE_STAT =SIMP(statut='o',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ), + ), +# 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_sdaster ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; +#& MODIF COMMANDE DATE 28/02/2005 AUTEUR DURAND C.DURAND +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +from Macro.defi_cable_bp_ops import defi_cable_bp_ops + +# =========================================================================== +# CATALOGUE DE LA MACRO "DEFI_CABLE_BP" +# ----------------------------------------- +# +# USAGE : +# Entrée : +# - MAILLAGE +# - MODELE +# - CABLE +# - CHAM_MATER +# - CARA_ELEM +# - GROUP_MA_BETON +# - DEFI_CABLE +# - TENSION_INIT +# - RECUL_ANCRAGE +# - RELAXATION +# - CONE +# RAYON +# LONGUEUR +# PRESENT OUI ou NON deux fois +# - TITRE +# - INFO 1 / 2 +# +# =========================================================================== + + +def defi_cable_bp_prod(self,MAILLAGE,**args ): + if MAILLAGE!= None : self.type_sdprod(MAILLAGE,maillage_sdaster) + return cabl_precont + raise AsException("type de concept resultat non prevu") + +DEFI_CABLE_BP=MACRO(nom="DEFI_CABLE_BP",op=defi_cable_bp_ops,sd_prod=defi_cable_bp_prod, + fr=" ", + reentrant='n', + regles=(ENSEMBLE('MAILLAGE','CONE'),), + MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster,CO)), + MODELE =SIMP(statut='o',typ=modele_sdaster ), + CHAM_MATER =SIMP(statut='o',typ=cham_mater ), + CARA_ELEM =SIMP(statut='o',typ=cara_elem ), + GROUP_MA_BETON =SIMP(statut='o',typ=grma,max='**'), + DEFI_CABLE =FACT(statut='o',max='**', + regles=(UN_PARMI('MAILLE','GROUP_MA'), + UN_PARMI('NOEUD_ANCRAGE','GROUP_NO_ANCRAGE'),), + MAILLE =SIMP(statut='f',typ=ma,min=2,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma), + NOEUD_ANCRAGE =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=2), + GROUP_NO_ANCRAGE=SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2), + ), + TYPE_ANCRAGE =SIMP(statut='o',typ='TXM',min=2,max=2,into=("ACTIF","PASSIF") ), + TENSION_INIT =SIMP(statut='o',typ='R',val_min=0.E+0 ), + RECUL_ANCRAGE =SIMP(statut='o',typ='R',val_min=0.E+0 ), + RELAXATION =FACT(statut='f',min=0, + R_J =SIMP(statut='o',typ='R',val_min=0.E+0 ), + ), + CONE =FACT(statut='f',min=0, + RAYON =SIMP(statut='o',typ='R',val_min=0.E+0 ), + LONGUEUR =SIMP(statut='o',typ='R',val_min=0.E+0 ), + PRESENT =SIMP(statut='o',typ='TXM',min=2,max=2,into=("OUI","NON") ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**' ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; +#& MODIF COMMANDE DATE 24/08/2004 AUTEUR CIBHHPD S.VANDENBERGHE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +DEFI_CABLE_OP=OPER(nom="DEFI_CABLE_OP",op= 180,sd_prod=cabl_precont, + fr=" ", + reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + MODELE =SIMP(statut='o',typ=modele_sdaster ), + CHAM_MATER =SIMP(statut='o',typ=cham_mater ), + CARA_ELEM =SIMP(statut='o',typ=cara_elem ), + GROUP_MA_BETON =SIMP(statut='o',typ=grma,max='**'), + DEFI_CABLE =FACT(statut='o',max='**', + regles=(UN_PARMI('MAILLE','GROUP_MA'), + UN_PARMI('NOEUD_ANCRAGE','GROUP_NO_ANCRAGE'),), + MAILLE =SIMP(statut='f',typ=ma,min=2,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma), + NOEUD_ANCRAGE =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=2), + GROUP_NO_ANCRAGE=SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2), + GROUP_NO_FUT =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2), + ), + TYPE_ANCRAGE =SIMP(statut='o',typ='TXM',min=2,max=2,into=("ACTIF","PASSIF") ), + TENSION_INIT =SIMP(statut='o',typ='R',val_min=0.E+0 ), + RECUL_ANCRAGE =SIMP(statut='o',typ='R',val_min=0.E+0 ), + RELAXATION =FACT(statut='f',min=0, + R_J =SIMP(statut='o',typ='R',val_min=0.E+0 ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**' ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), + CONE =FACT(statut='f',min=0, + RAYON =SIMP(statut='o',typ='R',val_min=0.E+0 ), + LONGUEUR =SIMP(statut='o',typ='R',val_min=0.E+0, defaut=0.E+0 ), + PRESENT =SIMP(statut='o',typ='TXM',min=2,max=2,into=("OUI","NON") ), + ), +) ; +#& MODIF COMMANDE DATE 27/09/2004 AUTEUR JMBHH01 J.M.PROIX +# RESPONSABLE JMBHH01 J.M.PROIX +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +DEFI_COMPOR=OPER(nom="DEFI_COMPOR",op=59,sd_prod=compor_sdaster, + fr="Définition du comportement monocristallin", + reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + regles=(EXCLUS('MONOCRISTAL','POLYCRISTAL'),), + + MONOCRISTAL =FACT(statut='f', max='**', + MATER =SIMP(statut='o', typ=mater_sdaster, max=1), + ECOULEMENT =SIMP(statut='o', typ='TXM', max=1, + fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écoulement viscoplastique"), + ECRO_ISOT =SIMP(statut='o', typ='TXM', max=1, + fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écrouissage isotrope"), + ECRO_CINE =SIMP(statut='o', typ='TXM', max=1, + fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écrouissage cinématique"), + ELAS =SIMP(statut='f', typ='TXM', max=1, + fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le comportement élastique (un et un seul)"), + FAMI_SYST_GLIS =SIMP(statut='o',typ='TXM', max=1, + into=('BASAL', 'PRISMATIQUE', 'OCTAEDRIQUE', 'PYRAMIDAL1', + 'PYRAMIDAL2', 'CUBIQUE1', 'CUBIQUE2', 'MACLAGE', 'JOINT_GRAIN', 'RL', 'UNIAXIAL'),), + ), + + + POLYCRISTAL =FACT(statut='f', max='**', + MONOCRISTAL =SIMP(statut='o', typ=compor_sdaster, max=1), + FRAC_VOL =SIMP(statut='o', typ='R', max=1,fr="fraction volumique de la phase correspondant au monocristal"), + ANGL_REP =SIMP(statut='o',typ='R',max=3,fr="orientation du monocristal : 3 angles d'Euler en degrés"), + ), + + + b_poly =BLOC( condition = "POLYCRISTAL!='None'", + LOCALISATION =SIMP(statut='f', typ='TXM', max=1, into=('BZ', 'BETA', 'RL',), + fr="Donner le nom de la règle de localisation"), + + b_beta =BLOC( condition = "LOCALISATION=='BETA'", + DL =SIMP(statut='o',typ='R',max=1), + DA =SIMP(statut='o',typ='R',max=1), + ), + ), + + ); + +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +DEFI_CONSTANTE=OPER(nom="DEFI_CONSTANTE",op= 2,sd_prod=fonction_sdaster, + fr="Définition d une fonction constante", + reentrant='n', + UIinfo={"groupes":("Fonction",)}, + NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"), + VALE =SIMP(statut='o',typ='R',), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +DEFI_COQU_MULT=OPER(nom="DEFI_COQU_MULT",op=56,sd_prod=mater_sdaster,reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + fr="Définition d une coque composite couche par couche", + COUCHE =FACT(statut='o',max='**', + EPAIS =SIMP(statut='o',typ='R',val_min=0.E+0 ), + MATER =SIMP(statut='o',typ=(mater_sdaster) ), + ORIENTATION =SIMP(statut='f',typ='R',defaut= 0.E+0, + val_min=-90.E+0,val_max=90.E+0 ), + ), + IMPRESSION =FACT(statut='f', + UNITE =SIMP(statut='f',typ='I',defaut=8), + ), +) ; +#& MODIF COMMANDE DATE 11/05/2005 AUTEUR MCOURTOI M.COURTOIS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE D6BHHJP J.P.LEFEBVRE +def DEFIC_prod(self,ACTION,UNITE,**args): + if ACTION == "ASSOCIER" or ACTION == "RESERVER": + if UNITE != None : + return + else : + return entier + elif ACTION == "LIBERER" : + return + else : + raise AsException("ACTION non prevue : %s" % ACTION) + +DEFI_FICHIER=MACRO(nom="DEFI_FICHIER",op=ops.build_DEFI_FICHIER,sd_prod=DEFIC_prod,reentrant='n', + UIinfo={"groupes":("Gestion du travail",)}, + fr="Gestion d une unité logique : ajout, suppression", + + ACTION =SIMP(statut='f',typ='TXM',into=("ASSOCIER","LIBERER","RESERVER"),defaut="ASSOCIER"), + + b_associer =BLOC(condition = "ACTION == 'ASSOCIER'", + fr="Paramètres pour l'ouverture du fichier", + regles=(AU_MOINS_UN('FICHIER','UNITE'),), + UNITE =SIMP(statut='f',typ='I' ,val_min=1), + FICHIER =SIMP(statut='f',typ='TXM',validators=LongStr(1,255)), + TYPE =SIMP(statut='f',typ='TXM',into=("ASCII","BINARY","LIBRE"),defaut="ASCII"), + + b_type_ascii =BLOC(condition = "TYPE == 'ASCII'",fr="Paramètres pour le type ASCII", + ACCES =SIMP(statut='f',typ='TXM',into=("NEW","APPEND","OLD"),defaut="NEW"), + ), + b_type_autre =BLOC(condition = "TYPE != 'ASCII'",fr="Paramètres pour les types BINARY et LIBRE", + ACCES =SIMP(statut='f',typ='TXM',into=("NEW","OLD"),defaut="NEW"), + ), + ), + + b_reserver =BLOC(condition = "ACTION == 'RESERVER'", + fr="Paramètres pour la réservation de l'unité du fichier", + regles=(AU_MOINS_UN('FICHIER','UNITE'),), + UNITE =SIMP(statut='f',typ='I' ,val_min=1), + FICHIER =SIMP(statut='f',typ='TXM',validators=LongStr(1,255)), + TYPE =SIMP(statut='f',typ='TXM',into=("ASCII",),defaut="ASCII"), + ACCES =SIMP(statut='f',typ='TXM',into=("APPEND",),defaut="APPEND"), + ), + + b_liberer =BLOC(condition = "ACTION == 'LIBERER'", + fr="Paramètres pour la fermeture du fichier", + regles=(UN_PARMI('FICHIER','UNITE'),), + UNITE =SIMP(statut='f',typ='I' ,val_min=1), + FICHIER =SIMP(statut='f',typ='TXM',validators=LongStr(1,255)), + ), + + INFO =SIMP(statut='f',typ='I',into=(1,2) ), + ) +#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +DEFI_FISS_XFEM=OPER(nom="DEFI_FISS_XFEM",op= 41,sd_prod=fiss_xfem,reentrant='f', + UIinfo={"groupes":("Modélisation",)}, + fr="Définition des caratéristiques d''une fissure avec XFEM", + + MODELE =SIMP(statut='o',typ=modele_sdaster), + DEFI_FISS =FACT(statut='o',max=01, + regles =(UN_PARMI('GROUP_MA_FISS','FONC_LT'), + ENSEMBLE('FONC_LT','FONC_LN'), + ENSEMBLE('GROUP_MA_FISS','GROUP_MA_FOND')), + FONC_LT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FONC_LN =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + GROUP_MA_FISS =SIMP(statut='f',typ=grma,max=01), + GROUP_MA_FOND =SIMP(statut='f',typ=grma), + ), + GROUP_MA_ENRI =SIMP(statut='o',typ=grma,max=01), + ORIE_FOND =FACT(statut='o',max=01, + PFON_INI =SIMP(statut='o',typ='R',max=03), + VECT_ORIE =SIMP(statut='o',typ='R',max=03), + PT_ORIGIN =SIMP(statut='o',typ='R',max=03), + ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,3,) ), + +) ; +#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +DEFI_FLUI_STRU=OPER(nom="DEFI_FLUI_STRU",op= 143,sd_prod=type_flui_stru, + reentrant='n', + UIinfo={"groupes":("Maillage",)}, + regles=( UN_PARMI('FAISCEAU_TRANS','GRAPPE','FAISCEAU_AXIAL','COQUE_COAX',),), + FAISCEAU_TRANS =FACT(statut='f',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_sdaster,nappe_sdaster,formule) ), + PROF_RHO_F_INT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + PROF_RHO_F_EXT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + NOM_CMP =SIMP(statut='f',typ='TXM',into=("DX","DY","DZ") ), + COEF_MASS_AJOU =SIMP(statut='f',typ='R' ), + TYPE_PAS =SIMP(statut='f',typ='TXM',into=("CARRE_LIGN","TRIA_LIGN") ), + TYPE_RESEAU =SIMP(statut='f',typ='I' ), + UNITE_CD =SIMP(statut='f',typ='I',defaut=70), + UNITE_CK =SIMP(statut='f',typ='I',defaut=71), + PAS =SIMP(statut='f',typ='R' ), + ), + GRAPPE =FACT(statut='f', + regles=(ENSEMBLE('GRAPPE_2','NOEUD','CARA_ELEM','MODELE','RHO_FLUI',), + PRESENT_PRESENT('COEF_MASS_AJOU','GRAPPE_2', ),), +# peut on créer un bloc a partir de la valeur de couplage + COUPLAGE =SIMP(statut='o',typ='TXM',into=("OUI","NON") ), + GRAPPE_2 =SIMP(statut='f',typ='TXM', + into=("ASC_CEN","ASC_EXC","DES_CEN","DES_EXC") ), + NOEUD =SIMP(statut='f',typ=no), + CARA_ELEM =SIMP(statut='f',typ=cara_elem ), + MODELE =SIMP(statut='f',typ=modele_sdaster ), + COEF_MASS_AJOU =SIMP(statut='f',typ='R' ), + RHO_FLUI =SIMP(statut='f',typ='R' ), + UNITE_CA =SIMP(statut='f',typ='I',defaut=70), + UNITE_KA =SIMP(statut='f',typ='I',defaut=71), + ), + FAISCEAU_AXIAL =FACT(statut='f',max='**', + regles=(UN_PARMI('GROUP_MA','TRI_GROUP_MA'), + UN_PARMI('CARA_ELEM','RAYON_TUBE'), + ENSEMBLE('RAYON_TUBE','COOR_TUBE'), + PRESENT_ABSENT('RAYON_TUBE','TRI_GROUP_MA'), + ENSEMBLE('CARA_PAROI','VALE_PAROI'), + ENSEMBLE('LONG_TYPG','LARG_TYPG','EPAI_TYPG','RUGO_TYPG','COEF_TRAI_TYPG','COEF_DPOR_TYPG', + 'COOR_GRILLE','TYPE_GRILLE', ),), +# on doit pouvoir mettre des blocs conditionnels mais pas assez d infos pour le faire + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + TRI_GROUP_MA =SIMP(statut='f',typ='TXM' ), + VECT_X =SIMP(statut='f',typ='R',max=3), + PROF_RHO_FLUI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + PROF_VISC_CINE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + CARA_ELEM =SIMP(statut='f',typ=cara_elem ), + RAYON_TUBE =SIMP(statut='f',typ='R' ), + COOR_TUBE =SIMP(statut='f',typ='R',max='**'), + PESANTEUR =SIMP(statut='f',typ='R',min=4,max=4), + RUGO_TUBE =SIMP(statut='f',typ='R' ), + CARA_PAROI =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=5, + into=("YC","ZC","R","HY","HZ") ), + VALE_PAROI =SIMP(statut='f',typ='R',max=5), + ANGL_VRIL =SIMP(statut='f',typ='R' ), + LONG_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0), + LARG_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0), + EPAI_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0), + RUGO_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0), + COEF_TRAI_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0), + COEF_DPOR_TYPG =SIMP(statut='f',typ='R',max='**'), + COOR_GRILLE =SIMP(statut='f',typ='R',max='**'), + TYPE_GRILLE =SIMP(statut='f',typ='I',max='**'), + ), + COQUE_COAX =FACT(statut='f', + MASS_AJOU =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + GROUP_MA_INT =SIMP(statut='o',typ=grma), + GROUP_MA_EXT =SIMP(statut='o',typ=grma), + VECT_X =SIMP(statut='o',typ='R',max='**'), + CARA_ELEM =SIMP(statut='o',typ=cara_elem ), + MATER_INT =SIMP(statut='o',typ=mater_sdaster ), + MATER_EXT =SIMP(statut='o',typ=mater_sdaster ), + RHO_FLUI =SIMP(statut='o',typ='R' ), + VISC_CINE =SIMP(statut='o',typ='R' ), + RUGOSITE =SIMP(statut='o',typ='R' ), + PDC_MOY_1 =SIMP(statut='o',typ='R' ), + PDC_DYN_1 =SIMP(statut='o',typ='R' ), + PDC_MOY_2 =SIMP(statut='o',typ='R' ), + PDC_DYN_2 =SIMP(statut='o',typ='R' ), + ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +DEFI_FONC_ELEC=OPER(nom="DEFI_FONC_ELEC",op=64,sd_prod=fonction_sdaster,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',max='**', + fr="Définition du courant de court-circuit", + regles=(UN_PARMI('PHI_CC_1','INTC_CC_1'), + UN_PARMI('PHI_CC_2','INTC_CC_2'),), + INTE_CC_1 =SIMP(statut='o',typ='R'), + TAU_CC_1 =SIMP(statut='o',typ='R'), + PHI_CC_1 =SIMP(statut='f',typ='R'), + INTC_CC_1 =SIMP(statut='f',typ='R'), + INTE_CC_2 =SIMP(statut='o',typ='R'), + TAU_CC_2 =SIMP(statut='o',typ='R'), + PHI_CC_2 =SIMP(statut='f',typ='R'), + INTC_CC_2 =SIMP(statut='f',typ='R'), + INST_CC_INIT =SIMP(statut='o',typ='R'), + INST_CC_FIN =SIMP(statut='o',typ='R'), + ), + COUR_PRIN =FACT(statut='f', + fr="Définition du courant de court-circuit avec réenclenchement", + regles=(UN_PARMI('PHI_CC_1','INTC_CC_1'),), + INTE_CC_1 =SIMP(statut='o',typ='R'), + TAU_CC_1 =SIMP(statut='o',typ='R'), + PHI_CC_1 =SIMP(statut='f',typ='R'), + INTC_CC_1 =SIMP(statut='f',typ='R'), + INTE_RENC_1 =SIMP(statut='f',typ='R'), + TAU_RENC_1 =SIMP(statut='f',typ='R'), + PHI_RENC_1 =SIMP(statut='f',typ='R'), + INST_CC_INIT =SIMP(statut='o',typ='R'), + INST_CC_FIN =SIMP(statut='o',typ='R'), + INST_RENC_INIT =SIMP(statut='f',typ='R',defaut= 0.0E+0), + INST_RENC_FIN =SIMP(statut='f',typ='R',defaut= 0.0E+0), + ), + COUR_SECO =FACT(statut='f',max='**', + fr="Définition du courant de court-circuit avec un intervalle de temps différent de celui de COUR_PRIN", + regles=(UN_PARMI('PHI_CC_2','INTC_CC_2'),), + INTE_CC_2 =SIMP(statut='o',typ='R'), + TAU_CC_2 =SIMP(statut='o',typ='R'), + PHI_CC_2 =SIMP(statut='f',typ='R'), + INTC_CC_2 =SIMP(statut='f',typ='R'), + INTE_RENC_2 =SIMP(statut='f',typ='R'), + TAU_RENC_2 =SIMP(statut='f',typ='R'), + PHI_RENC_2 =SIMP(statut='f',typ='R'), + DIST =SIMP(statut='f',typ='R',defaut=1.0E+0), + ), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +DEFI_FONC_FLUI=OPER(nom="DEFI_FONC_FLUI",op= 142,sd_prod=fonction_sdaster, + reentrant='n', + UIinfo={"groupes":("Fonction",)}, + MAILLAGE =SIMP(statut='o',typ=(maillage_sdaster) ), + NOEUD_INIT =SIMP(statut='o',typ=no), + NOEUD_FIN =SIMP(statut='o',typ=no), + VITE =FACT(statut='o', + VALE =SIMP(statut='f',typ='R',defaut= 1. ), + PROFIL =SIMP(statut='o',typ='TXM',into=("UNIFORME","LEONARD") ), + NB_BAV =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 2 , 3 ) ), + ), + INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN", + into=("NON","LIN","LOG") ), + PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU", + into=("CONSTANT","LINEAIRE","EXCLU") ), + PROL_GAUCHE =SIMP(statut='f',typ='TXM' ,defaut="EXCLU", + into=("CONSTANT","LINEAIRE","EXCLU") ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 10/10/2005 AUTEUR MCOURTOI M.COURTOIS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE MCOURTOI M.COURTOIS +def defi_fonction_prod(VALE,VALE_PARA,VALE_C,NOEUD_PARA,**args): + if VALE != None : return fonction_sdaster + if VALE_C != None : return fonction_c + if VALE_PARA != None : return fonction_sdaster + if NOEUD_PARA != None : return fonction_sdaster + raise AsException("type de concept resultat non prevu") + +DEFI_FONCTION=OPER(nom="DEFI_FONCTION",op=3,sd_prod=defi_fonction_prod + ,fr="Définition des valeurs réelles ou complexes d une fonction réelle", + reentrant='n', + UIinfo={"groupes":("Fonction",)}, + regles=(UN_PARMI('VALE','VALE_C','VALE_PARA','NOEUD_PARA'),), + NOM_PARA =SIMP(statut='o',typ='TXM',), + NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"), + VALE =SIMP(statut='f',typ='R',min=2,max='**', + fr ="Fonction réelle définie par une liste de couples (abscisse,ordonnée)"), + VALE_C =SIMP(statut='f',typ='R',min=2,max='**', + fr ="Fonction complexe définie par une liste de couples"), + VALE_PARA =SIMP(statut='f',typ=listr8_sdaster, + fr ="Fonction réelle définie par deux concepts de type listr8" ), + b_vale_para =BLOC(condition = "VALE_PARA != None", + VALE_FONC =SIMP(statut='o',typ=listr8_sdaster ), + ), + NOEUD_PARA =SIMP(statut='f',typ=no,max='**', + fr ="Fonction réelle définie par une liste de noeuds et un maillage"), + b_noeud_para =BLOC(condition = "NOEUD_PARA != None", + MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), + VALE_Y =SIMP(statut='o',typ='R',max='**'), + ), + + INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), + PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), + PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), + VERIF =SIMP(statut='f',typ='TXM',defaut="CROISSANT",into=("CROISSANT","NON") ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +DEFI_FOND_FISS=OPER(nom="DEFI_FOND_FISS",op=55,sd_prod=fond_fiss,reentrant='n', + UIinfo={"groupes":("Post traitements",)}, + fr="Définition de lèvres et d un fond de fissure en 3D", + regles=(UN_PARMI('FOND_FISS','FOND_FERME'), + 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_sdaster ), + FOND_FISS =FACT(statut='f', + regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'), + EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'), + EXCLUS('NOEUD_EXTR','GROUP_NO_EXTR'),), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), +# à mettre à jour le max vaut-il 1 + NOEUD_ORIG =SIMP(statut='f',typ=no,), + GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), + NOEUD_EXTR =SIMP(statut='f',typ=no,), + GROUP_NO_EXTR =SIMP(statut='f',typ=grno,), + ), + FOND_FERME =FACT(statut='f', + regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'), + EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + NOEUD_ORIG =SIMP(statut='f',typ=no,), + GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), + MAILLE_ORIG =SIMP(statut='f',typ=ma,), + GROUP_MA_ORIG =SIMP(statut='f',typ=ma,), + ), + LEVRE_SUP =FACT(statut='f', + regles=(UN_PARMI('GROUP_MA','MAILLE'),), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + ), + LEVRE_INF =FACT(statut='f', + regles=(UN_PARMI('GROUP_MA','MAILLE', ),), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + ), + NORMALE =SIMP(statut='f',typ='R',max='**'), + DTAN_ORIG =SIMP(statut='f',typ='R',max='**'), + DTAN_EXTR =SIMP(statut='f',typ='R',max='**'), + VECT_GRNO_ORIG =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2), + VECT_GRNO_EXTR =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 25/10/2004 AUTEUR CIBHHLV L.VIVAN +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE VABHHTS J.PELLET +def defi_group_prod(MAILLAGE,**args): + if AsType(MAILLAGE) == maillage_sdaster : return maillage_sdaster + if AsType(MAILLAGE) == squelette : return squelette + raise AsException("type de concept resultat non prevu") + +DEFI_GROUP=OPER(nom="DEFI_GROUP",op= 104,sd_prod=defi_group_prod, + fr="Définition de nouveaux groupes de noeuds et/ou de mailles dans un concept maillage", + reentrant='o', + UIinfo={"groupes":("Maillage",)}, + regles=(AU_MOINS_UN('CREA_GROUP_MA','CREA_GROUP_NO'),), + MAILLAGE =SIMP(statut='o',typ=(maillage_sdaster,squelette) ), + + CREA_GROUP_MA =FACT(statut='f',max='**', + +regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','INTERSEC','UNION','DIFFE','OPTION'),), +# quel est le concept attendu deriere NOM + NOM =SIMP(statut='o',typ=grma), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + INTERSEC =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + UNION =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + DIFFE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + OPTION =SIMP(statut='f',typ='TXM',into=("FACE_NORMALE","SPHERE","CYLINDRE","BANDE","APPUI_LACHE") ), + b_group_ma =BLOC(condition = "GROUP_MA != None", + regles=(EXCLUS('POSITION','NUME_INIT'),), + NUME_INIT =SIMP(statut='f',typ='I'), + POSITION =SIMP(statut='f',typ='TXM',into=("INIT","FIN","MILIEU") ), + b_nume_init =BLOC(condition = "NUME_INIT != None", + NUME_FIN =SIMP(statut='f',typ='I' ), + ), + ), + b_face_normale =BLOC(condition = "OPTION == 'FACE_NORMALE'", + regles=(UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), + ANGL_NAUT =SIMP(statut='f',typ='R',max=2), + VECT_NORMALE =SIMP(statut='f',typ='R',max=3), + ANGL_PREC =SIMP(statut='f',typ='R',defaut= 0.5 ), + VERI_SIGNE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + b_sphere =BLOC(condition = "OPTION == 'SPHERE'", + regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),), + POINT =SIMP(statut='f',typ='R',max=3), + NOEUD_CENTRE =SIMP(statut='f',typ=no), + GROUP_NO_CENTRE =SIMP(statut='f',typ=grno), + RAYON =SIMP(statut='o',typ='R' ), + ), + b_cylindre =BLOC(condition = "OPTION == 'CYLINDRE'", + regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'), + UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), + POINT =SIMP(statut='f',typ='R',max=3), + NOEUD_CENTRE =SIMP(statut='f',typ=no), + GROUP_NO_CENTRE =SIMP(statut='f',typ=grno), + RAYON =SIMP(statut='o',typ='R' ), + ANGL_NAUT =SIMP(statut='f',typ='R',max=2), + VECT_NORMALE =SIMP(statut='f',typ='R',max=3), + ), + b_bande =BLOC(condition = "OPTION == 'BANDE'", + regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'), + UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), + POINT =SIMP(statut='f',typ='R' ,max=3), + NOEUD_CENTRE =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=1), + GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1), + DIST =SIMP(statut='o',typ='R' ), + ANGL_NAUT =SIMP(statut='f',typ='R',max=2), + VECT_NORMALE =SIMP(statut='f',typ='R',max=3), + ), + b_app_lache =BLOC(condition = "OPTION == 'APPUI_LACHE'", + regles=(UN_PARMI('NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + ), + ), + CREA_GROUP_NO =FACT(statut='f',max='**', + OPTION =SIMP(statut='f',typ='TXM',into=("ENV_SPHERE","ENV_CYLINDRE","PLAN", + "SEGM_DROI_ORDO","NOEUD_ORDO","TUNNEL") ), + + b_option =BLOC(condition = "OPTION == None" , + regles=(UN_PARMI('TOUT_GROUP_MA','GROUP_MA','GROUP_NO','NOEUD', + 'INTERSEC','UNION','DIFFE'),), + TOUT_GROUP_MA =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + INTERSEC =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + UNION =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + DIFFE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + + b_nom_group_ma =BLOC(condition = "GROUP_MA != None", + NOM = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + CRIT_NOEUD = SIMP(statut='f',typ='TXM',defaut="TOUS", + into=("TOUS","SOMMET","MILIEU","CENTRE"),), + ), + b_group_no =BLOC(condition = "GROUP_NO != None", + regles=(EXCLUS('POSITION','NUME_INIT'),), + NUME_INIT =SIMP(statut='f',typ='I'), + POSITION =SIMP(statut='f',typ='TXM',into=("INIT","FIN","MILIEU") ), + b_nume_init =BLOC(condition = "NUME_INIT != None", + NUME_FIN =SIMP(statut='f',typ='I' ), + ), + ), + b_nom =BLOC(condition = "GROUP_MA == None and TOUT_GROUP_MA == None" , + NOM =SIMP(statut='o',typ=geom), + ), + ), + + b_env_sphere =BLOC(condition = "OPTION == 'ENV_SPHERE'", + regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),), + NOM =SIMP(statut='o',typ=geom), + POINT =SIMP(statut='f',typ='R' ,max=3), + NOEUD_CENTRE =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=1), + GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1), + RAYON =SIMP(statut='o',typ='R' ), + PRECISION =SIMP(statut='o',typ='R' ), + ), + b_env_cylindre =BLOC(condition = "OPTION == 'ENV_CYLINDRE'", + regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'), + UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), + NOM =SIMP(statut='o',typ=geom), + POINT =SIMP(statut='f',typ='R' ,max=3), + NOEUD_CENTRE =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=1), + GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1), + RAYON =SIMP(statut='o',typ='R' ), + ANGL_NAUT =SIMP(statut='f',typ='R',max=3), + VECT_NORMALE =SIMP(statut='f',typ='R',max=3), + PRECISION =SIMP(statut='o',typ='R' ), + ), + b_env_plan =BLOC(condition = "OPTION == 'PLAN'", + regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'), + UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), + NOM =SIMP(statut='o',typ=geom), + POINT =SIMP(statut='f',typ='R' ,max=3), + NOEUD_CENTRE =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=1), + GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1), + ANGL_NAUT =SIMP(statut='f',typ='R' ,max=3), + VECT_NORMALE =SIMP(statut='f',typ='R' ,max=3), + PRECISION =SIMP(statut='o',typ='R' ), + ), + b_segm_droi_ordo=BLOC(condition = "OPTION == 'SEGM_DROI_ORDO'", + regles=(AU_MOINS_UN('NOEUD','GROUP_NO'), + UN_PARMI('NOEUD_ORIG','GROUP_NO_ORIG'), + UN_PARMI('NOEUD_EXTR','GROUP_NO_EXTR'),), + NOM =SIMP(statut='o',typ=geom), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_ORIG =SIMP(statut='f',typ=no), + GROUP_NO_ORIG =SIMP(statut='f',typ=grno), + NOEUD_EXTR =SIMP(statut='f',typ=no), + GROUP_NO_EXTR =SIMP(statut='f',typ=grno), + PRECISION =SIMP(statut='o',typ='R' ), + CRITERE =SIMP(statut='o',typ='TXM',into=("ABSOLU","RELATIF") ), + ), + b_noeud_ordo =BLOC(condition = "OPTION == 'NOEUD_ORDO'", + regles=(EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'), + EXCLUS('NOEUD_EXTR','GROUP_NO_EXTR'),), + NOM =SIMP(statut='o',typ=geom), + GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), + NOEUD_ORIG =SIMP(statut='f',typ=no), + GROUP_NO_ORIG =SIMP(statut='f',typ=grno), + NOEUD_EXTR =SIMP(statut='f',typ=no), + GROUP_NO_EXTR =SIMP(statut='f',typ=grno), + ), + b_tunnel =BLOC(condition = "OPTION == 'TUNNEL'", + regles=(AU_MOINS_UN ('TOUT','GROUP_MA','MAILLE'), + EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'), + AU_MOINS_UN ('GROUP_MA_AXE','MAILLE_AXE'),), + NOM =SIMP(statut='o',typ=geom), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA_AXE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_AXE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + NOEUD_ORIG =SIMP(statut='f',typ=no), + GROUP_NO_ORIG =SIMP(statut='f',typ=grno), + RAYON =SIMP(statut='o',typ='R'), + LONGUEUR =SIMP(statut='f',typ='R'), + ), + ), + ALARME =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + INFO =SIMP(statut='f',typ='I',into=( 1 , 2 ) ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +DEFI_INTE_SPEC=OPER(nom="DEFI_INTE_SPEC",op= 115,sd_prod=tabl_intsp, + reentrant='n', + UIinfo={"groupes":("Fonction",)}, + + DIMENSION =SIMP(statut='f',typ='I',defaut= 1 ), + + PAR_FONCTION =FACT(statut='f',max='**', + NUME_ORDRE_I =SIMP(statut='o',typ='I' ), + NUME_ORDRE_J =SIMP(statut='o',typ='I' ), + FONCTION =SIMP(statut='o',typ=fonction_c ), + ), + KANAI_TAJIMI =FACT(statut='f',max='**', + regles=(EXCLUS('VALE_R','VALE_C'),), + NUME_ORDRE_I =SIMP(statut='o',typ='I' ), + NUME_ORDRE_J =SIMP(statut='o',typ='I' ), + FREQ_MIN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + FREQ_MAX =SIMP(statut='f',typ='R',defaut= 100. ), + PAS =SIMP(statut='f',typ='R',defaut= 1. ), + AMOR_REDUIT =SIMP(statut='f',typ='R',defaut= 0.6 ), + FREQ_MOY =SIMP(statut='f',typ='R',defaut= 5. ), + VALE_R =SIMP(statut='f',typ='R' ), + VALE_C =SIMP(statut='f',typ='C' ), + INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), + PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), + PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), + ), + CONSTANT =FACT(statut='f',max='**', + regles=(EXCLUS('VALE_R','VALE_C'),), + NUME_ORDRE_I =SIMP(statut='o',typ='I' ), + NUME_ORDRE_J =SIMP(statut='o',typ='I' ), + FREQ_MIN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + FREQ_MAX =SIMP(statut='f',typ='R',defaut= 100. ), + PAS =SIMP(statut='f',typ='R',defaut= 1. ), + VALE_R =SIMP(statut='f',typ='R' ), + VALE_C =SIMP(statut='f',typ='C' ), + INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), + PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), + PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +DEFI_INTERF_DYNA=OPER(nom="DEFI_INTERF_DYNA",op= 98,sd_prod=interf_dyna_clas, + reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + NUME_DDL =SIMP(statut='o',typ=nume_ddl_sdaster ), + INTERFACE =FACT(statut='o',max='**', + regles=(ENSEMBLE('NOM','TYPE'), +# erreur doc U sur la condition qui suit + UN_PARMI('NOEUD','GROUP_NO'),), + NOM =SIMP(statut='f',typ='TXM' ), + TYPE =SIMP(statut='f',typ='TXM',into=("MNEAL","CRAIGB","CB_HARMO","AUCUN") ), + NOEUD =SIMP(statut='f',typ=no,max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,max='**'), + DDL_ACTIF =SIMP(statut='f',typ='TXM',max='**'), + MASQUE =SIMP(statut='f',typ='TXM',max='**'), + ), + FREQ =SIMP(statut='f',typ='R',defaut= 1.), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE VABHHTS J.PELLET +DEFI_LIST_ENTI=OPER(nom="DEFI_LIST_ENTI",op=22,sd_prod=listis_sdaster, + fr="Définition d une suite croissante d entiers", + reentrant='n', + UIinfo={"groupes":("Fonction",)}, + regles=(UN_PARMI('VALE','DEBUT'), + EXCLUS('VALE','INTERVALLE'),), + VALE =SIMP(statut='f',typ='I',max='**'), + DEBUT =SIMP(statut='f',typ='I'), + INTERVALLE =FACT(statut='f',max='**', + regles=(UN_PARMI('NOMBRE','PAS'),), + JUSQU_A =SIMP(statut='o',typ='I'), + NOMBRE =SIMP(statut='f',typ='I',val_min=1,), + PAS =SIMP(statut='f',typ='I',val_min=1,), + ), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE VABHHTS J.PELLET +DEFI_LIST_REEL=OPER(nom="DEFI_LIST_REEL",op=24,sd_prod=listr8_sdaster, + fr="Définition d une suite croissante de réels", + reentrant='n', + UIinfo={"groupes":("Fonction",)}, + regles=(UN_PARMI('VALE','DEBUT',), + EXCLUS('VALE','INTERVALLE'), + ENSEMBLE('DEBUT','INTERVALLE')), + VALE =SIMP(statut='f',typ='R',max='**'), + DEBUT =SIMP(statut='f',typ='R'), + INTERVALLE =FACT(statut='f',max='**', + regles=(UN_PARMI('NOMBRE','PAS'),), + JUSQU_A =SIMP(statut='o',typ='R'), + NOMBRE =SIMP(statut='f',typ='I'), + PAS =SIMP(statut='f',typ='R'), + ), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE VABHHTS J.PELLET +DEFI_MAILLAGE=OPER(nom="DEFI_MAILLAGE",op= 88,sd_prod=maillage_sdaster, + fr="Définition d un nouveau maillage à partir de macro éléments", + reentrant='n', + UIinfo={"groupes":("Maillage",)}, + DEFI_MAILLE =FACT(statut='o',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',max='**', + regles=(UN_PARMI('TOUT','MAILLE'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + MAILLE =SIMP(statut='f',typ=ma,max='**'), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + ), + RECO_MAILLE =FACT(statut='f',max='**', + MAILLE =SIMP(statut='o',typ=ma,max='**'), + GROUP_NO =SIMP(statut='o',typ=grno,max='**'), + OPTION =SIMP(statut='f',typ='TXM',defaut="GEOMETRIQUE",into=("GEOMETRIQUE","NOEUD_A_NOEUD","INVERSE") ), + geometrique =BLOC(condition = "OPTION == 'GEOMETRIQUE'", + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + ), + ), + DEFI_NOEUD =FACT(statut='f',max='**', + regles=(UN_PARMI('TOUT','NOEUD_INIT'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",), + fr="Renommage de tous les noeuds" ), + NOEUD_INIT =SIMP(statut='f',typ=no, + fr="Renommage d un seul noeud"), + b_tout =BLOC(condition = "TOUT != None", + PREFIXE =SIMP(statut='f',typ='TXM' ), + INDEX =SIMP(statut='o',typ='I',max='**'), + ), + b_noeud_init =BLOC(condition = "NOEUD_INIT != None", + MAILLE =SIMP(statut='o',typ=ma), + NOEUD_FIN =SIMP(statut='o',typ=no), + ), + ), + DEFI_GROUP_NO =FACT(statut='f',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 22/11/2004 AUTEUR NDOMING N.DOMINGUEZ +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, + fr="Définition des paramètres décrivant le comportement d un matériau", + reentrant='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','VISC_IRRA_LOG', + 'LEMA_SEUIL','LEMA_SEUIL_FO'), + 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('BARCELONE','CAM_CLAY','ELAS'), + PRESENT_PRESENT('CAM_CLAY','ELAS'), + PRESENT_PRESENT('LAIGLE','ELAS'), + PRESENT_PRESENT('DRUCK_PRAGER','ELAS'), + EXCLUS('MAZARS','MAZARS_FO'), + PRESENT_PRESENT('BAZANT_FD','ELAS_FO'), + EXCLUS('GLRC','GLRC_FO'), + PRESENT_PRESENT('JOINT_BA','ELAS'), + ), +# +# comportement élastique +# + ELAS =FACT(statut='f', + E =SIMP(statut='o',typ='R',val_min=0.E+0), + NU =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=0.5E+0), + RHO =SIMP(statut='f',typ='R'), + ALPHA =SIMP(statut='f',typ='R'), + AMOR_ALPHA =SIMP(statut='f',typ='R'), + AMOR_BETA =SIMP(statut='f',typ='R'), + AMOR_HYST =SIMP(statut='f',typ='R'), + ), + ELAS_FO =FACT(statut='f', + regles=(PRESENT_PRESENT('ALPHA','TEMP_DEF_ALPHA'),), + E =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + NU =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + RHO =SIMP(statut='f',typ='R'), + TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.), + ALPHA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + AMOR_ALPHA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + AMOR_BETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + AMOR_HYST =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + K_DESSIC =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + B_ENDOGE =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + FONC_DESORP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST","HYDR","SECH",) ), + ), + ELAS_FLUI =FACT(statut='f', + E =SIMP(statut='o',typ='R'), + NU =SIMP(statut='o',typ='R'), + RHO =SIMP(statut='o',typ='R'), + PROF_RHO_F_INT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + PROF_RHO_F_EXT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + COEF_MASS_AJOU =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("ABSC",) ), + ), + ELAS_ISTR =FACT(statut='f', + E_L =SIMP(statut='o',typ='R'), + E_N =SIMP(statut='o',typ='R'), + NU_LT =SIMP(statut='o',typ='R'), + NU_LN =SIMP(statut='o',typ='R'), + G_LN =SIMP(statut='o',typ='R'), + RHO =SIMP(statut='f',typ='R'), + ALPHA_L =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ALPHA_N =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ), + ELAS_ISTR_FO =FACT(statut='f', + regles=( + PRESENT_PRESENT('ALPHA_L','TEMP_DEF_ALPHA'), + PRESENT_PRESENT('ALPHA_N','TEMP_DEF_ALPHA'), + ), + E_L =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + E_N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + NU_LT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + NU_LN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + G_LN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + RHO =SIMP(statut='f',typ='R'), + TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.), + ALPHA_L =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ALPHA_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST")), + ), + ELAS_ORTH =FACT(statut='f', + E_L =SIMP(statut='o',typ='R'), + E_T =SIMP(statut='o',typ='R'), + E_N =SIMP(statut='f',typ='R'), + NU_LT =SIMP(statut='o',typ='R'), + NU_LN =SIMP(statut='f',typ='R'), + NU_TN =SIMP(statut='f',typ='R'), + G_LT =SIMP(statut='o',typ='R'), + G_LN =SIMP(statut='f',typ='R'), + G_TN =SIMP(statut='f',typ='R'), + RHO =SIMP(statut='f',typ='R'), + ALPHA_L =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ALPHA_T =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ALPHA_N =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + XT =SIMP(statut='f',typ='R',defaut= 1. ), + XC =SIMP(statut='f',typ='R',defaut= 1. ), + YT =SIMP(statut='f',typ='R',defaut= 1. ), + YC =SIMP(statut='f',typ='R',defaut= 1. ), + S_LT =SIMP(statut='f',typ='R',defaut= 1. ), + ), + ELAS_ORTH_FO =FACT(statut='f', + regles=( + PRESENT_PRESENT('ALPHA_L','TEMP_DEF_ALPHA'), + PRESENT_PRESENT('ALPHA_N','TEMP_DEF_ALPHA'), + PRESENT_PRESENT('ALPHA_T','TEMP_DEF_ALPHA'), + ), + E_L =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + E_T =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + E_N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + NU_LT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + NU_LN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + NU_TN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + G_LT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + G_LN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + G_TN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + RHO =SIMP(statut='f',typ='R'), + TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'), + PRECISION =SIMP(statut='f',typ='R',defaut= 1. ), + ALPHA_L =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ALPHA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ALPHA_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST",) ), + ), + ELAS_THM =FACT(statut='f', + 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', + 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', + 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', + 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', + regles=(EXCLUS('MEMB_L','M_LLLL',), + PRESENT_PRESENT('MEMB_L','MEMB_LT', 'MEMB_T','MEMB_G_LT','FLEX_L','FLEX_LT', + 'FLEX_T','FLEX_G_LT','CISA_L','CISA_T',), + PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL', + 'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL', + 'MF_LLTT','MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ', + 'MC_LLTZ','MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ', + 'FC_LLTZ','FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ', + 'C_LZTZ','C_TZTZ'),), + MEMB_L =SIMP(statut='f',typ='R'), + MEMB_LT =SIMP(statut='f',typ='R'), + MEMB_T =SIMP(statut='f',typ='R'), + MEMB_G_LT =SIMP(statut='f',typ='R'), + FLEX_L =SIMP(statut='f',typ='R'), + FLEX_LT =SIMP(statut='f',typ='R'), + FLEX_T =SIMP(statut='f',typ='R'), + FLEX_G_LT =SIMP(statut='f',typ='R'), + CISA_L =SIMP(statut='f',typ='R'), + CISA_T =SIMP(statut='f',typ='R'), + M_LLLL =SIMP(statut='f',typ='R'), + M_LLTT =SIMP(statut='f',typ='R'), + M_LLLT =SIMP(statut='f',typ='R'), + M_TTTT =SIMP(statut='f',typ='R'), + M_TTLT =SIMP(statut='f',typ='R'), + M_LTLT =SIMP(statut='f',typ='R'), + F_LLLL =SIMP(statut='f',typ='R'), + F_LLTT =SIMP(statut='f',typ='R'), + F_LLLT =SIMP(statut='f',typ='R'), + F_TTTT =SIMP(statut='f',typ='R'), + F_TTLT =SIMP(statut='f',typ='R'), + F_LTLT =SIMP(statut='f',typ='R'), + MF_LLLL =SIMP(statut='f',typ='R'), + MF_LLTT =SIMP(statut='f',typ='R'), + MF_LLLT =SIMP(statut='f',typ='R'), + MF_TTTT =SIMP(statut='f',typ='R'), + MF_TTLT =SIMP(statut='f',typ='R'), + MF_LTLT =SIMP(statut='f',typ='R'), + MC_LLLZ =SIMP(statut='f',typ='R'), + MC_LLTZ =SIMP(statut='f',typ='R'), + MC_TTLZ =SIMP(statut='f',typ='R'), + MC_TTTZ =SIMP(statut='f',typ='R'), + MC_LTLZ =SIMP(statut='f',typ='R'), + MC_LTTZ =SIMP(statut='f',typ='R'), + FC_LLLZ =SIMP(statut='f',typ='R'), + FC_LLTZ =SIMP(statut='f',typ='R'), + FC_TTLZ =SIMP(statut='f',typ='R'), + FC_TTTZ =SIMP(statut='f',typ='R'), + FC_LTLZ =SIMP(statut='f',typ='R'), + FC_LTTZ =SIMP(statut='f',typ='R'), + C_LZLZ =SIMP(statut='f',typ='R'), + C_LZTZ =SIMP(statut='f',typ='R'), + C_TZTZ =SIMP(statut='f',typ='R'), + RHO =SIMP(statut='f',typ='R'), + ALPHA =SIMP(statut='f',typ='R'), + ), + ELAS_COQUE_FO =FACT(statut='f', + regles=(EXCLUS('MEMB_L','M_LLLL',), + PRESENT_PRESENT('MEMB_L','MEMB_LT','MEMB_T','MEMB_G_LT','FLEX_L','FLEX_LT', + 'FLEX_T','FLEX_G_LT','CISA_L','CISA_T',), + PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL', + 'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL','MF_LLTT', + 'MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ','MC_LLTZ', + 'MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ','FC_LLTZ', + 'FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ','C_LZTZ','C_TZTZ'),), + MEMB_L =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MEMB_LT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MEMB_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MEMB_G_LT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FLEX_L =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FLEX_LT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FLEX_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FLEX_G_LT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CISA_L =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CISA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + M_LLLL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + M_LLTT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + M_LLLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + M_TTTT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + M_TTLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + M_LTLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F_LLLL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F_LLTT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F_LLLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F_TTTT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F_TTLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F_LTLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MF_LLLL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MF_LLTT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MF_LLLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MF_TTTT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MF_TTLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MF_LTLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MC_LLLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MC_LLTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MC_TTLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MC_TTTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MC_LTLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MC_LTTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FC_LLLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FC_LLTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FC_TTLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FC_TTTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FC_LTLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FC_LTTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + C_LZLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + C_LZTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + C_TZTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + RHO =SIMP(statut='f',typ='R'), + ALPHA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST") ), + ), + APPUI_ELAS =FACT(statut='f', + E_N =SIMP(statut='o',typ='R'), + E_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0), + ), + CABLE =FACT(statut='f', + 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', + SIGM =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("EPSI","TEMP","HYDR","SECH",) ), + ), + ECRO_LINE =FACT(statut='f', + D_SIGM_EPSI =SIMP(statut='o',typ='R',), + SY =SIMP(statut='o',typ='R',), + ), + ECRO_LINE_FO =FACT(statut='f', + D_SIGM_EPSI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + SY =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + BETON_ECRO_LINE =FACT(statut='f', + D_SIGM_EPSI =SIMP(statut='o',typ='R'), + SYT =SIMP(statut='o',typ='R'), + SYC =SIMP(statut='f',typ='R'), + ), + ENDO_ORTH_BETON =FACT(statut='f', + ALPHA =SIMP(statut='f',typ='R',defaut=0.9), + K0 =SIMP(statut='o',typ='R'), + K1 =SIMP(statut='o',typ='R'), + K2 =SIMP(statut='f',typ='R',defaut=7.E-4), + ECROB =SIMP(statut='o',typ='R'), + ECROD =SIMP(statut='o',typ='R'), + ), + PRAGER =FACT(statut='f', + C =SIMP(statut='o',typ='R'), + ), + PRAGER_FO =FACT(statut='f', + C =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + ECRO_FLEJOU =FACT(statut='f', + EP =SIMP(statut='o',typ='R'), + SY =SIMP(statut='o',typ='R'), + SU =SIMP(statut='o',typ='R'), + PUISS =SIMP(statut='o',typ='R'), + ), + TAHERI =FACT(statut='f', + R_0 =SIMP(statut='o',typ='R'), + ALPHA =SIMP(statut='o',typ='R'), + M =SIMP(statut='o',typ='R'), + A =SIMP(statut='o',typ='R'), + B =SIMP(statut='o',typ='R'), + C1 =SIMP(statut='o',typ='R'), + C_INF =SIMP(statut='o',typ='R'), + S =SIMP(statut='o',typ='R'), + ), + TAHERI_FO =FACT(statut='f', + R_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + ALPHA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + A =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + B =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + C1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + C_INF =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + S =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + ROUSSELIER =FACT(statut='f', + D =SIMP(statut='o',typ='R'), + SIGM_1 =SIMP(statut='o',typ='R'), + PORO_INIT =SIMP(statut='o',typ='R'), + PORO_CRIT =SIMP(statut='f',typ='R',defaut= 1. ), + PORO_ACCE =SIMP(statut='f',typ='R',defaut= 1. ), + PORO_LIMI =SIMP(statut='f',typ='R',defaut= 0.999 ), + D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ), + AN =SIMP(statut='f',typ='R',defaut= 0. ), + ), + ROUSSELIER_FO =FACT(statut='f', + D =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + PORO_INIT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + PORO_CRIT =SIMP(statut='f',typ='R',defaut= 1. ), + PORO_ACCE =SIMP(statut='f',typ='R',defaut= 1. ), + PORO_LIMI =SIMP(statut='f',typ='R',defaut= 0.999 ), + D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ), + AN =SIMP(statut='f',typ='R',defaut= 0. ), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + VISC_SINH =FACT(statut='f', + SIGM_0 =SIMP(statut='o',typ='R'), + EPSI_0 =SIMP(statut='o',typ='R'), + M =SIMP(statut='o',typ='R'), + ), + CHABOCHE =FACT(statut='f', + 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', + R_0 =SIMP(statut='o',typ='R'), + R_I =SIMP(statut='f',typ='R'), + B =SIMP(statut='f',typ='R',defaut= 0.0E+0), + C_I =SIMP(statut='o',typ='R'), + K =SIMP(statut='f',typ='R',defaut= 1.0E+0), + W =SIMP(statut='f',typ='R',defaut= 0.0E+0), + G_0 =SIMP(statut='o',typ='R'), + A_I =SIMP(statut='f',typ='R',defaut= 1.0E+0), + ), + CIN1_CHAB_FO =FACT(statut='f', + R_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + R_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + B =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + C_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + W =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + G_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + A_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",)), + ), + CIN2_CHAB =FACT(statut='f', + R_0 =SIMP(statut='o',typ='R'), + R_I =SIMP(statut='f',typ='R'), + B =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + C1_I =SIMP(statut='o',typ='R'), + C2_I =SIMP(statut='o',typ='R'), + K =SIMP(statut='f',typ='R',defaut= 1.), + W =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + G1_0 =SIMP(statut='o',typ='R'), + G2_0 =SIMP(statut='o',typ='R'), + A_I =SIMP(statut='f',typ='R',defaut= 1.E+0 ), + ), + CIN2_CHAB_FO =FACT(statut='f', + R_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + R_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + B =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + C1_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + C2_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + W =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + G1_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + G2_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + A_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + VISCOCHAB =FACT(statut='f', + K_0 =SIMP(statut='o',typ='R'), + A_K =SIMP(statut='o',typ='R'), + A_R =SIMP(statut='o',typ='R'), + K =SIMP(statut='o',typ='R'), + N =SIMP(statut='o',typ='R'), + ALP =SIMP(statut='o',typ='R'), + B =SIMP(statut='o',typ='R'), + M_R =SIMP(statut='o',typ='R'), + G_R =SIMP(statut='o',typ='R'), + MU =SIMP(statut='o',typ='R'), + Q_M =SIMP(statut='o',typ='R'), + Q_0 =SIMP(statut='o',typ='R'), + QR_0 =SIMP(statut='o',typ='R'), + ETA =SIMP(statut='o',typ='R'), + C1 =SIMP(statut='o',typ='R'), + M_1 =SIMP(statut='o',typ='R'), + D1 =SIMP(statut='o',typ='R'), + G_X1 =SIMP(statut='o',typ='R'), + G1_0 =SIMP(statut='o',typ='R'), + C2 =SIMP(statut='o',typ='R'), + M_2 =SIMP(statut='o',typ='R'), + D2 =SIMP(statut='o',typ='R'), + G_X2 =SIMP(statut='o',typ='R'), + G2_0 =SIMP(statut='o',typ='R'), + A_I =SIMP(statut='o',typ='R'), + ), + VISCOCHAB_FO =FACT(statut='f', + K_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + A_K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + A_R =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + ALP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + B =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + M_R =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + G_R =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + MU =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + Q_M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + Q_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + QR_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + ETA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + C1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + M_1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + G_X1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + G1_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + C2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + M_2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + G_X2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + G2_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + A_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + POLY_CFC =FACT(statut='f', + 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', + TEXTURE =SIMP(statut='o',typ=(tabl_texture) ), + DL =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + DA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + TAU_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + Q1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + B1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + HL =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + Q2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + B2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + C1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + C2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + LEMAITRE =FACT(statut='f', + N =SIMP(statut='o',typ='R'), + UN_SUR_K =SIMP(statut='o',typ='R'), + UN_SUR_M =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ), + ZIRC_CYRA2 =FACT(statut='f', + EPSI_FAB =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + TEMP_RECUIT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + FLUX_PHI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("INST",) ), + ), + VISC_IRRA_LOG =FACT(statut='f', + A =SIMP(statut='f',typ='R',defaut= 1.28E-1), + B =SIMP(statut='f',typ='R',defaut= 0.01159), + CSTE_TPS =SIMP(statut='f',typ='R',defaut= 0.3540), + ENER_ACT =SIMP(statut='f',typ='R',defaut= 5000.), + FLUX_PHI =SIMP(statut='o',typ='R',), + ), + LEMA_SEUIL =FACT(statut='f', + A =SIMP(statut='o',typ='R',), + S =SIMP(statut='o',typ='R',), + ), + LEMA_SEUIL_FO=FACT(statut='f', + A =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + S =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + ZIRC_EPRI =FACT(statut='f', + FLUX_PHI =SIMP(statut='o',typ='R'), + R_P =SIMP(statut='o',typ='R'), + THETA_MAX =SIMP(statut='o',typ='R'), + ), + LEMAITRE_FO =FACT(statut='f', + N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + UN_SUR_K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + UN_SUR_M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + GRAN_IRRA =FACT(statut='f', + 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', + 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', + 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', + R_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + R_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + B =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + PHI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + A1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + A2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + A3 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + A4 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + A5 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + GAMMA1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + GAMMA2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + GAMMA3 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + GAMMA4 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + GAMMA5 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + M1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + M2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + M3 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + M4 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + M5 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + LMARC =FACT(statut='f', + DE_0 =SIMP(statut='o',typ='R'), + R_0 =SIMP(statut='o',typ='R'), + N =SIMP(statut='o',typ='R'), + K =SIMP(statut='o',typ='R'), + Y_I =SIMP(statut='o',typ='R'), + Y_0 =SIMP(statut='o',typ='R'), + B =SIMP(statut='o',typ='R'), + A_0 =SIMP(statut='o',typ='R'), + RM =SIMP(statut='o',typ='R'), + M =SIMP(statut='o',typ='R'), + P =SIMP(statut='o',typ='R'), + P1 =SIMP(statut='o',typ='R'), + P2 =SIMP(statut='o',typ='R'), + M11 =SIMP(statut='o',typ='R'), + M22 =SIMP(statut='o',typ='R'), + M33 =SIMP(statut='o',typ='R'), + M66 =SIMP(statut='o',typ='R'), + N11 =SIMP(statut='o',typ='R'), + N22 =SIMP(statut='o',typ='R'), + N33 =SIMP(statut='o',typ='R'), + N66 =SIMP(statut='o',typ='R'), + Q11 =SIMP(statut='o',typ='R'), + Q22 =SIMP(statut='o',typ='R'), + Q33 =SIMP(statut='o',typ='R'), + Q66 =SIMP(statut='o',typ='R'), + R11 =SIMP(statut='o',typ='R'), + R22 =SIMP(statut='o',typ='R'), + R33 =SIMP(statut='o',typ='R'), + R66 =SIMP(statut='o',typ='R'), + ), + LMARC_FO =FACT(statut='f', + DE_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + R_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + Y_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + Y_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + B =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + A_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + RM =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + P =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + P1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + P2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + M11 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + M22 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + M33 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + M66 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + N11 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + N22 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + N33 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + N66 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + Q11 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + Q22 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + Q33 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + Q66 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + R11 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + R22 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + R33 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + R66 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + VMIS_POUTRE =FACT(statut='f', + NP =SIMP(statut='o',typ='R'), + MEY =SIMP(statut='o',typ='R'), + MPY =SIMP(statut='o',typ='R'), + CAY =SIMP(statut='o',typ='R'), + CBY =SIMP(statut='o',typ='R'), + MEZ =SIMP(statut='o',typ='R'), + MPZ =SIMP(statut='o',typ='R'), + CAZ =SIMP(statut='o',typ='R'), + CBZ =SIMP(statut='o',typ='R'), + MPX =SIMP(statut='o',typ='R'), + ), + VMIS_POUTRE_FO =FACT(statut='f', + NP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + MEY =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + MPY =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + CAY =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + CBY =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + MEZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + MPZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + CAZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + CBZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + MPX =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + ARME =FACT(statut='f', + KYE =SIMP(statut='o',typ='R'), + DLE =SIMP(statut='o',typ='R'), + KYP =SIMP(statut='o',typ='R'), + DLP =SIMP(statut='o',typ='R'), + KYG =SIMP(statut='o',typ='R'), + ), + ASSE_CORN =FACT(statut='f', + NU_1 =SIMP(statut='o',typ='R'), + MU_1 =SIMP(statut='o',typ='R'), + DXU_1 =SIMP(statut='o',typ='R'), + DRYU_1 =SIMP(statut='o',typ='R'), + C_1 =SIMP(statut='o',typ='R'), + NU_2 =SIMP(statut='o',typ='R'), + MU_2 =SIMP(statut='o',typ='R'), + DXU_2 =SIMP(statut='o',typ='R'), + DRYU_2 =SIMP(statut='o',typ='R'), + C_2 =SIMP(statut='o',typ='R'), + KY =SIMP(statut='o',typ='R'), + KZ =SIMP(statut='o',typ='R'), + KRX =SIMP(statut='o',typ='R'), + KRZ =SIMP(statut='o',typ='R'), + ), + DIS_CONTACT =FACT(statut='f', + RIGI_NOR =SIMP(statut='f',typ='R' ), + DIST_1 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + DIST_2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + RIGI_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + AMOR_NOR =SIMP(statut='f',typ='R' ), + AMOR_TAN =SIMP(statut='f',typ='R' ), + COULOMB =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + JEU =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + KT_ULTM =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + EFFO_N_INIT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + regles=(EXCLUS('RIGI_N_FO','RIGI_N_IRRA',), + EXCLUS('RELA_MZ','ANGLE_1'), + PRESENT_PRESENT('ANGLE_1','ANGLE_2','ANGLE_3','ANGLE_4', + 'MOMENT_1','MOMENT_2','MOMENT_3','MOMENT_4'),), + RIGI_N_IRRA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + RIGI_N_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + RELA_MZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ANGLE_1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ANGLE_2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ANGLE_3 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ANGLE_4 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MOMENT_1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MOMENT_2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MOMENT_3 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MOMENT_4 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + C_PRAGER_MZ =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("DRZ","INST","TEMP",) ), + ), + NADAI_B =FACT(statut='f', + F_C =SIMP(statut='o',typ='R'), + F_T =SIMP(statut='o',typ='R'), + CRIT_E_C =SIMP(statut='o',typ='R'), + EPSP_P_C =SIMP(statut='o',typ='R'), + EPSP_R_C =SIMP(statut='o',typ='R'), + EPSI_R_T =SIMP(statut='o',typ='R'), + FAC_T_C =SIMP(statut='o',typ='R'), + ), + BETON_DOUBLE_DP =FACT(statut='f', + F_C =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + F_T =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + COEF_BIAX =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + ENER_COMP_RUPT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + ENER_TRAC_RUPT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + COEF_ELAS_COMP =SIMP(statut='o',typ='R'), + LONG_CARA =SIMP(statut='f',typ='R'), + ECRO_COMP_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","PARABOLE") ), + ECRO_TRAC_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","EXPONENT") ), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST","HYDR","SECH",) ), + ), + LABORD_1D=FACT(statut='f',min=0 , + Y01 =SIMP(statut='o',typ='R'), + Y02 =SIMP(statut='o',typ='R'), + A1 =SIMP(statut='o',typ='R'), + A2 =SIMP(statut='o',typ='R'), + B1 =SIMP(statut='o',typ='R'), + B2 =SIMP(statut='o',typ='R'), + BETA1 =SIMP(statut='o',typ='R'), + BETA2 =SIMP(statut='o',typ='R'), + SIGF =SIMP(statut='o',typ='R'), + ), + MAZARS=FACT(statut='f',min=0 , + EPSD0 =SIMP(statut='o',typ='R'), + BETA =SIMP(statut='o',typ='R'), + AC =SIMP(statut='o',typ='R'), + BC =SIMP(statut='o',typ='R'), + AT =SIMP(statut='o',typ='R'), + BT =SIMP(statut='o',typ='R'), + ), + MAZARS_FO=FACT(statut='f',min=0 , + EPSD0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + BETA =SIMP(statut='o',typ='R'), + AC =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + BC =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + AT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + BT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","SECH","HYDR") ), + ), + JOINT_BA=FACT(statut='f',min=0 ,max=1, + HPEN =SIMP(statut='o',typ='R',defaut= 1.E+0,val_min=0.E+0), + GTT =SIMP(statut='o',typ='R',val_min=0.E+0), + GAMD0 =SIMP(statut='o',typ='R',val_min=1.E-4,val_max=1.E-1), + AD1 =SIMP(statut='o',typ='R',val_min=0.E+0), + BD1 =SIMP(statut='o',typ='R',defaut= 5.E-1,val_min=1.E-1), + GAMD2 =SIMP(statut='o',typ='R',val_min=1.E-4,val_max=1.E+0), + AD2 =SIMP(statut='o',typ='R',val_min=0.E+0), + BD2 =SIMP(statut='o',typ='R',defaut= 1.E+0,val_min=1.E-1), + VIFROT =SIMP(statut='o',typ='R',val_min=0.E+0), + FA =SIMP(statut='o',typ='R',val_min=0.E+0), + FC =SIMP(statut='o',typ='R',val_min=0.E+0), + EPSTR0 =SIMP(statut='o',typ='R',val_min=1.E-4,val_max=1.E+0), + ADN =SIMP(statut='o',typ='R',val_min=0.E+0), + BDN =SIMP(statut='o',typ='R',defaut= 1.E+0,val_min=1.E-1), + ), + VENDOCHAB =FACT(statut='f', + S_VP =SIMP(statut='o',typ='R'), + SEDVP1 =SIMP(statut='o',typ='R'), + SEDVP2 =SIMP(statut='o',typ='R'), + N_VP =SIMP(statut='o',typ='R'), + M_VP =SIMP(statut='o',typ='R'), + K_VP =SIMP(statut='o',typ='R'), + R_D =SIMP(statut='o',typ='R'), + A_D =SIMP(statut='o',typ='R'), + K_D =SIMP(statut='o',typ='R'), + ), + VENDOCHAB_FO =FACT(statut='f', + S_VP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + SEDVP1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + SEDVP2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + N_VP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + M_VP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + K_VP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + R_D =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + A_D =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + K_D =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","X",) ), + ), + PINTO_MENEGOTTO =FACT(statut='f', + SY =SIMP(statut='o',typ='R'), + EPSI_ULTM =SIMP(statut='o',typ='R'), + SIGM_ULTM =SIMP(statut='o',typ='R'), + ELAN =SIMP(statut='f',typ='R',defaut= 4. ), + EPSP_HARD =SIMP(statut='o',typ='R'), + R_PM =SIMP(statut='f',typ='R',defaut= 20. ), + EP_SUR_E =SIMP(statut='f',typ='R'), + A1_PM =SIMP(statut='f',typ='R',defaut= 18.5 ), + A2_PM =SIMP(statut='f',typ='R',defaut= 0.15 ), + A6_PM =SIMP(statut='f',typ='R',defaut= 620. ), + C_PM =SIMP(statut='f',typ='R',defaut= 0.5 ), + A_PM =SIMP(statut='f',typ='R',defaut= 6.0E-3 ), + ), + BPEL_BETON =FACT(statut='f', + PERT_FLUA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + PERT_RETR =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ), + BPEL_ACIER =FACT(statut='f', + regles=(PRESENT_PRESENT('RELAX_1000','F_PRG',), + PRESENT_PRESENT('MU0_RELAX','F_PRG',),), + RELAX_1000 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + MU0_RELAX =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + F_PRG =SIMP(statut='f',typ='R'), + FROT_COURB =SIMP(statut='f',typ='R',defaut=0.E+0), + FROT_LINE =SIMP(statut='f',typ='R',defaut=0.E+0), + ), + CAM_CLAY =FACT(statut='f', + PORO =SIMP(statut='o',typ='R'), + LAMBDA =SIMP(statut='o',typ='R'), + KAPA =SIMP(statut='o',typ='R'), + M =SIMP(statut='o',typ='R'), + PRES_CRIT =SIMP(statut='o',typ='R'), + PA =SIMP(statut='o',typ='R'), + ), + BARCELONE =FACT(statut='f', + R =SIMP(statut='o',typ='R'), + BETA =SIMP(statut='o',typ='R'), + KC =SIMP(statut='o',typ='R'), + PC0_INIT =SIMP(statut='o',typ='R'), + KAPAS =SIMP(statut='o',typ='R'), + LAMBDAS =SIMP(statut='o',typ='R'), + ALPHAB =SIMP(statut='f',typ='R'), + ), + CJS =FACT(statut='f', + BETA_CJS =SIMP(statut='o',typ='R'), + RM =SIMP(statut='o',typ='R'), + N_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + KP =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + RC =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + A_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + B_CJS =SIMP(statut='f',typ='R',defaut= 1.0E+25 ), + C_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + GAMMA_CJS =SIMP(statut='o',typ='R'), + MU_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + PCO =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + PA =SIMP(statut='o',typ='R'), + Q_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + R_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ), + ECRO_ASYM_LINE =FACT(statut='f', + DC_SIGM_EPSI =SIMP(statut='o',typ='R'), + SY_C =SIMP(statut='o',typ='R'), + DT_SIGM_EPSI =SIMP(statut='o',typ='R'), + SY_T =SIMP(statut='o',typ='R'), + ), + GRANGER_FP =FACT(statut='f', + J1 =SIMP(statut='f',typ='R'), + J2 =SIMP(statut='f',typ='R'), + J3 =SIMP(statut='f',typ='R'), + J4 =SIMP(statut='f',typ='R'), + J5 =SIMP(statut='f',typ='R'), + J6 =SIMP(statut='f',typ='R'), + J7 =SIMP(statut='f',typ='R'), + J8 =SIMP(statut='f',typ='R'), + TAUX_1 =SIMP(statut='f',typ='R'), + TAUX_2 =SIMP(statut='f',typ='R'), + TAUX_3 =SIMP(statut='f',typ='R'), + TAUX_4 =SIMP(statut='f',typ='R'), + TAUX_5 =SIMP(statut='f',typ='R'), + TAUX_6 =SIMP(statut='f',typ='R'), + TAUX_7 =SIMP(statut='f',typ='R'), + TAUX_8 =SIMP(statut='f',typ='R'), + QSR_K =SIMP(statut='f',typ='R'), + ), + GRANGER_FP_INDT =FACT(statut='f', + J1 =SIMP(statut='f',typ='R'), + J2 =SIMP(statut='f',typ='R'), + J3 =SIMP(statut='f',typ='R'), + J4 =SIMP(statut='f',typ='R'), + J5 =SIMP(statut='f',typ='R'), + J6 =SIMP(statut='f',typ='R'), + J7 =SIMP(statut='f',typ='R'), + J8 =SIMP(statut='f',typ='R'), + TAUX_1 =SIMP(statut='f',typ='R'), + TAUX_2 =SIMP(statut='f',typ='R'), + TAUX_3 =SIMP(statut='f',typ='R'), + TAUX_4 =SIMP(statut='f',typ='R'), + TAUX_5 =SIMP(statut='f',typ='R'), + TAUX_6 =SIMP(statut='f',typ='R'), + TAUX_7 =SIMP(statut='f',typ='R'), + TAUX_8 =SIMP(statut='f',typ='R'), + ), + V_GRANGER_FP =FACT(statut='f', + QSR_VEIL =SIMP(statut='f',typ='R'), + FONC_V =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("INST",) ), + ), + BAZANT_FD =FACT(statut='f', + LAM_VISC =SIMP(statut='o',typ='R'), + ), + BETON_UMLV_FP =FACT(statut='f',min=0 , + K_RS =SIMP(statut='o',typ='R'), + ETA_RS =SIMP(statut='o',typ='R'), + K_IS =SIMP(statut='o',typ='R'), + ETA_IS =SIMP(statut='o',typ='R'), + K_RD =SIMP(statut='o',typ='R'), + ETA_RD =SIMP(statut='o',typ='R'), + ETA_ID =SIMP(statut='o',typ='R'), + ETA_FD =SIMP(statut='f',typ='R'), + ), + GLRC =FACT(statut='f',min=0,max=1, + MEX1 =SIMP(statut='o',typ='R',val_min=0.E+0), + MEY1 =SIMP(statut='o',typ='R',val_min=0.E+0), + MEX2 =SIMP(statut='o',typ='R',val_max=0.E+0), + MEY2 =SIMP(statut='o',typ='R',val_max=0.E+0), + CX1 =SIMP(statut='o',typ='R',val_min=0.E+0), + CY1 =SIMP(statut='o',typ='R',val_min=0.E+0), + CXY1 =SIMP(statut='o',typ='R',val_min=0.E+0), + CX2 =SIMP(statut='o',typ='R',val_min=0.E+0), + CY2 =SIMP(statut='o',typ='R',val_min=0.E+0), + CXY2 =SIMP(statut='o',typ='R',val_min=0.E+0), + ), + GLRC_FO =FACT(statut='f',min=0,max=1, + MEX1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + MEY1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + MEX2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + MEY2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + CX1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + CY1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + CXY1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + CX2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + CY2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + CXY2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("NORM",) ), + ), + CORR_ACIER =FACT(statut='f',min=0 ,max=1, + D_CORR =SIMP(statut='o',typ='R'), + ECRO_K =SIMP(statut='o',typ='R'), + ECRO_M =SIMP(statut='o',typ='R'), + SY =SIMP(statut='o',typ='R'), + ), +# +# comportement thermique +# + THER_NL =FACT(statut='f', + regles=(UN_PARMI('BETA','RHO_CP', ),), + LAMBDA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + BETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + RHO_CP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + THER_HYDR =FACT(statut='f', + LAMBDA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + BETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + AFFINITE =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + CHALHYDR =SIMP(statut='o',typ='R'), + QSR_K =SIMP(statut='o',typ='R'), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("HYDR","TEMP",) ), + ), + THER =FACT(statut='f', + LAMBDA =SIMP(statut='o',typ='R'), + RHO_CP =SIMP(statut='f',typ='R'), + ), + THER_FO =FACT(statut='f', + LAMBDA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + RHO_CP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("INST",) ), + ), + THER_ORTH =FACT(statut='f', + LAMBDA_L =SIMP(statut='o',typ='R'), + LAMBDA_T =SIMP(statut='o',typ='R'), + LAMBDA_N =SIMP(statut='f',typ='R'), + RHO_CP =SIMP(statut='f',typ='R'), + ), + THER_COQUE =FACT(statut='f', + COND_LMM =SIMP(statut='o',typ='R'), + COND_TMM =SIMP(statut='o',typ='R'), + COND_LMP =SIMP(statut='o',typ='R'), + COND_TMP =SIMP(statut='o',typ='R'), + COND_LPP =SIMP(statut='o',typ='R'), + COND_TPP =SIMP(statut='o',typ='R'), + COND_LSI =SIMP(statut='o',typ='R'), + COND_TSI =SIMP(statut='o',typ='R'), + COND_NMM =SIMP(statut='o',typ='R'), + COND_NMP =SIMP(statut='o',typ='R'), + COND_NPP =SIMP(statut='o',typ='R'), + COND_NSI =SIMP(statut='o',typ='R'), + CMAS_MM =SIMP(statut='f',typ='R'), + CMAS_MP =SIMP(statut='f',typ='R'), + CMAS_PP =SIMP(statut='f',typ='R'), + CMAS_SI =SIMP(statut='f',typ='R'), + ), + THER_COQUE_FO =FACT(statut='f', + COND_LMM =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + COND_TMM =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + COND_LMP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + COND_TMP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + COND_LPP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + COND_TPP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + COND_LSI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + COND_TSI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + COND_NMM =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + COND_NMP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + COND_NPP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + COND_NSI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + CMAS_MM =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CMAS_MP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CMAS_PP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CMAS_SI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ), + SECH_GRANGER =FACT(statut='f', + A =SIMP(statut='o',typ='R'), + B =SIMP(statut='o',typ='R'), + QSR_K =SIMP(statut='o',typ='R'), + TEMP_0_C =SIMP(statut='o',typ='R'), + ), + SECH_MENSI =FACT(statut='f', + A =SIMP(statut='o',typ='R'), + B =SIMP(statut='o',typ='R'), + ), + SECH_BAZANT =FACT(statut='f', + D1 =SIMP(statut='o',typ='R'), + ALPHA_BAZANT =SIMP(statut='o',typ='R'), + N =SIMP(statut='o',typ='R'), + FONC_DESORP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + SECH_NAPPE =FACT(statut='f', + FONCTION =SIMP(statut='o',typ=(nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","TSEC",) ), + ), +# +# comportement métallurgique +# + META_ACIER =FACT(statut='f', + TRC =SIMP(statut='o',typ=(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', + TDEQ =SIMP(statut='o',typ='R'), + N =SIMP(statut='o',typ='R'), + K =SIMP(statut='o',typ='R'), + TDC =SIMP(statut='o',typ='R'), + AC =SIMP(statut='o',typ='R'), + M =SIMP(statut='o',typ='R'), + QSR_K =SIMP(statut='f',typ='R'), + TDR =SIMP(statut='o',typ='R'), + AR =SIMP(statut='o',typ='R'), + BR =SIMP(statut='o',typ='R'), + ), + DURT_META =FACT(statut='f', + F1_DURT =SIMP(statut='o',typ='R'), + F2_DURT =SIMP(statut='o',typ='R'), + F3_DURT =SIMP(statut='o',typ='R'), + F4_DURT =SIMP(statut='o',typ='R'), + C_DURT =SIMP(statut='o',typ='R'), + ), + ELAS_META =FACT(statut='f', + E =SIMP(statut='o',typ='R'), + NU =SIMP(statut='o',typ='R'), + F_ALPHA =SIMP(statut='o',typ='R'), + C_ALPHA =SIMP(statut='o',typ='R'), + PHASE_REFE =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")), + EPSF_EPSC_TREF =SIMP(statut='o',typ='R'), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E+0), + F1_SY =SIMP(statut='f',typ='R'), + F2_SY =SIMP(statut='f',typ='R'), + F3_SY =SIMP(statut='f',typ='R'), + F4_SY =SIMP(statut='f',typ='R'), + C_SY =SIMP(statut='f',typ='R'), + SY_MELANGE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F1_S_VP =SIMP(statut='f',typ='R'), + F2_S_VP =SIMP(statut='f',typ='R'), + F3_S_VP =SIMP(statut='f',typ='R'), + F4_S_VP =SIMP(statut='f',typ='R'), + C_S_VP =SIMP(statut='f',typ='R' ), + S_VP_MELANGE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("META",)), + ), + ELAS_META_FO =FACT(statut='f', + regles=( + PRESENT_PRESENT('F_ALPHA','TEMP_DEF_ALPHA'), + PRESENT_PRESENT('C_ALPHA','TEMP_DEF_ALPHA'), + ), + E =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + NU =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + F_ALPHA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + C_ALPHA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + PHASE_REFE =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")), + EPSF_EPSC_TREF =SIMP(statut='o',typ='R'), + TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E+0), + F1_SY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F2_SY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F3_SY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F4_SY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + C_SY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + SY_MELANGE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F1_S_VP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F2_S_VP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F3_S_VP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F4_S_VP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + C_S_VP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + S_VP_MELANGE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","META",)), + ), + META_ECRO_LINE =FACT(statut='f', + F1_D_SIGM_EPSI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F2_D_SIGM_EPSI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F3_D_SIGM_EPSI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F4_D_SIGM_EPSI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + C_D_SIGM_EPSI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",)), + ), + META_TRACTION =FACT(statut='f', + SIGM_F1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_F2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_F3 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_F4 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("EPSI","TEMP",)), + ), + META_VISC_FO =FACT(statut='f', + F1_ETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F1_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F1_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F1_M =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F2_ETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F2_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F2_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F2_M =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F3_ETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F3_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F3_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F3_M =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F4_ETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F4_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F4_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F4_M =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + C_ETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + C_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + C_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + C_M =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + META_PT =FACT(statut='f', + F1_K =SIMP(statut='f',typ='R'), + F2_K =SIMP(statut='f',typ='R'), + F3_K =SIMP(statut='f',typ='R'), + F4_K =SIMP(statut='f',typ='R'), + F1_D_F_META =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F2_D_F_META =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F3_D_F_META =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F4_D_F_META =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","META",) ), + ), + META_RE =FACT(statut='f', + C_F1_THETA =SIMP(statut='f',typ='R'), + C_F2_THETA =SIMP(statut='f',typ='R'), + C_F3_THETA =SIMP(statut='f',typ='R'), + C_F4_THETA =SIMP(statut='f',typ='R'), + F1_C_THETA =SIMP(statut='f',typ='R'), + F2_C_THETA =SIMP(statut='f',typ='R'), + F3_C_THETA =SIMP(statut='f',typ='R'), + F4_C_THETA =SIMP(statut='f',typ='R'), + ), +# +# comportement fluide +# + FLUIDE =FACT(statut='f', + regles=(EXCLUS('CELE_C','CELE_R'),), + RHO =SIMP(statut='o',typ='R'), + CELE_C =SIMP(statut='f',typ='C'), + CELE_R =SIMP(statut='f',typ='R'), + ), + PORO_JOINT =FACT(statut='f', + RHO_FLUI =SIMP(statut='o',typ='R'), + ENTRO_FLUI =SIMP(statut='o',typ='R'), + BIOT_M =SIMP(statut='o',typ='R'), + C_0 =SIMP(statut='o',typ='R'), + T_R =SIMP(statut='o',typ='R'), + ALPHA_M =SIMP(statut='o',typ='R'), + LAMBDA_T =SIMP(statut='o',typ='R'), + LAMBDA_H =SIMP(statut='o',typ='R'), + SOURCE_INIT =SIMP(statut='o',typ='R'), + OMEGA_0 =SIMP(statut='o',typ='R'), + ), +# ================================================================================= +# COMPORTEMENT THERMO_HYDRO_MECANIQUE +# LES DONNEES NECESSAIRES A LA DEFINITION DU MATERIAU SONT DEPENDANTES +# DE LA LOI DE COUPLAGE THM DE LA RELATION +# LE COMPORTEMENT DE COUPLAGE COMP_THM N EST VALABLE QUE POUR LES LOIS +# DE COUPLAGE : LIQU_SATU,LIQU_GAZ,GAZ,LIQU_GAZ_ATM,LIQU_VAPE_GAZ,LIQU_VAPE +# ET LIQU_AD_GAZ_VAPE +# POUR LES LOIS DE COUPLAGE LIQU_SATU_GAT ET LIQU_NSAT_GAT +# ON NE MODIFIE RIEN +# LA CORRESPONDANCE AVEC LES VARIABLES CACHEES EST LA SUIVANTE : +# 1 --> LIQU_SATU +# 2 --> GAZ +# 3 --> LIQU_VAPE +# 4 --> LIQU_VAPE_GAZ +# 5 --> LIQU_GAZ +# 6 --> LIQU_GAZ_ATM +# 7 --> LIQU_SATU_GAT +# 8 --> LIQU_NSAT_GAT +# 9 --> LIQU_AD_GAZ_VAPE +# ================================================================================= + COMP_THM = SIMP(statut='f', typ='TXM', + into = ( "LIQU_SATU" , + "LIQU_GAZ" , + "GAZ" , + "LIQU_GAZ_ATM" , + "LIQU_VAPE_GAZ" , + "LIQU_VAPE" , + "LIQU_SATU_GAT" , + "LIQU_NSAT_GAT" , + "LIQU_AD_GAZ_VAPE" , + ) ), +# ================================================================================= +# --- LOI DE COUPLAGE DE TYPE LIQU_SATU ------------------------------------------- +# ================================================================================= +# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- +# --- THM_INIT, THM_DIFFU, THM_LIQU ----------------------------------------------- +# ================================================================================= + b_liqusatu = BLOC(condition = "COMP_THM == 'LIQU_SATU' ", + fr="Paramètres nécessaires pour une loi de couplage de type LIQU_SATU", +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_INIT = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + PRE1 = SIMP(statut='o',typ='R'), + PORO = SIMP(statut='o',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + TEMP = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES INUTILES ---------------------------------------- +# --------------------------------------------------------------------------------- + PRE2 = SIMP(statut='f',typ='R'), + PRES_VAPE = SIMP(statut='f',typ='R'), + DEGR_SATU = SIMP(statut='f',typ='R'), + PRES_ATMO = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEE CACHEE --------------------------------------------- +# --------------------------------------------------------------------------------- + COMP_THM = SIMP(statut='c',typ='R',defaut= 1.0,), + ), +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_DIFFU = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + RHO = SIMP(statut='o',typ='R'), + BIOT_COEF = SIMP(statut='o',typ='R'), + PESA_X = SIMP(statut='o',typ='R'), + PESA_Y = SIMP(statut='o',typ='R'), + PESA_Z = SIMP(statut='o',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + CP = SIMP(statut='f',typ='R'), + PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), + PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), + PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_CT = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES INUTILES ---------------------------------------- +# --------------------------------------------------------------------------------- + R_GAZ = SIMP(statut='f',typ='R'), + EMMAG = SIMP(statut='f',typ='R'), + SATU_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_SATU_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_LIQU =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_LIQU_SATU=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_G_INTR =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CHAL_VAPO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), + ), +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_LIQU = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + RHO = SIMP(statut='o',typ='R'), + UN_SUR_K = SIMP(statut='o',typ='R'), + VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + ALPHA = SIMP(statut='f',typ='R'), + CP = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), +# ================================================================================= +# --- MOT-CLE INUTILE ------------------------------------------------------------- +# ================================================================================= + THM_GAZ =FACT(statut='f', + MASS_MOL =SIMP(statut='f',typ='R'), + CP =SIMP(statut='f',typ='R'), + VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), +# ================================================================================= +# --- MOT-CLE INUTILE ------------------------------------------------------------- +# ================================================================================= + THM_VAPE_GAZ =FACT(statut='f', + MASS_MOL =SIMP(statut='f',typ='R'), + CP =SIMP(statut='f',typ='R'), + VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), + ), +# ================================================================================= +# --- LOI DE COUPLAGE DE TYPE LIQU_GAZ -------------------------------------------- +# ================================================================================= +# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- +# --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ -------------------------------------- +# ================================================================================= + b_liqugaz = BLOC(condition = "COMP_THM == 'LIQU_GAZ' ", + fr="Paramètres nécessaires pour une loi de couplage de type LIQU_GAZ", +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_INIT = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + PRE1 = SIMP(statut='o',typ='R'), + PRE2 = SIMP(statut='o',typ='R'), + PORO = SIMP(statut='o',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + TEMP = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES INUTILES ---------------------------------------- +# --------------------------------------------------------------------------------- + PRES_VAPE = SIMP(statut='f',typ='R'), + DEGR_SATU = SIMP(statut='f',typ='R'), + PRES_ATMO = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEE CACHEE --------------------------------------------- +# --------------------------------------------------------------------------------- + COMP_THM = SIMP(statut='c',typ='R',defaut= 5.0,), + ), +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_DIFFU = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + R_GAZ = SIMP(statut='o',typ='R'), + RHO = SIMP(statut='o',typ='R'), + BIOT_COEF = SIMP(statut='o',typ='R'), + PESA_X = SIMP(statut='o',typ='R'), + PESA_Y = SIMP(statut='o',typ='R'), + PESA_Z = SIMP(statut='o',typ='R'), + SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_LIQU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_SATU_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_PRES_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + CP = SIMP(statut='f',typ='R'), + PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), + PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), + PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_CT = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES INUTILES ---------------------------------------- +# --------------------------------------------------------------------------------- + EMMAG = SIMP(statut='f',typ='R'), + SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_G_INTR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CHAL_VAPO = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), + ) , +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_LIQU = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + RHO = SIMP(statut='o',typ='R'), + UN_SUR_K = SIMP(statut='o',typ='R'), + VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + ALPHA = SIMP(statut='f',typ='R'), + CP = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_GAZ = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + MASS_MOL = SIMP(statut='o',typ='R'), + VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + CP = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), +# ================================================================================= +# --- MOT-CLE INUTILE ------------------------------------------------------------- +# ================================================================================= + THM_VAPE_GAZ =FACT(statut='f', + MASS_MOL =SIMP(statut='f',typ='R'), + CP =SIMP(statut='f',typ='R'), + VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), + ), +# ================================================================================= +# --- LOI DE COUPLAGE DE TYPE GAZ ------------------------------------------------- +# ================================================================================= +# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- +# --- THM_INIT, THM_DIFFU, THM_GAZ ------------------------------------------------ +# ================================================================================= + b_gaz = BLOC(condition = "COMP_THM == 'GAZ' ", + fr="Paramètres nécessaires pour une loi de couplage de type GAZ", +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_INIT = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + TEMP = SIMP(statut='o',typ='R'), + PRE1 = SIMP(statut='o',typ='R'), + PORO = SIMP(statut='o',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES INUTILES ---------------------------------------- +# --------------------------------------------------------------------------------- + PRE2 = SIMP(statut='f',typ='R'), + PRES_VAPE = SIMP(statut='f',typ='R'), + DEGR_SATU = SIMP(statut='f',typ='R'), + PRES_ATMO = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEE CACHEE --------------------------------------------- +# --------------------------------------------------------------------------------- + COMP_THM = SIMP(statut='c',typ='R',defaut= 2.0,), + ), +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_DIFFU = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + R_GAZ = SIMP(statut='o',typ='R'), + RHO = SIMP(statut='o',typ='R'), + BIOT_COEF = SIMP(statut='o',typ='R'), + PESA_X = SIMP(statut='o',typ='R'), + PESA_Y = SIMP(statut='o',typ='R'), + PESA_Z = SIMP(statut='o',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + CP = SIMP(statut='f',typ='R'), + PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), + PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), + PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_CT = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES INUTILES ---------------------------------------- +# --------------------------------------------------------------------------------- + EMMAG = SIMP(statut='f',typ='R'), + SATU_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_SATU_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_LIQU =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_LIQU_SATU=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_G_INTR =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CHAL_VAPO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), + ) , +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_GAZ = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + MASS_MOL = SIMP(statut='o',typ='R'), + VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + CP = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), +# ================================================================================= +# --- MOT-CLE INUTILE ------------------------------------------------------------- +# ================================================================================= + THM_LIQU =FACT(statut='f', + RHO =SIMP(statut='f',typ='R'), + UN_SUR_K =SIMP(statut='f',typ='R'), + ALPHA =SIMP(statut='f',typ='R'), + CP =SIMP(statut='f',typ='R'), + VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + COEF_HENRY =SIMP(statut='f',typ='R'), + VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), +# ================================================================================= +# --- MOT-CLE INUTILE ------------------------------------------------------------- +# ================================================================================= + THM_VAPE_GAZ =FACT(statut='f', + MASS_MOL =SIMP(statut='f',typ='R'), + CP =SIMP(statut='f',typ='R'), + VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), + ), +# ================================================================================= +# --- LOI DE COUPLAGE DE TYPE LIQU_GAZ_ATM ---------------------------------------- +# ================================================================================= +# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- +# --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ -------------------------------------- +# ================================================================================= + b_liqugazatm = BLOC(condition = "COMP_THM == 'LIQU_GAZ_ATM' ", + fr="Paramètres nécessaires pour une loi de couplage de type LIQU_GAZ_ATM", +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_INIT = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + PRE1 = SIMP(statut='o',typ='R'), + PORO = SIMP(statut='o',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + TEMP = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES INUTILES ---------------------------------------- +# --------------------------------------------------------------------------------- + PRE2 = SIMP(statut='f',typ='R'), + PRES_VAPE = SIMP(statut='f',typ='R'), + DEGR_SATU = SIMP(statut='f',typ='R'), + PRES_ATMO = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEE CACHEE --------------------------------------------- +# --------------------------------------------------------------------------------- + COMP_THM = SIMP(statut='c',typ='R',defaut= 6.0,), + ), +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_DIFFU = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + RHO = SIMP(statut='o',typ='R'), + BIOT_COEF = SIMP(statut='o',typ='R'), + PESA_X = SIMP(statut='o',typ='R'), + PESA_Y = SIMP(statut='o',typ='R'), + PESA_Z = SIMP(statut='o',typ='R'), + SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_LIQU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + CP = SIMP(statut='f',typ='R'), + PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), + PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), + PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_CT = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES INUTILES ---------------------------------------- +# --------------------------------------------------------------------------------- + EMMAG = SIMP(statut='f',typ='R'), + R_GAZ =SIMP(statut='f',typ='R'), + PERM_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_G_INTR =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CHAL_VAPO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), + ) , +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_LIQU = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + RHO = SIMP(statut='o',typ='R'), + UN_SUR_K = SIMP(statut='o',typ='R'), + VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + ALPHA = SIMP(statut='f',typ='R'), + CP = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), +# ================================================================================= +# --- MOT-CLE INUTILE ------------------------------------------------------------- +# ================================================================================= + THM_GAZ = FACT(statut='f', + MASS_MOL = SIMP(statut='f',typ='R'), + VISC = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CP = SIMP(statut='f',typ='R'), + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), +# ================================================================================= +# --- MOT-CLE INUTILE ------------------------------------------------------------- +# ================================================================================= + THM_VAPE_GAZ =FACT(statut='f', + MASS_MOL =SIMP(statut='f',typ='R'), + CP =SIMP(statut='f',typ='R'), + VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), + ), +# ================================================================================= +# --- LOI DE COUPLAGE DE TYPE LIQU_VAPE_GAZ --------------------------------------- +# ================================================================================= +# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- +# --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ, THM_VAPE_GAZ ------------------------ +# ================================================================================= + b_liquvapegaz = BLOC(condition = "COMP_THM == 'LIQU_VAPE_GAZ' ", + fr="Paramètres nécessaires pour une loi de couplage de type LIQU_VAPE_GAZ", +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_INIT = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + PRE1 = SIMP(statut='o',typ='R'), + PRE2 = SIMP(statut='o',typ='R'), + PORO = SIMP(statut='o',typ='R'), + PRES_VAPE = SIMP(statut='o',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + TEMP = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES INUTILES ---------------------------------------- +# --------------------------------------------------------------------------------- + DEGR_SATU = SIMP(statut='f',typ='R'), + PRES_ATMO = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEE CACHEE --------------------------------------------- +# --------------------------------------------------------------------------------- + COMP_THM = SIMP(statut='c',typ='R',defaut= 4.0,), + ), +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_DIFFU = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + R_GAZ = SIMP(statut='o',typ='R'), + RHO = SIMP(statut='o',typ='R'), + BIOT_COEF = SIMP(statut='o',typ='R'), + PESA_X = SIMP(statut='o',typ='R'), + PESA_Y = SIMP(statut='o',typ='R'), + PESA_Z = SIMP(statut='o',typ='R'), + SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_LIQU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_SATU_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_PRES_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_T = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + CP = SIMP(statut='f',typ='R'), + PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), + PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), + PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_CT = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES FACULTATIVE ---------------------------------- +# --------------------------------------------------------------------------------- + EMMAG = SIMP(statut='f',typ='R'), + SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_G_INTR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CHAL_VAPO = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES INUTILES ---------------------------------------- +# --------------------------------------------------------------------------------- + FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT" ,"PORO","PGAZ","PCAP","ENDO","PVAP","PLIQ","PAD",) ), + ) , +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_LIQU = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + RHO = SIMP(statut='o',typ='R'), + UN_SUR_K = SIMP(statut='o',typ='R'), + VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + ALPHA = SIMP(statut='f',typ='R'), + CP = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_GAZ = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + MASS_MOL = SIMP(statut='o',typ='R'), + VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + CP = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_VAPE_GAZ = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + MASS_MOL = SIMP(statut='o',typ='R'), + CP = SIMP(statut='o',typ='R'), + VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), + ), +# ================================================================================= +# --- LOI DE COUPLAGE DE TYPE LIQU_AD_GAZ_VAPE ------------------------------------- +# ================================================================================= +# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- +# --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ, THM_VAPE_GAZ THM_AIR_DISSOUS--------- +# ================================================================================= + b_liquadvape = BLOC(condition = "COMP_THM == 'LIQU_AD_GAZ_VAPE' ", + fr="Paramètres nécessaires pour une loi de couplage de type LIQU_AD_GAZ_VAPE", +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_INIT = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + PRE1 = SIMP(statut='o',typ='R'), + PRE2 = SIMP(statut='o',typ='R'), + PORO = SIMP(statut='o',typ='R'), + PRES_VAPE = SIMP(statut='o',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + TEMP = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES INUTILES ---------------------------------------- +# --------------------------------------------------------------------------------- + DEGR_SATU = SIMP(statut='f',typ='R'), + PRES_ATMO = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEE CACHEE --------------------------------------------- +# --------------------------------------------------------------------------------- + COMP_THM = SIMP(statut='c',typ='R',defaut= 9.0,), + ), +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_DIFFU = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + R_GAZ = SIMP(statut='o',typ='R'), + RHO = SIMP(statut='o',typ='R'), + BIOT_COEF = SIMP(statut='o',typ='R'), + PESA_X = SIMP(statut='o',typ='R'), + PESA_Y = SIMP(statut='o',typ='R'), + PESA_Z = SIMP(statut='o',typ='R'), + SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_LIQU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_SATU_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_PRES_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_T = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_T = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + CP = SIMP(statut='f',typ='R'), + PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), + PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), + PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_CT = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES FACULTATIVES ------------------------------------ +# --------------------------------------------------------------------------------- + EMMAG = SIMP(statut='f',typ='R'), + SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_G_INTR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CHAL_VAPO = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), +# + FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO","PVAP","PLIQ","PAD",) ), + ) , +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_LIQU = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + RHO = SIMP(statut='o',typ='R'), + UN_SUR_K = SIMP(statut='o',typ='R'), + VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + ALPHA = SIMP(statut='f',typ='R'), + CP = SIMP(statut='f',typ='R'), + LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_CT = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_GAZ = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + MASS_MOL = SIMP(statut='o',typ='R'), + VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + CP = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_VAPE_GAZ = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + MASS_MOL = SIMP(statut='o',typ='R'), + CP = SIMP(statut='o',typ='R'), + VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_AIR_DISS = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + CP = SIMP(statut='o',typ='R'), + COEF_HENRY = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",),), + ), + ), +# ================================================================================= +# --- LOI DE COUPLAGE DE TYPE LIQU_VAPE ------------------------------------------- +# ================================================================================= +# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- +# --- THM_INIT, THM_DIFFU, THM_LIQU, THM_VAPE_GAZ --------------------------------- +# ================================================================================= + b_liquvape = BLOC(condition = "COMP_THM == 'LIQU_VAPE' ", + fr="Paramètres nécessaires pour une loi de couplage de type LIQU_VAPE", +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_INIT = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + PRE1 = SIMP(statut='o',typ='R'), + PORO = SIMP(statut='o',typ='R'), + PRES_VAPE = SIMP(statut='o',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + TEMP = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES INUTILES ---------------------------------------- +# --------------------------------------------------------------------------------- + PRE2 = SIMP(statut='f',typ='R'), + DEGR_SATU = SIMP(statut='f',typ='R'), + PRES_ATMO = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEE CACHEE --------------------------------------------- +# --------------------------------------------------------------------------------- + COMP_THM = SIMP(statut='c',typ='R',defaut= 3.0,), + ), +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_DIFFU = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + R_GAZ = SIMP(statut='o',typ='R'), + RHO = SIMP(statut='o',typ='R'), + BIOT_COEF = SIMP(statut='o',typ='R'), + PESA_X = SIMP(statut='o',typ='R'), + PESA_Y = SIMP(statut='o',typ='R'), + PESA_Z = SIMP(statut='o',typ='R'), + SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_LIQU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_SATU_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_PRES_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + CP = SIMP(statut='f',typ='R'), + PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), + PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), + PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_CT = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES INUTILES ---------------------------------------- +# --------------------------------------------------------------------------------- + EMMAG = SIMP(statut='f',typ='R'), + SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_G_INTR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CHAL_VAPO = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), + ) , +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_LIQU = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + RHO = SIMP(statut='o',typ='R'), + UN_SUR_K = SIMP(statut='o',typ='R'), + VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + ALPHA = SIMP(statut='f',typ='R'), + CP = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES --------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_VAPE_GAZ = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + MASS_MOL = SIMP(statut='o',typ='R'), + CP = SIMP(statut='o',typ='R'), + VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), +# ================================================================================= +# --- MOT-CLE INUTILE ------------------------------------------------------------- +# ================================================================================= + THM_GAZ =FACT(statut='f', + MASS_MOL =SIMP(statut='f',typ='R'), + CP =SIMP(statut='f',typ='R'), + VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), + ), +# ================================================================================= + b_liqusatugat = BLOC(condition = "COMP_THM == 'LIQU_SATU_GAT' ", + fr="Paramètres nécessaires pour une loi de couplage de type LIQU_SATU_GAT", + THM_LIQU =FACT(statut='f', + 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_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMBDA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LAMBDA_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + COEF_HENRY =SIMP(statut='f',typ='R'), + VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), + THM_GAZ =FACT(statut='f', + MASS_MOL =SIMP(statut='f',typ='R'), + CP =SIMP(statut='f',typ='R'), + VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMBDA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LAMBDA_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), + THM_VAPE_GAZ =FACT(statut='f', + MASS_MOL =SIMP(statut='f',typ='R'), + CP =SIMP(statut='f',typ='R'), + VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), + THM_AIR_DISS = FACT(statut='f', + CP = SIMP(statut='f',typ='R'), + COEF_HENRY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",),), + ), + THM_INIT =FACT(statut='f', + 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'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEE CACHEE --------------------------------------------- +# --------------------------------------------------------------------------------- + COMP_THM = SIMP(statut='c',typ='R',defaut= 7.0,), + ), + THM_DIFFU =FACT(statut='f', + 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_sdaster,nappe_sdaster,formule)), + D_SATU_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + 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_sdaster,nappe_sdaster,formule)), + PERM_END =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), + PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), + PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_LIQU =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_LIQU_SATU=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICK =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FICK_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FICK_GAZ_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMBDA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LAMBDA_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_G_INTR =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CHAL_VAPO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), + ), + ), + b_liqunsatgat = BLOC(condition = "COMP_THM == 'LIQU_NSAT_GAT' ", + fr="Paramètres nécessaires pour une loi de couplage de type LIQU_NSAT_GAT", + THM_LIQU =FACT(statut='f', + 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_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMBDA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LAMBDA_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + COEF_HENRY =SIMP(statut='f',typ='R'), + VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), + THM_GAZ =FACT(statut='f', + MASS_MOL =SIMP(statut='f',typ='R'), + CP =SIMP(statut='f',typ='R'), + VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMBDA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LAMBDA_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), + THM_AIR_DISS = FACT(statut='f', + CP = SIMP(statut='f',typ='R'), + COEF_HENRY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ), + THM_VAPE_GAZ =FACT(statut='f', + MASS_MOL =SIMP(statut='f',typ='R'), + CP =SIMP(statut='f',typ='R'), + VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), + THM_INIT =FACT(statut='f', + 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'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEE CACHEE --------------------------------------------- +# --------------------------------------------------------------------------------- + COMP_THM = SIMP(statut='c',typ='R',defaut= 8.0,), + ), + THM_DIFFU =FACT(statut='f', + 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_sdaster,nappe_sdaster,formule)), + D_SATU_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + 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_sdaster,nappe_sdaster,formule)), + PERM_END =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), + PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), + PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_LIQU =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_LIQU_SATU=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICK =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FICK_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FICK_GAZ_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMBDA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LAMBDA_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_G_INTR =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CHAL_VAPO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PV =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PG =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_S =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_PG =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_PA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_PL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_S =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), + ), + ), +# courbes et coefficients associés à la fatigue et au dommage +# + FATIGUE =FACT(statut='f', + regles=(PRESENT_ABSENT('WOHLER','A_BASQUIN','BETA_BASQUIN'), + PRESENT_ABSENT('WOHLER','A0','A1','A2','A3','SL'), + PRESENT_ABSENT('A_BASQUIN','A0','A1','A2','A3','SL'), + ENSEMBLE('A_BASQUIN','BETA_BASQUIN'), + ENSEMBLE('A0','A1','A2','A3','SL'), + PRESENT_PRESENT('A0','E_REFE'), + ENSEMBLE('D0','TAU0'),), + WOHLER =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + A_BASQUIN =SIMP(statut='f',typ='R'), + BETA_BASQUIN =SIMP(statut='f',typ='R'), + A0 =SIMP(statut='f',typ='R'), + A1 =SIMP(statut='f',typ='R'), + A2 =SIMP(statut='f',typ='R'), + A3 =SIMP(statut='f',typ='R'), + SL =SIMP(statut='f',typ='R'), + MANSON_COFFIN =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + E_REFE =SIMP(statut='f',typ='R'), + D0 =SIMP(statut='f',typ='R'), + TAU0 =SIMP(statut='f',typ='R'), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("SIGM","EPSI",) ), + ), + DOMMA_LEMAITRE =FACT(statut='f', + S =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + EPSP_SEUIL =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + EXP_S =SIMP(statut='f',typ='R',val_min=0.0E0,defaut=1.0), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + CISA_PLAN_CRIT =FACT(statut='f', + CRITERE =SIMP(statut='o',typ='TXM',into=("MATAKE","DANG_VAN_MODI_AC","DANG_VAN_MODI_AV","DOMM_MAXI") ), + + b_critere_matake =BLOC(condition="CRITERE=='MATAKE'", + fr="Cisaillement plan critique critère de matake", + MATAKE_A =SIMP(statut='o',typ='R'), + MATAKE_B =SIMP(statut='o',typ='R'), + COEF_FLEX_TORS =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0), + ), + + b_critere_dang_van =BLOC(condition="(CRITERE=='DANG_VAN_MODI_AC' or CRITERE=='DANG_VAN_MODI_AV')", + fr="Critère de Dang Van modifié pour les cas amplitude constante et amplitude variable", + D_VAN_A =SIMP(statut='o',typ='R'), + D_VAN_B =SIMP(statut='o',typ='R'), + COEF_CISA_TRAC =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0), + ), + + b_crit_domm_maxi =BLOC(condition="CRITERE=='DOMM_MAXI'", + fr="Critère pour chargement non périodique : domm_maxi", + DOMM_A =SIMP(statut='o',typ='R'), + DOMM_B =SIMP(statut='o',typ='R'), + COEF_CISA_TRAC =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0), + ), + ), +# +# autres comportements ... +# + WEIBULL =FACT(statut='f', + M =SIMP(statut='o',typ='R'), + VOLU_REFE =SIMP(statut='o',typ='R'), + SIGM_REFE =SIMP(statut='o',typ='R'), + SEUIL_EPSP_CUMU =SIMP(statut='f',typ='R',defaut= 1.0E-6), + ), + WEIBULL_FO =FACT(statut='f', + M =SIMP(statut='o',typ='R'), + VOLU_REFE =SIMP(statut='o',typ='R'), + SIGM_CNV =SIMP(statut='o',typ='R'), + SIGM_REFE =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + SEUIL_EPSP_CUMU =SIMP(statut='f',typ='R',defaut= 1.0E-6), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + NON_LOCAL =FACT(statut='f', + LONG_CARA =SIMP(statut='o',typ='R'), + COEF_RIGI_MINI =SIMP(statut='f',typ='R'), + ), + RUPT_FRAG =FACT(statut='f', + GC =SIMP(statut='o',typ='R'), + SIGM_C =SIMP(statut='f',typ='R'), + SAUT_C =SIMP(statut='f',typ='R'), + ), + RCCM =FACT(statut='f', + 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', + SY_02 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + SM =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + SU =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + S =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + N_KE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + M_KE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + LAIGLE =FACT(statut='f', + GAMMA_ULT =SIMP(statut='o',typ='R'), + GAMMA_E =SIMP(statut='o',typ='R'), + M_ULT =SIMP(statut='o',typ='R'), + M_E =SIMP(statut='o',typ='R'), + A_E =SIMP(statut='o',typ='R'), + M_PIC =SIMP(statut='o',typ='R'), + A_PIC =SIMP(statut='o',typ='R'), + ETA =SIMP(statut='o',typ='R'), + SIGMA_C =SIMP(statut='o',typ='R'), + GAMMA =SIMP(statut='o',typ='R'), + KSI =SIMP(statut='o',typ='R'), + GAMMA_CJS =SIMP(statut='o',typ='R'), + SIGMA_P1 =SIMP(statut='o',typ='R'), + PA =SIMP(statut='o',typ='R'), + ), + DRUCK_PRAGER =FACT(statut='f', + ALPHA =SIMP(statut='o',typ='R'), + SY =SIMP(statut='o',typ='R'), + P_ULTM =SIMP(statut='o',typ='R'), + ECROUISSAGE = SIMP(statut='o',typ='TXM',into=("LINEAIRE","PARABOLIQUE")), + b_lineaire =BLOC(condition="ECROUISSAGE=='LINEAIRE'", + fr="Loi de comportement de type Drucker Prager avec un ecrouissage lineaire", + H =SIMP(statut='o',typ='R'), + TYPE_DP =SIMP(statut='c',typ='R',defaut= 1.0,), + ), + b_parabolique =BLOC(condition="ECROUISSAGE=='PARABOLIQUE'", + fr="Loi de comportement de type Drucker Prager avec un ecrouissage parabolique", + SY_ULTM =SIMP(statut='o',typ='R'), + TYPE_DP =SIMP(statut='c',typ='R',defaut= 2.0,), + ), + ), +#### MONOCRISTAL + + ECOU_VISC1 =FACT(statut='f', + TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),), + N =SIMP(statut='o',typ='R'), + K =SIMP(statut='o',typ='R'), + C =SIMP(statut='o',typ='R'), + ), + ECOU_VISC2 =FACT(statut='f', + TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),), + N =SIMP(statut='o',typ='R'), + K =SIMP(statut='o',typ='R'), + C =SIMP(statut='o',typ='R'), + D =SIMP(statut='o',typ='R'), + A =SIMP(statut='o',typ='R'), + ), + ECOU_VISC3 =FACT(statut='f', + TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),), + K =SIMP(statut='o',typ='R',fr="Constante de Boltzmann, en eV/K"), + TAUMU =SIMP(statut='o',typ='R',fr="Seuil d ecoulement, en unite de contraintes"), + GAMMA0 =SIMP(statut='o',typ='R',fr="Vitesse d ecoulement initiale"), + DELTAV =SIMP(statut='o',typ='R',fr="Volume d activation"), + DELTAG0 =SIMP(statut='o',typ='R',fr="Gain d energie lie au franchissement d obstacle"), + ), + ECOU_PLAS1 =FACT(statut='f', + TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECOU_PLAS",),), + C =SIMP(statut='o',typ='R'), + ), + ECRO_ISOT1 =FACT(statut='f', + TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECRO_ISOT",),), + R_0 =SIMP(statut='o',typ='R'), + Q =SIMP(statut='o',typ='R'), + B =SIMP(statut='o',typ='R'), + H =SIMP(statut='o',typ='R'), + ), + ECRO_ISOT2 =FACT(statut='f', + TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECRO_ISOT",),), + R_0 =SIMP(statut='o',typ='R'), + Q1 =SIMP(statut='o',typ='R'), + B1 =SIMP(statut='o',typ='R'), + H =SIMP(statut='o',typ='R'), + Q2 =SIMP(statut='o',typ='R'), + B2 =SIMP(statut='o',typ='R'), + ), + ECRO_CINE1 =FACT(statut='f', + TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECRO_CINE",),), + D =SIMP(statut='o',typ='R'), + ), + ECRO_CINE2 =FACT(statut='f', + TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECRO_CINE",),), + D =SIMP(statut='o',typ='R'), + GM =SIMP(statut='o',typ='R'), + PM =SIMP(statut='o',typ='R'), + C =SIMP(statut='o',typ='R'), + ), + +#### MONOCRISTAL + + DRUCK_PRAGER_FO =FACT(statut='f', + ALPHA =SIMP(statut='o',typ=(fonction_sdaster,formule)), + SY =SIMP(statut='o',typ=(fonction_sdaster,formule)), + P_ULTM =SIMP(statut='o',typ=(fonction_sdaster,formule)), + ECROUISSAGE = SIMP(statut='o',typ='TXM',into=("LINEAIRE","PARABOLIQUE")), + b_lineaire =BLOC(condition="ECROUISSAGE=='LINEAIRE'", + fr="Loi de comportement de type Drucker Prager avec un ecrouissage lineaire", + H =SIMP(statut='o',typ=(fonction_sdaster,formule)), + TYPE_DP =SIMP(statut='c',typ='R',defaut= 1.0,), + ), + b_parabolique =BLOC(condition="ECROUISSAGE=='PARABOLIQUE'", + fr="Loi de comportement de type Drucker Prager avec un ecrouissage parabolique", + SY_ULTM =SIMP(statut='o',typ=(fonction_sdaster,formule)), + TYPE_DP =SIMP(statut='c',typ='R',defaut= 2.0,), + ), + ), + + + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 30/08/2004 AUTEUR NICOLAS O.NICOLAS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +DEFI_MODELE_GENE=OPER(nom="DEFI_MODELE_GENE",op= 126,sd_prod=modele_gene, + reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + SOUS_STRUC =FACT(statut='o',max='**', + NOM =SIMP(statut='o',typ='TXM' ), + MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ), + ANGL_NAUT =SIMP(statut='f',typ='R',max=3), + TRANS =SIMP(statut='f',typ='R',max=3), + ), + LIAISON =FACT(statut='o',max='**', + SOUS_STRUC_1 =SIMP(statut='o',typ='TXM' ), + INTERFACE_1 =SIMP(statut='o',typ='TXM' ), + SOUS_STRUC_2 =SIMP(statut='o',typ='TXM' ), + INTERFACE_2 =SIMP(statut='o',typ='TXM' ), + regles=(EXCLUS('GROUP_MA_MAIT_1','GROUP_MA_MAIT_2','MAILLE_MAIT_2'), + EXCLUS('MAILLE_MAIT_1','GROUP_MA_MAIT_2','MAILLE_MAIT_2'),), + GROUP_MA_MAIT_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_MAIT_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA_MAIT_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_MAIT_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + OPTION =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("REDUIT","CLASSIQUE") ), + ), + VERIF =FACT(statut='f',max='**', +# dans la doc U stop_erreur est obligatoire + STOP_ERREUR =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; +#& MODIF COMMANDE DATE 10/10/2005 AUTEUR MCOURTOI M.COURTOIS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +DEFI_NAPPE=OPER(nom="DEFI_NAPPE",op= 4,sd_prod=nappe_sdaster, + fr="Définition des valeurs d une fonction de deux variables réelles", + reentrant='n', + UIinfo={"groupes":("Fonction",)}, + regles=(UN_PARMI('FONCTION','DEFI_FONCTION'), + EXCLUS('FONCTION','NOM_PARA_FONC',), + ENSEMBLE('NOM_PARA_FONC','DEFI_FONCTION'),), + NOM_PARA =SIMP(statut='o',typ='TXM',), + NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"), + PARA =SIMP(statut='o',typ='R',max='**'), + FONCTION =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ), + NOM_PARA_FONC =SIMP(statut='f',typ='TXM',into=("TEMP","INST","X","Y","Z","EPSI","FREQ", + "PULS","AMOR","EPAIS","SAT", "PGAZ","PCAP") ), + DEFI_FONCTION =FACT(statut='f',max='**', + VALE =SIMP(statut='o',typ='R',max='**'), + INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), + PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), + PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), + ), + INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), + PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), + PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), + VERIF =SIMP(statut='f',typ='TXM',into=("CROISSANT",) ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +DEFI_OBSTACLE=OPER(nom="DEFI_OBSTACLE",op= 73,sd_prod=obstacle_sdaster + ,fr="Définition d un obstacle plan perpendiculaire à une structure filaire", + reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + TYPE =SIMP(statut='o',typ='TXM',defaut="CERCLE", + into=("CERCLE","PLAN_Y","PLAN_Z","DISCRET", + "BI_CERCLE","BI_PLAN_Y","BI_PLAN_Z","BI_CERC_INT", + "CRAYON_900","CRAYON_1300","GUID_A_CARTE_900", + "GUID_B_CARTE_900","GUID_C_CARTE_900", + "GUID_D_CARTE_900","GUID_E_CARTE_900", + "GUID_F_CARTE_900","GUID_A_CARTE_1300", + "GUID_B_CARTE_1300","GUID_C_CARTE_1300", + "GUID_D_CARTE_1300","GUID_E_CARTE_1300", + "GUID_F_CARTE_1300","GUID_A_CARSP_900", + "GUID_B_CARSP_900","GUID_C_CARSP_900", + "GUID_D_CARSP_900","GUID_E_CARSP_900", + "GUID_F_CARSP_900","GUID_A_CARSP_1300", + "GUID_B_CARSP_1300","GUID_C_CARSP_1300", + "GUID_D_CARSP_1300","GUID_E_CARSP_1300", + "GUID_F_CARSP_1300","GUID_A_GCONT_900", + "GUID_B_GCONT_900","GUID_C_GCONT_900", + "GUID_D_GCONT_900","GUID_E_GCONT_900", + "GUID_F_GCONT_900","GUID_A_GCONT_1300", + "GUID_B_GCONT_1300","GUID_C_GCONT_1300", + "GUID_D_GCONT_1300","GUID_E_GCONT_1300", + "GUID_F_GCONT_1300","GUID_A_GCOMB_900", + "GUID_B_GCOMB_900","GUID_C_GCOMB_900", + "GUID_D_GCOMB_900","GUID_E_GCOMB_900", + "GUID_F_GCOMB_900","GUID_A_GCOMB_1300", + "GUID_B_GCOMB_1300","GUID_C_GCOMB_1300", + "GUID_D_GCOMB_1300","GUID_E_GCOMB_1300", + "GUID_F_GCOMB_1300",) ), + VALE =SIMP(statut='f',typ='R',max='**'), + VERIF =SIMP(statut='f',typ='TXM',defaut="FERME"), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE GNICOLAS G.NICOLAS +DEFI_PARA_SENSI=OPER(nom="DEFI_PARA_SENSI",op= 2,sd_prod=para_sensi, + fr="Définition d'un paramètre de sensibilité", + ang="Definition of a sensitive parameter", + reentrant='n', + UIinfo={"groupes":("Fonction",)}, + NOM_RESU =SIMP(statut='c',typ='TXM',into=("TOUTRESU",),defaut="TOUTRESU", + fr="Nom du concept créé", + ang="Name of the concept"), + VALE =SIMP(statut='o',typ='R', + fr="Valeur du parametre", + ang="Value of the parameter"), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 15/11/2004 AUTEUR ASSIRE A.ASSIRE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE BOITEAU O.BOITEAU + +from Macro.defi_part_feti_ops import defi_part_feti_ops + +DEFI_PART_FETI=MACRO(nom="DEFI_PART_FETI",op=defi_part_feti_ops,sd_prod=sd_feti_sdaster, + reentrant='n', + fr="Creation partitionnement en sous-domaines pour FETI", + MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), + MODELE =SIMP(statut='f',typ=modele_sdaster), + NB_PART =SIMP(statut='o',typ='I'), + EXCIT =FACT(statut='f',max='**', + CHARGE =SIMP(statut='f',typ=(char_meca,char_cine_meca)),), + METHODE =SIMP(statut='o',typ='TXM',into=("PMETIS","KMETIS","AUTRE",), defaut="PMETIS" ), + b_methode =BLOC(condition="METHODE == 'AUTRE'", fr="Autre logiciel", + LOGICIEL =SIMP(statut='f',typ='TXM'), + ), + NOM_GROUP_MA =SIMP(statut='f',typ='TXM',defaut='SD' ), + INFO =SIMP(statut='f',typ='I',into=(1, 2, 3, 4,5), defaut=1), +); +#& MODIF COMMANDE DATE 08/11/2004 AUTEUR ASSIRE A.ASSIRE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE ASSIRE A.ASSIRE + +DEFI_PART_OPS=OPER(nom="DEFI_PART_OPS",op=21,sd_prod=sd_feti_sdaster, + fr="Creation partitionnement en sous-domaines pour FETI", + docu="U4.23.05",reentrant='n', + UIinfo={"groupes":("Résolution",)}, + MODELE =SIMP(statut='o',typ=(modele_sdaster) ), + NOM =SIMP(statut='f',typ='TXM',defaut='SD'), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2,3,4) ), + + DEFI =FACT(statut='f',max='**', + GROUP_MA =SIMP(statut='o',typ=grma), + GROUP_MA_BORD =SIMP(statut='f',typ=grma), + ), + EXCIT =FACT(statut='f',max='**', + CHARGE =SIMP(statut='f',typ=(char_meca,char_cine_meca)), + ), +); +#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +DEFI_SPEC_TURB=OPER(nom="DEFI_SPEC_TURB",op= 145,sd_prod=spectre_sdaster, + fr="Définition d'un spectre d'excitation turbulente", + reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + regles=(UN_PARMI('SPEC_LONG_COR_1','SPEC_LONG_COR_2','SPEC_LONG_COR_3', + 'SPEC_LONG_COR_4','SPEC_CORR_CONV_1','SPEC_CORR_CONV_2', + 'SPEC_FONC_FORME','SPEC_EXCI_POINT'),), + SPEC_LONG_COR_1 =FACT(statut='f', + LONG_COR =SIMP(statut='o',typ='R' ), + PROF_VITE_FLUI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + VISC_CINE =SIMP(statut='o',typ='R' ), + ), + SPEC_LONG_COR_2 =FACT(statut='f', + regles=(ENSEMBLE('FREQ_COUP','PHI0','BETA' ),), + LONG_COR =SIMP(statut='o',typ='R' ), + PROF_VITE_FLUI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FREQ_COUP =SIMP(statut='f',typ='R',defaut= 0.1 ), + PHI0 =SIMP(statut='f',typ='R',defaut= 1.5E-3 ), + BETA =SIMP(statut='f',typ='R',defaut= 2.7 ), + ), + SPEC_LONG_COR_3 =FACT(statut='f', + regles=(ENSEMBLE('PHI0_1','BETA_1','PHI0_2','BETA_2','FREQ_COUP'),), + LONG_COR =SIMP(statut='o',typ='R' ), + PROF_VITE_FLUI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FREQ_COUP =SIMP(statut='f',typ='R',defaut= 0.2 ), + PHI0_1 =SIMP(statut='f',typ='R',defaut= 5.E-3 ), + BETA_1 =SIMP(statut='f',typ='R',defaut= 0.5 ), + PHI0_2 =SIMP(statut='f',typ='R',defaut= 4.E-5 ), + BETA_2 =SIMP(statut='f',typ='R',defaut= 3.5 ), + ), + SPEC_LONG_COR_4 =FACT(statut='f', + regles=(ENSEMBLE('BETA','GAMMA'),), + LONG_COR =SIMP(statut='o',typ='R' ), + PROF_VITE_FLUI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + TAUX_VIDE =SIMP(statut='o',typ='R' ), + BETA =SIMP(statut='f',typ='R',defaut= 2. ), + GAMMA =SIMP(statut='f',typ='R',defaut= 4. ), + ), + SPEC_CORR_CONV_1=FACT(statut='f', + LONG_COR_1 =SIMP(statut='o',typ='R' ), + LONG_COR_2 =SIMP(statut='f',typ='R' ), + VITE_FLUI =SIMP(statut='o',typ='R' ), + RHO_FLUI =SIMP(statut='o',typ='R' ), + FREQ_COUP =SIMP(statut='f',typ='R' ), + K =SIMP(statut='f',typ='R',defaut= 5.8E-3 ), + D_FLUI =SIMP(statut='o',typ='R' ), + COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ), + COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ), + METHODE =SIMP(statut='f',typ='TXM',defaut="GENERALE", + into=("AU_YANG","GENERALE","CORCOS") ), + ), + SPEC_CORR_CONV_2=FACT(statut='f', + FONCTION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + VITE_FLUI =SIMP(statut='o',typ='R' ), + FREQ_COUP =SIMP(statut='f',typ='R' ), + METHODE =SIMP(statut='f',typ='TXM',defaut="GENERALE", + into=("AU_YANG","GENERALE","CORCOS",) ), + COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ), + COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ), + ), + SPEC_FONC_FORME =FACT(statut='f', + regles=(UN_PARMI('INTE_SPEC','GRAPPE_1'), + ENSEMBLE('INTE_SPEC','FONCTION'),), + INTE_SPEC =SIMP(statut='f',typ=tabl_intsp ), + FONCTION =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'), + GRAPPE_1 =SIMP(statut='f',typ='TXM',into=("DEBIT_180","DEBIT_300",) ), + NOEUD =SIMP(statut='o',typ=no), + CARA_ELEM =SIMP(statut='o',typ=cara_elem ), + MODELE =SIMP(statut='o',typ=modele_sdaster ), + ), + SPEC_EXCI_POINT =FACT(statut='f', + regles=(UN_PARMI('INTE_SPEC','GRAPPE_2'),), + INTE_SPEC =SIMP(statut='f',typ=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_sdaster ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +DEFI_SQUELETTE=OPER(nom="DEFI_SQUELETTE",op= 110,sd_prod=squelette, + fr="Définition d un maillage de visualisation", + 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',max='**', + regles=(EXCLUS('TOUT','GROUP_NO_1'), + PRESENT_PRESENT('GROUP_NO_1','GROUP_NO_2'), + PRESENT_PRESENT('GROUP_NO_1','SOUS_STRUC_1'), + PRESENT_PRESENT('GROUP_NO_2','SOUS_STRUC_2'), + PRESENT_PRESENT('SOUS_STRUC_1','SOUS_STRUC_2'),), + TOUT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",) ), + GROUP_NO_1 =SIMP(statut='f',typ=grno), + SOUS_STRUC_1 =SIMP(statut='f',typ='TXM' ), + GROUP_NO_2 =SIMP(statut='f',typ=grno), + SOUS_STRUC_2 =SIMP(statut='f',typ='TXM' ), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + DIST_REFE =SIMP(statut='f',typ='R' ), + ), + NOM_GROUP_MA =FACT(statut='f',max='**', + NOM =SIMP(statut='o',typ='TXM' ), + SOUS_STRUC =SIMP(statut='o',typ='TXM' ), + GROUP_MA =SIMP(statut='o',typ=grma), + ), + EXCLUSIF =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + MAILLAGE =SIMP(statut='f',typ=maillage_sdaster ), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + TRANS =SIMP(statut='f',typ='R',min=3,max=3), + ANGL_NAUT =SIMP(statut='f',typ='R',min=3,max=3), + SOUS_STRUC =FACT(statut='f',max='**', + NOM =SIMP(statut='f',typ='TXM' ), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + ), + SECTEUR =FACT(statut='f',max='**', + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 22/11/2004 AUTEUR JMBHH01 J.M.PROIX +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +DEFI_TEXTURE=OPER(nom="DEFI_TEXTURE",op= 181,sd_prod=tabl_texture, + fr=" ",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=1,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 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +DEFI_THER_JOULE=OPER(nom="DEFI_THER_JOULE",op= 121,sd_prod=fonction_sdaster,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_sdaster), + 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',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 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +DEFI_TRC=OPER(nom="DEFI_TRC",op=94,sd_prod=tabl_trc,reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + fr="Définition d un diagramme de transformations en refroidissement continu d un acier", + HIST_EXP =FACT(statut='o',max='**', + VALE =SIMP(statut='o',typ='R',max='**'), + ), + TEMP_MS =FACT(statut='o',max='**', + SEUIL =SIMP(statut='o',typ='R'), + AKM =SIMP(statut='o',typ='R'), + BKM =SIMP(statut='o',typ='R'), + TPLM =SIMP(statut='o',typ='R'), + ), + GRAIN_AUST =FACT(statut='f',max='**', + DREF =SIMP(statut='f',typ='R'), + A =SIMP(statut='f',typ='R'), + ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +DEPL_INTERNE=OPER(nom="DEPL_INTERNE",op=89,sd_prod=cham_no_depl_r,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,), + NOM_CAS =SIMP(statut='f',typ='TXM',defaut=" "), +) ; +#& MODIF COMMANDE DATE 03/11/2004 AUTEUR MCOURTOI M.COURTOIS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +DETRUIRE=PROC(nom="DETRUIRE",op=-7, + UIinfo={"groupes":("Gestion du travail",)}, + fr="Destruction d un concept utilisateur dans la base GLOBALE", + op_init=ops.detruire, + regles=(UN_PARMI('CONCEPT','OBJET',),), + CONCEPT =FACT(statut='f',max='**', + NOM =SIMP(statut='o',typ=assd,validators=NoRepeat(),max='**'), + ), + OBJET =FACT(statut='f',max='**', + CLASSE =SIMP(statut='f',typ='TXM',into=('G','V','L'),defaut='G'), + CHAINE =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'), + POSITION =SIMP(statut='f',typ='I' ,max='**'), + ), + ALARME =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI',), + INFO =SIMP(statut='f',typ='I',into=(1,2),defaut=2, ), +); +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +DIST_LIGN_3D=OPER(nom="DIST_LIGN_3D",op= 133,sd_prod=fonction_sdaster,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_sdaster), + RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,evol_noli) ), + TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",)), + NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + GROUP_MA_1 =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), + GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),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 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +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", + reentrant='n', + UIinfo={"groupes":("Résolution",)}, + BASE_MODALE =FACT(statut='o', + regles=(UN_PARMI('NUME_ORDRE','BANDE'),), + MODE_MECA =SIMP(statut='o',typ=mode_meca ), + BANDE =SIMP(statut='f',typ='R',validators=NoRepeat(),max=2), + NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + b_bande =BLOC(condition = "BANDE != None", + AMOR_UNIF =SIMP(statut='o',typ='R' ), + ), + b_nume_ordre =BLOC(condition = "NUME_ORDRE != None", + AMOR_REDUIT =SIMP(statut='o',typ='R',max='**'), + ), + ), + MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)), +# MODE_STAT devrait etre dans EXCIT car est utile et obligatoire que si NOM_CMP=depl_r, on pourrait +# ainsi rajouter un bloc du genre b_mod_stat= BLOC(condition = "(GRANDEUR == None) or (GRANDEUR == 'DEPL_R')", + EXCIT =FACT(statut='o', + INTE_SPEC =SIMP(statut='o',typ=tabl_intsp ), + NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), + OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG",) ), + MODAL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + b_modal_non = BLOC(condition = "(MODAL == None) or (MODAL == 'NON')", + regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I'),), + NUME_ORDRE_I =SIMP(statut='f',typ='I',max='**'), + NOEUD_I =SIMP(statut='f',typ=no,max='**'), + b_nume_ordre_i =BLOC(condition = "NUME_ORDRE_I != None", + regles=(EXCLUS('CHAM_NO','NOEUD'),), +# on devrait rajouter EXCLUS('GRANDEUR','CHAM_NO') pour eviter ambiguite car CHAM_NO => GRANDEUR='EFFO' +# cela impliquerait d'enlever la valeur par defaut a GRANDEUR + NUME_ORDRE_J =SIMP(statut='o',typ='I',max='**'), + CHAM_NO =SIMP(statut='f',typ=cham_no_sdaster), + NOEUD =SIMP(statut='f',typ=no,max='**'), + b_noeud =BLOC(condition = "NOEUD != None", + NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), + ), + GRANDEUR =SIMP(statut='f',typ='TXM',defaut="DEPL_R", + into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")), +# que se passe-t-il en cas d'incompatibilite entre GRANDEUR et NOM_CMP + DERIVATION =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ), + ), + b_noeud_i =BLOC(condition = "NOEUD_I != None", + NOEUD_J =SIMP(statut='o',typ=no,max='**'), + NOM_CMP_I =SIMP(statut='o',typ='TXM',max='**'), + NOM_CMP_J =SIMP(statut='o',typ='TXM',max='**'), + NOEUD =SIMP(statut='o',typ=no,max='**'), + NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), +# ne serait-il pas bien que NOEUD et NOM_CMP soient facultatifs, car l'information peut etre contenue dans +# NOEUD_I, NOM_CMP_I ... => modif. du Fortran + GRANDEUR =SIMP(statut='f',typ='TXM',defaut="DEPL_R", + into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")), +# que se passe-t-il en cas d'incompatibilite entre GRANDEUR et NOM_CMP_I + DERIVATION =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ), + ), + ), + b_modal_oui = BLOC(condition = "(MODAL == 'OUI')", +# dans ce cas, y-a-t-il vraiment la possibilite d'une matrice interspectrale avec plusieurs termes + NUME_ORDRE_I =SIMP(statut='o',typ='I',max='**'), + NUME_ORDRE_J =SIMP(statut='o',typ='I',max='**'), + GRANDEUR =SIMP(statut='f',typ='TXM',defaut="DEPL_R", + into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")), + DERIVATION =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ), +# dans le cas MODAL=OUI, GRANDEUR peut-il etre different de EFFO et doit il etre impose a EFFO On devrait +# pouvoir supprimer GRANDEUR et DERIVATION ici + ), + + ), + REPONSE =FACT(statut='f', + regles=( ENSEMBLE('FREQ_MIN','FREQ_MAX'),), + DERIVATION =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ,) ), + OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ), + FREQ_MIN =SIMP(statut='f',typ='R' ), + FREQ_MAX =SIMP(statut='f',typ='R' ), + PAS =SIMP(statut='f',typ='R' ), + b_defaut_freq =BLOC(condition = "FREQ_MIN == NONE", + FREQ_EXCIT =SIMP(statut='f',typ='TXM',defaut="AVEC",into=("AVEC","SANS") ), + NB_POIN_MODE =SIMP(statut='f',typ='I',defaut= 50 ), + ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; +#& MODIF COMMANDE DATE 04/07/2005 AUTEUR NICOLAS O.NICOLAS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +def dyna_line_harm_prod(MATR_RIGI,**args): + if AsType(MATR_RIGI) == matr_asse_depl_r : return dyna_harmo + if AsType(MATR_RIGI) == matr_asse_depl_c : return dyna_harmo + if AsType(MATR_RIGI) == matr_asse_pres_c : return acou_harmo + if AsType(MATR_RIGI) == matr_asse_gene_r : return harm_gene + if AsType(MATR_RIGI) == matr_asse_gene_c : return harm_gene + raise AsException("type de concept resultat non prevu") + +DYNA_LINE_HARM=OPER(nom="DYNA_LINE_HARM",op= 60,sd_prod=dyna_line_harm_prod, + fr="Réponse dynamique complexe d un système à une excitation harmonique", + 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_sdaster ), + CHAM_MATER =SIMP(statut='f',typ=cham_mater ), + CARA_ELEM =SIMP(statut='f',typ=cara_elem ), + MATR_MASS =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_pres_c,matr_asse_gene_r ) ), + MATR_RIGI =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_pres_c + ,matr_asse_gene_r,matr_asse_gene_c ) ), + MATR_AMOR =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_pres_c,matr_asse_gene_r ) ), + AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), + LIST_AMOR =SIMP(statut='f',typ=listr8_sdaster ), + MATR_IMPE_PHI =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ), + FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), + TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",)), + NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3,into=("DEPL","VITE","ACCE") ), + EXCIT =FACT(statut='o',max='**', + regles=(UN_PARMI('VECT_ASSE','CHARGE'), + UN_PARMI('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'), +# Je rajoute ces deux regles car seules les termes complexes peuvent etre pris en +# compte lors de l'utilisation d'une charge + PRESENT_ABSENT('CHARGE','FONC_MULT'), + PRESENT_ABSENT('CHARGE','COEF_MULT'), +# a corriger + ), + 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_sdaster,nappe_sdaster,formule) ), + COEF_MULT =SIMP(statut='f',typ='R' ), + PHAS_DEG =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + PUIS_PULS =SIMP(statut='f',typ='I',defaut= 0 ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des paramètres de sensibilité.", + ang="List of sensitivity parameters"), +) ; +# Rajouter test icompatibilite vect_asse et sensibilite +# Peut-on aussi rajouter ici le test d incompatibilite charge complexe - derivation +# presents dans le Fortran +#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op= 48,sd_prod=dyna_trans, + fr="Réponse temporelle d un système à une excitation transitoire", + 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_sdaster ), + CHAM_MATER =SIMP(statut='f',typ=cham_mater ), + CARA_ELEM =SIMP(statut='f',typ=cara_elem ), + MATR_MASS =SIMP(statut='o',typ=matr_asse_depl_r ), + MATR_RIGI =SIMP(statut='o',typ=matr_asse_depl_r ), + MATR_AMOR =SIMP(statut='f',typ=matr_asse_depl_r ), + MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ), + NEWMARK =FACT(statut='f', + ALPHA =SIMP(statut='f',typ='R',defaut= 0.25 ), + DELTA =SIMP(statut='f',typ='R',defaut= 0.5 ), + ), + WILSON =FACT(statut='f', + THETA =SIMP(statut='f',typ='R',defaut= 1.4 ), + ), + DIFF_CENTRE =FACT(statut='f', + ), + ADAPT =FACT(statut='f', + ), + ETAT_INIT =FACT(statut='f', + regles=(AU_MOINS_UN('DYNA_TRANS', 'DEPL_INIT', 'VITE_INIT',), + 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',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_sdaster,nappe_sdaster,formule) ), + COEF_MULT =SIMP(statut='f',typ='R' ), + TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), + ACCE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + VITE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DEPL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MULT_APPUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + DIRECTION =SIMP(statut='f',typ='R',max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + ), + AMOR_MODAL =FACT(statut='f', + MODE_MECA =SIMP(statut='f',typ=mode_meca ), + AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), + NB_MODE =SIMP(statut='f',typ='I',defaut= 9999 ), + REAC_VITE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + ), +# ce n est pas le mot clesolveur standard + SOLVEUR =FACT(statut='d', + NPREC =SIMP(statut='f',typ='I',defaut= 8 ), + STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), + NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), + ), + INCREMENT =FACT(statut='o',max='**', + regles=(UN_PARMI('LIST_INST','FONC_INST','PAS'),), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), + FONC_INST =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + PAS =SIMP(statut='f',typ='R' ), + b_pas =BLOC(condition = "PAS != None", + INST_INIT =SIMP(statut='f',typ='R' ), + INST_FIN =SIMP(statut='f',typ='R' ), + ), + b_list_fonc =BLOC(condition = "LIST_INST != None or FONC_INST != None", + regles=(EXCLUS('INST_FIN','NUME_FIN'),), + NUME_FIN =SIMP(statut='f',typ='I' ), + INST_FIN =SIMP(statut='f',typ='R' ), + ), + VITE_MIN =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ), + COEF_MULT_PAS =SIMP(statut='f',typ='R',defaut= 1.1 ), + COEF_DIVI_PAS =SIMP(statut='f',typ='R',defaut= 1.33334 ), + PAS_LIMI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), + NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ), + NMAX_ITER_PAS =SIMP(statut='f',typ='I',defaut= 16 ), + PAS_CALCUL =SIMP(statut='f',typ='I',defaut= 1 ), + ), + ARCHIVAGE =FACT(statut='f', + regles=(UN_PARMI('LIST_ARCH','PAS_ARCH', ),), + LIST_ARCH =SIMP(statut='f',typ=listis_sdaster ), + PAS_ARCH =SIMP(statut='f',typ='I' ), + CHAM_EXCLU =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","VITE","ACCE") ), + ), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des param\350tres de sensibilit\351.", + ang="List of sensitivity parameters", + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 09/11/2004 AUTEUR NICOLAS O.NICOLAS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f', + fr="Analyse mécanique dynamique non linéaire", + UIinfo={"groupes":("Résolution",)}, + regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',), + UN_PARMI('NEWMARK','HHT','TETA_METHODE', ),), + MODELE =SIMP(statut='o',typ=modele_sdaster), + CHAM_MATER =SIMP(statut='o',typ=cham_mater), + MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)), + CARA_ELEM =SIMP(statut='f',typ=cara_elem), + EXCIT =FACT(statut='o',max='**', + regles=(PRESENT_ABSENT('FONC_MULT','ACCE'), + PRESENT_PRESENT('ACCE','VITE','DEPL'), + # PRESENT_ABSENT('MULT_APPUI','FONC_MULT'), + ), + TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE", + into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")), + CHARGE =SIMP(statut='o',typ=char_meca), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + DEPL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ACCE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VITE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MULT_APPUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + DIRECTION =SIMP(statut='f',typ='R',max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + ), + SOUS_STRUC =FACT(statut='f',min=01,max='**', + regles=(UN_PARMI('TOUT','MAILLE'),), + CAS_CHARGE =SIMP(statut='o',typ='TXM' ), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',), + ), + AMOR_MODAL =FACT(statut='f', + MODE_MECA =SIMP(statut='f',typ=mode_meca), + AMOR_REDUIT =SIMP(statut='f',typ='R',max='**' ), + NB_MODE =SIMP(statut='f',typ='I',defaut= 9999 ), + REAC_VITE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + VARI_COMM =FACT(statut='f', + regles=(AU_MOINS_UN('IRRA',),), + IRRA =SIMP(statut='f',typ=evol_varc), + CORROSION =SIMP(statut='f',typ=carte_corr_r), + ), + COMP_INCR =C_COMP_INCR(), + COMP_ELAS =FACT(statut='f',max='**', + RELATION =SIMP(statut='o',typ='TXM',defaut="ELAS", + into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC", + "ELAS_POUTRE_GR","CABLE")), + ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), + ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut=1,into=(1,)), + ELAS_VMIS_LINE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), + ELAS_POUTRE_GR =SIMP(statut='c',typ='I',defaut=3,into=(3,)), + CABLE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), + DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ), + regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + ), +#------------------------------------------------------------------- + b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : ETAT_INIT obligatoire", + ETAT_INIT =FACT(statut='o', + regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','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'), + ),), + b_not_reuse =BLOC(condition = "not reuse",fr="en mode concept non reentrant : ETAT_INIT facultatif", + ETAT_INIT =FACT(statut='f', + regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','SIGM','VARI','VARI_NON_LOCAL',), + EXCLUS('EVOL_NOLI','DEPL',), + EXCLUS('EVOL_NOLI','VITE'), + EXCLUS('EVOL_NOLI','SIGM',), + EXCLUS('EVOL_NOLI','VARI',), + EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), + EXCLUS('NUME_ORDRE','INST'), ), + DEPL =SIMP(statut='f',typ=cham_no_depl_r), + VITE =SIMP(statut='f',typ=cham_no_depl_r), + SIGM =SIMP(statut='f',typ=(cham_elem_sief_r,carte_sief_r)), + VARI =SIMP(statut='f',typ=cham_elem_vari_r), + VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_vanl_r), + EVOL_NOLI =SIMP(statut='f',typ=evol_noli), + NUME_ORDRE =SIMP(statut='f',typ='I'), + INST =SIMP(statut='f',typ='R'), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + NUME_DIDI =SIMP(statut='f',typ='I'), + INST_ETAT_INIT =SIMP(statut='f',typ='R'), + ),), +#------------------------------------------------------------------- + INCREMENT =FACT(statut='o', + regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), + EXCLUS('NUME_INST_FIN','INST_FIN'),), + LIST_INST =SIMP(statut='o',typ=listr8_sdaster), + EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE", + into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ), + NUME_INST_INIT =SIMP(statut='f',typ='I'), + INST_INIT =SIMP(statut='f',typ='R'), + NUME_INST_FIN =SIMP(statut='f',typ='I'), + INST_FIN =SIMP(statut='f',typ='R'), + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), + 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', + ALPHA =SIMP(statut='f',typ='R',defaut= 0.25), + DELTA =SIMP(statut='f',typ='R',defaut= 0.5), + ), + HHT =FACT(statut='f', + ALPHA =SIMP(statut='f',typ='R' + ,defaut= -0.29999999999999999 ), + ), + TETA_METHODE =FACT(statut='f', + TETA =SIMP(statut='f',typ='R' + ,defaut= 1.,val_min=0.5,val_max=1. ), + ), + NEWTON =FACT(statut='d', + REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), + PREDICTION =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE") ), + MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ), + REAC_ITER =SIMP(statut='f',typ='I',defaut= 0), + REAC_ITER_ELAS =SIMP(statut='f',typ='I',defaut=0), + PAS_MINI_ELAS =SIMP(statut='f',typ='R',defaut=0.0E+0), + ), + SOLVEUR =FACT(statut='d', + METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), + b_mult_front =BLOC(condition= "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", + RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), + ), + b_ldlt =BLOC(condition= "METHODE == 'LDLT'",fr="Paramètres de la méthode LDLT", + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), + ), + b_ldlt_mult =BLOC(condition="METHODE == 'LDLT' or METHODE == 'MULT_FRONT'", + fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", + NPREC =SIMP(statut='f',typ='I',defaut= 8 ), + STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ), + ), + b_gcpc =BLOC(condition="METHODE == 'GCPC'",fr="Paramètres de la méthode du gradient conjugué", + PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), + NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0), + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), + RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), + NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), + ), + SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + ), +#------------------------------------------------------------------- + RECH_LINEAIRE =FACT(statut='f', + RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-1 ), + ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3), + ITER_LINE_CRIT =SIMP(statut='f',typ='I',defaut= 20), + PAS_MINI_CRIT =SIMP(statut='f',typ='R',defaut=0.0E+0), + RHO_MIN =SIMP(statut='f',typ='R',defaut=1.0E-2), + RHO_MAX =SIMP(statut='f',typ='R',defaut=1.0E+1), + RHO_EXCL =SIMP(statut='f',typ='R',defaut=0.9E-2), + ), + PILOTAGE =FACT(statut='f', + regles=(EXCLUS('NOEUD','GROUP_NO'),PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), + TYPE =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS","PRED_ELAS_INCR","DEFORMATION","ANA_LIM") ), + COEF_MULT =SIMP(statut='f',typ='R',defaut= 1.0E+0), + ETA_PILO_MAX =SIMP(statut='f',typ='R'), + ETA_PILO_MIN =SIMP(statut='f',typ='R'), + ETA_PILO_R_MAX =SIMP(statut='f',typ='R'), + ETA_PILO_R_MIN =SIMP(statut='f',typ='R'), + PROJ_BORNES =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), + SELECTION =SIMP(statut='f',typ='TXM',defaut="NORM_INCR_DEPL", into=("RESIDU","ANGL_INCR_DEPL","NORM_INCR_DEPL") ), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), + NOM_CMP =SIMP(statut='f',typ='TXM',max='**' ), + ), + CONVERGENCE =FACT(statut='d', + regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),), + SIGM_REFE =SIMP(statut='f',typ='R'), + EPSI_REFE =SIMP(statut='f',typ='R'), + FLUX_THER_REFE =SIMP(statut='f',typ='R'), + FLUX_HYD1_REFE =SIMP(statut='f',typ='R'), + FLUX_HYD2_REFE =SIMP(statut='f',typ='R'), + RESI_REFE_RELA =SIMP(statut='f',typ='R'), + RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), + RESI_GLOB_RELA =SIMP(statut='f',typ='R'), + ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), + ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25), + ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), + RESI_INTE_RELA =SIMP(statut='f',typ='R' + ,defaut= 1.0E-6), + ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), + ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), + RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", + into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), + ), +#------------------------------------------------------------------- + ARCHIVAGE =FACT(statut='f', + regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'), + EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ), + LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), + PAS_ARCH =SIMP(statut='f',typ='I' ), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), + ARCH_ETAT_INIT =SIMP(statut='f',typ='TXM',into=("OUI",)), + NUME_INIT =SIMP(statut='f',typ='I'), + DETR_NUME_SUIV =SIMP(statut='f',typ='TXM',into=("OUI",)), + CHAM_EXCLU =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', + into=("DEPL","SIEF_ELGA","VARI_ELGA","ACCE","VITE","VARI_NON_LOCAL","LANL_ELGA")), + ), + OBSERVATION =FACT(statut='f',max='**', + regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'), + PRESENT_PRESENT('MAILLE','POINT'),), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + +into=("DEPL","VITE","ACCE","SIEF_ELGA","VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU") ), + NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ), + LIST_ARCH =SIMP(statut='f',typ=listis_sdaster), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + PAS_OBSE =SIMP(statut='f',typ='I'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + POINT =SIMP(statut='f',typ='I' ,max='**'), + ), +#------------------------------------------------------------------- + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des paramètres de sensibilité", + ang="List of sensitivity parameters"), +#------------------------------------------------------------------- + SOLV_NON_LOCAL =FACT(statut='f', + METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), + b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", + RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), + ), + b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), + ), + b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", + fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", + NPREC =SIMP(statut='f',typ='I',defaut= 8 ), + STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", + PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), + NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), + RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), + NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), + ), + EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ), + LAGR_NON_LOCAL =FACT(statut='f', + ITER_DUAL_MAXI =SIMP(statut='f',typ='I',defaut= 50), + RESI_DUAL_ABSO =SIMP(statut='o',typ='R'), + RESI_PRIM_ABSO =SIMP(statut='o',typ='R'), + R =SIMP(statut='f',typ='R',defaut= 1000.), + ITER_PRIM_MAXI =SIMP(statut='f',typ='I',defaut= 10), + ), +#------------------------------------------------------------------- + PARM_THETA =SIMP(statut='f',typ='R' + ,defaut= 1. ), +#------------------------------------------------------------------- + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +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", + reentrant='n', + UIinfo={"groupes":("Résolution",)}, + BASE_ELAS_FLUI =SIMP(statut='o',typ=melasflu_sdaster ), + EXCIT =FACT(statut='o', + INTE_SPEC_GENE =SIMP(statut='o',typ=tabl_intsp ), + ), + OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 12/09/2005 AUTEUR BOYERE E.BOYERE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +#& RESPONSABLE +DYNA_TRAN_EXPLI=OPER(nom="DYNA_TRAN_EXPLI",op= 69,sd_prod=evol_noli,reentrant='f', + fr="Analyse mecanique dynamique explicite", + regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',),), + MODELE =SIMP(statut='o',typ=modele_sdaster), + CHAM_MATER =SIMP(statut='o',typ=cham_mater), + MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)), + CARA_ELEM =SIMP(statut='f',typ=cara_elem), + EXCIT =FACT(statut='o',max='**', + regles=(PRESENT_ABSENT('FONC_MULT','ACCE'), + PRESENT_PRESENT('ACCE','VITE','DEPL'), + # PRESENT_ABSENT('MULT_APPUI','FONC_MULT'), + ), + TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE", + into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")), + CHARGE =SIMP(statut='o',typ=char_meca), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + DEPL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ACCE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VITE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MULT_APPUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + DIRECTION =SIMP(statut='f',typ='R',max=3), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + ), + AMOR_MODAL =FACT(statut='f', + MODE_MECA =SIMP(statut='f',typ=mode_meca), + AMOR_REDUIT =SIMP(statut='f',typ='R',max='**' ), + NB_MODE =SIMP(statut='f',typ='I',defaut= 9999 ), + REAC_VITE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + PROJ_MODAL =FACT(statut='f', + MODE_MECA =SIMP(statut='f',typ=mode_meca), + NB_MODE =SIMP(statut='f',typ='I',defaut= 9999 ), + ), + VARI_COMM =FACT(statut='f', + regles=(AU_MOINS_UN('IRRA','CORROSION'),), + IRRA =SIMP(statut='f',typ=evol_varc), + CORROSION =SIMP(statut='f',typ=carte_corr_r), + ), + COMP_INCR =C_COMP_INCR(), + COMP_ELAS =FACT(statut='f',max='**', + RELATION =SIMP(statut='o',typ='TXM',defaut="ELAS", + into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC", + "ELAS_POUTRE_GR","CABLE")), + ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), + ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut=1,into=(1,)), + ELAS_VMIS_LINE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), + ELAS_POUTRE_GR =SIMP(statut='c',typ='I',defaut=3,into=(3,)), + CABLE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), + DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ), + regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + ), +#------------------------------------------------------------------- + ETAT_INIT =FACT(statut='f', + regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','SIGM','VARI','VARI_NON_LOCAL',), + EXCLUS('EVOL_NOLI','DEPL',), + EXCLUS('EVOL_NOLI','VITE'), + EXCLUS('EVOL_NOLI','SIGM',), + EXCLUS('EVOL_NOLI','VARI',), + EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), + EXCLUS('NUME_ORDRE','INST'), ), + DEPL =SIMP(statut='f',typ=cham_no_depl_r), + VITE =SIMP(statut='f',typ=cham_no_depl_r), + SIGM =SIMP(statut='f',typ=(cham_elem_sief_r,carte_sief_r)), + VARI =SIMP(statut='f',typ=cham_elem_vari_r), + VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_vanl_r), + EVOL_NOLI =SIMP(statut='f',typ=evol_noli), + NUME_ORDRE =SIMP(statut='f',typ='I'), + INST =SIMP(statut='f',typ='R'), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + NUME_DIDI =SIMP(statut='f',typ='I'), + INST_ETAT_INIT =SIMP(statut='f',typ='R'), + ), +#------------------------------------------------------------------- + INCREMENT =FACT(statut='o', + regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), + EXCLUS('NUME_INST_FIN','INST_FIN'),), + LIST_INST =SIMP(statut='o',typ=listr8_sdaster), + EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE", + into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ), + NUME_INST_INIT =SIMP(statut='f',typ='I'), + INST_INIT =SIMP(statut='f',typ='R'), + NUME_INST_FIN =SIMP(statut='f',typ='I'), + INST_FIN =SIMP(statut='f',typ='R'), + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), + SUBD_PAS =SIMP(statut='f',typ='I',defaut=1), + SUBD_PAS_MINI =SIMP(statut='f',typ='R'), + COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0), + OPTI_LIST_INST =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),), + NOM_CHAM =SIMP(statut='f',typ='TXM',), + NOM_CMP =SIMP(statut='f',typ='TXM',), + VALE =SIMP(statut='f',typ='R'), + ), +#------------------------------------------------------------------- + NEWMARK =FACT(statut='d', + ALPHA =SIMP(statut='f',typ='R',defaut= 0.25), + DELTA =SIMP(statut='f',typ='R',defaut= 0.5), + ), + NEWTON =FACT(statut='c', + REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), + PREDICTION =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE") ), + MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ), + REAC_ITER =SIMP(statut='f',typ='I',defaut= 0), + REAC_ITER_ELAS =SIMP(statut='f',typ='I',defaut=0), + PAS_MINI_ELAS =SIMP(statut='f',typ='R',defaut=0.0E+0), + ), + SOLVEUR =FACT(statut='d', + METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), + b_mult_front =BLOC(condition= "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", + RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), + ), + b_ldlt =BLOC(condition= "METHODE == 'LDLT'",fr="Paramètres de la méthode LDLT", + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), + ), + b_ldlt_mult =BLOC(condition="METHODE == 'LDLT' or METHODE == 'MULT_FRONT'", + fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", + NPREC =SIMP(statut='f',typ='I',defaut= 8 ), + STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ), + ), + b_gcpc =BLOC(condition="METHODE == 'GCPC'",fr="Paramètres de la méthode du gradient conjugué", + PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), + NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0), + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), + RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), + NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), + ), + SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + ), +#------------------------------------------------------------------- + RECH_LINEAIRE =FACT(statut='c', + RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-1 ), + ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3), + ITER_LINE_CRIT =SIMP(statut='f',typ='I',defaut= 20), + PAS_MINI_CRIT =SIMP(statut='f',typ='R',defaut=0.0E+0), + RHO_MIN =SIMP(statut='f',typ='R',defaut=1.0E-2), + RHO_MAX =SIMP(statut='f',typ='R',defaut=1.0E+1), + RHO_EXCL =SIMP(statut='f',typ='R',defaut=0.9E-2), + ), + PILOTAGE =FACT(statut='c', + regles=(EXCLUS('NOEUD','GROUP_NO'),PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), + TYPE =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS","PRED_ELAS_INCR","DEFORMATION","ANA_LIM") ), + COEF_MULT =SIMP(statut='f',typ='R',defaut= 1.0E+0), + ETA_PILO_MAX =SIMP(statut='f',typ='R'), + ETA_PILO_MIN =SIMP(statut='f',typ='R'), + ETA_PILO_R_MAX =SIMP(statut='f',typ='R'), + ETA_PILO_R_MIN =SIMP(statut='f',typ='R'), + PROJ_BORNES =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), + SELECTION =SIMP(statut='f',typ='TXM',defaut="NORM_INCR_DEPL", into=("RESIDU","ANGL_INCR_DEPL","NORM_INCR_DEPL") ), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), + NOM_CMP =SIMP(statut='f',typ='TXM',max='**' ), + ), + CONVERGENCE =FACT(statut='d', + regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),), + SIGM_REFE =SIMP(statut='f',typ='R'), + EPSI_REFE =SIMP(statut='f',typ='R'), + FLUX_THER_REFE =SIMP(statut='f',typ='R'), + FLUX_HYD1_REFE =SIMP(statut='f',typ='R'), + FLUX_HYD2_REFE =SIMP(statut='f',typ='R'), + RESI_REFE_RELA =SIMP(statut='f',typ='R'), + RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), + RESI_GLOB_RELA =SIMP(statut='f',typ='R'), + ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), + ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25), + ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), + RESI_INTE_RELA =SIMP(statut='f',typ='R' + ,defaut= 1.0E-6), + ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), + ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), + RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", + into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), + ), +#------------------------------------------------------------------- + ARCHIVAGE =FACT(statut='f', + regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'), + EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ), + LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), + PAS_ARCH =SIMP(statut='f',typ='I' ), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), + ARCH_ETAT_INIT =SIMP(statut='f',typ='TXM',into=("OUI",)), + NUME_INIT =SIMP(statut='f',typ='I'), + DETR_NUME_SUIV =SIMP(statut='f',typ='TXM',into=("OUI",)), + CHAM_EXCLU =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', + into=("DEPL","SIEF_ELGA","VARI_ELGA","ACCE","VITE","VARI_NON_LOCAL","LANL_ELGA")), + ), + OBSERVATION =FACT(statut='f',max='**', + regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'), + PRESENT_PRESENT('MAILLE','POINT'),), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + +into=("DEPL","VITE","ACCE","SIEF_ELGA","VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU") ), + NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ), + LIST_ARCH =SIMP(statut='f',typ=listis_sdaster), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + PAS_OBSE =SIMP(statut='f',typ='I'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + POINT =SIMP(statut='f',typ='I' ,max='**'), + ), +#------------------------------------------------------------------- + SOLV_NON_LOCAL =FACT(statut='f', + METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), + b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", + RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), + ), + b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), + ), + b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", + fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", + NPREC =SIMP(statut='f',typ='I',defaut= 8 ), + STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", + PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), + NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), + RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), + NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), + ), + ), + LAGR_NON_LOCAL =FACT(statut='f', + ITER_DUAL_MAXI =SIMP(statut='f',typ='I',defaut= 50), + RESI_DUAL_ABSO =SIMP(statut='o',typ='R'), + RESI_PRIM_ABSO =SIMP(statut='o',typ='R'), + R =SIMP(statut='f',typ='R',defaut= 1000.), + ITER_PRIM_MAXI =SIMP(statut='f',typ='I',defaut= 10), + ), +#------------------------------------------------------------------- + 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 30/06/2004 AUTEUR MCOURTOI M.COURTOIS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op= 74,sd_prod=tran_gene, + fr="Réponse dynamique transitoire en coordonnées généralisées par recombinaison modale", + reentrant='f', + UIinfo={"groupes":("Résolution",)}, + regles=(EXCLUS('AMOR_REDUIT','AMOR_GENE','LIST_AMOR'), + PRESENT_ABSENT('MODE_STAT','MODE_CORR'),), + METHODE =SIMP(statut='f',typ='TXM',defaut="EULER", + into=("EULER","NEWMARK","DEVOGE","ADAPT","ITMI") ), + MASS_GENE =SIMP(statut='o',typ=matr_asse_gene_r ), + RIGI_GENE =SIMP(statut='o',typ=matr_asse_gene_r ), + AMOR_GENE =SIMP(statut='f',typ=matr_asse_gene_r ), + AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), + LIST_AMOR =SIMP(statut='f',typ=listr8_sdaster ), + MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc) ), + MODE_CORR =SIMP(statut='f',typ=(mult_elas,mode_stat_acce) ,), + + ETAT_INIT =FACT(statut='f', + regles=(EXCLUS('RESU_GENE','DEPL_INIT_GENE'), + EXCLUS('RESU_GENE','VITE_INIT_GENE'),), + RESU_GENE =SIMP(statut='f',typ=tran_gene ), + b_resu_gene =BLOC(condition = "RESU_GENE != None", + INST_INIT =SIMP(statut='f',typ='R' ), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + ), + DEPL_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ), + VITE_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ), + ), + INCREMENT =FACT(statut='o',max='**', + INST_INIT =SIMP(statut='f',typ='R' ), + INST_FIN =SIMP(statut='o',typ='R' ), + PAS =SIMP(statut='f',typ='R' ), + VERI_PAS =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + VITE_MIN =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ), + COEF_MULT_PAS =SIMP(statut='f',typ='R',defaut= 1.1 ), + COEF_DIVI_PAS =SIMP(statut='f',typ='R',defaut= 1.3333334 ), + PAS_LIMI_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6 ), + NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ), + NMAX_ITER_PAS =SIMP(statut='f',typ='I',defaut= 16 ), + ), + ARCHIVAGE =FACT(statut='f', + regles=(UN_PARMI('LIST_ARCH','PAS_ARCH'),), + LIST_ARCH =SIMP(statut='f',typ=listis_sdaster ), + PAS_ARCH =SIMP(statut='f',typ='I' ), + ), + + NMAX_ITER =SIMP(statut='f',typ='I',defaut= 20 ), + RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), + LAMBDA =SIMP(statut='f',typ='R',defaut= 10. ), + + EXCIT =FACT(statut='f',max='**', + regles=(UN_PARMI('FONC_MULT','COEF_MULT','ACCE'), + PRESENT_PRESENT('ACCE','VITE','DEPL'), + PRESENT_PRESENT('D_FONC_DT','D_FONC_DT2'), + PRESENT_ABSENT('NUME_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_sdaster,nappe_sdaster,formule) ), + COEF_MULT =SIMP(statut='f',typ='R' ), + ACCE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + VITE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DEPL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MULT_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), + DIRECTION =SIMP(statut='f',typ='R',max='**'), + b_loca =BLOC(condition= "DIRECTION != None", + regles=(EXCLUS('NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + ), + CORR_STAT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + D_FONC_DT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + D_FONC_DT2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + CHOC =FACT(statut='f',max='**', + regles=(UN_PARMI('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_sdaster ), + ORIG_OBST =SIMP(statut='f',typ='R',min=3,max=3), + NORM_OBST =SIMP(statut='o',typ='R',min=3,max=3), + ANGL_VRIL =SIMP(statut='f',typ='R' ), + JEU =SIMP(statut='f',typ='R',defaut= 1. ), + DIST_1 =SIMP(statut='f',typ='R',val_min=0.E+0 ), + DIST_2 =SIMP(statut='f',typ='R',val_min=0.E+0 ), + SOUS_STRUC_1 =SIMP(statut='f',typ='TXM' ), + SOUS_STRUC_2 =SIMP(statut='f',typ='TXM' ), + REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL"), + RIGI_NOR =SIMP(statut='f',typ='R' ), + AMOR_NOR =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + RIGI_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + AMOR_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + COULOMB =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + + LAME_FLUIDE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + b_lame =BLOC(condition="LAME_FLUIDE=='OUI'", + ALPHA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + BETA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + CHI =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + DELTA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ), + ), + VERI_CHOC =FACT(statut='f',max='**', + STOP_CRITERE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + SEUIL =SIMP(statut='f',typ='R',defaut= 0.5 ), + ), + FLAMBAGE =FACT(statut='f',max='**', + regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'), + 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_sdaster ), + ORIG_OBST =SIMP(statut='f',typ='R',max='**'), + NORM_OBST =SIMP(statut='o',typ='R',max='**'), + ANGL_VRIL =SIMP(statut='f',typ='R' ), + JEU =SIMP(statut='f',typ='R',defaut= 1. ), + DIST_1 =SIMP(statut='f',typ='R' ), + DIST_2 =SIMP(statut='f',typ='R' ), + REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL"), + RIGI_NOR =SIMP(statut='f',typ='R' ), + FNOR_CRIT =SIMP(statut='f',typ='R' ), + FNOR_POST_FL =SIMP(statut='f',typ='R' ), + RIGI_NOR_POST_FL=SIMP(statut='f',typ='R' ), + ), + ANTI_SISM =FACT(statut='f',max='**', + regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'), + UN_PARMI('NOEUD_2','GROUP_NO_2'), + 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',max='**', + NOEUD =SIMP(statut='o',typ=no), + SOUS_STRUC =SIMP(statut='f',typ='TXM' ), + NOM_CMP =SIMP(statut='f',typ='TXM' ), + RELATION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + RELA_TRANSIS =FACT(statut='f',max='**', + NOEUD =SIMP(statut='o',typ=no), + SOUS_STRUC =SIMP(statut='f',typ='TXM' ), + NOM_CMP =SIMP(statut='f',typ='TXM' ), + RELATION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + RELA_EFFO_VITE =FACT(statut='f',max='**', + NOEUD =SIMP(statut='o',typ=no), + SOUS_STRUC =SIMP(statut='f',typ='TXM' ), + NOM_CMP =SIMP(statut='f',typ='TXM' ), + RELATION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + b_itmi =BLOC(condition = "METHODE=='ITMI'", + regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),), + BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu_sdaster ), + NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), + ETAT_STAT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + PREC_DUREE =SIMP(statut='f',typ='R',defaut= 1.E-2 ), + CHOC_FLUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + NB_MODE =SIMP(statut='f',typ='I' ), + NB_MODE_FLUI =SIMP(statut='f',typ='I' ), + NB_MODE_DIAG =SIMP(statut='f',typ='I' ), + TS_REG_ETAB =SIMP(statut='f',typ='R' ), + ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), + IMPRESSION =FACT(statut='f',max='**', + regles=(EXCLUS('TOUT','NIVEAU'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NIVEAU =SIMP(statut='f',typ='TXM',into=("DEPL_LOC","VITE_LOC","FORC_LOC","TAUX_CHOC") ), + INST_INIT =SIMP(statut='f',typ='R' ), + INST_FIN =SIMP(statut='f',typ='R' ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + ) ; +#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE VABHHTS J.PELLET +ENGENDRE_TEST=PROC(nom="ENGENDRE_TEST",op=178, + UIinfo={"groupes":("Impression",)}, + regles=(UN_PARMI('TOUT','CO'),), + UNITE =SIMP(statut='f',typ='I',defaut=8), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + CO =SIMP(statut='f',typ=assd,validators=NoRepeat(),max='**'), + TYPE_TEST =SIMP(statut='f',typ='TXM',defaut="SOMME",into=("SOMME","RESUME") ), + FORMAT_R =SIMP(statut='f',typ='TXM',defaut="1PE12.5"), + PREC_R =SIMP(statut='f',typ='TXM',defaut="1.E-5"), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +EXEC_LOGICIEL=PROC(nom="EXEC_LOGICIEL",op= 183,fr="", + UIinfo={"groupes":("Impression",)}, + LOGICIEL =SIMP(statut='f',typ='TXM' ), + ARGUMENT =FACT(statut='f',max='**', + NOM_PARA =SIMP(statut='f',typ='TXM' ), + ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +def extr_mode_prod(FILTRE_MODE,**args): + vale=FILTRE_MODE[0]['MODE'] + if AsType(vale) == mode_meca : return mode_meca + if AsType(vale) == mode_meca_c : return mode_meca_c + if AsType(vale) == mode_gene : return mode_gene + raise AsException("type de concept resultat non prevu") + +EXTR_MODE=OPER(nom="EXTR_MODE",op= 168,sd_prod=extr_mode_prod, + reentrant='n', + UIinfo={"groupes":("Résolution",)}, + FILTRE_MODE =FACT(statut='o',max='**', + regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','NUME_MODE','NUME_MODE_EXCLU','FREQ_MIN','CRIT_EXTR',),), + MODE =SIMP(statut='o',typ=(mode_meca,mode_meca_c,mode_gene ) ), + TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), + NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + NUME_MODE_EXCLU =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + FREQ_MIN =SIMP(statut='f',typ='R' ), + CRIT_EXTR =SIMP(statut='f',typ='TXM',into=("MASS_EFFE_UN","MASS_GENE") ), + b_freq_min =BLOC(condition = "FREQ_MIN != None", + FREQ_MAX =SIMP(statut='o',typ='R' ), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + ), + b_crit_extr =BLOC(condition = "CRIT_EXTR != None", + SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + IMPRESSION =FACT(statut='f', + CUMUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + CRIT_EXTR =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",into=("MASS_EFFE_UN","MASS_GENE") ), + ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +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,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),validators=NoRepeat(),max='**', + fr="Liste des paramètres de sensibilité.", + ang="List of sensitivity parameters"), + + ARCHIVAGE =FACT(statut='f', + regles=( UN_PARMI('NUME_ORDRE', 'INST', 'FREQ', 'NUME_MODE', + 'NOEUD_CMP', 'LIST_INST', 'LIST_FREQ', 'LIST_ORDRE', + 'NOM_CAS', 'LIST_ARCH', 'PAS_ARCH' ), + EXCLUS( 'CHAM_EXCLU','NOM_CHAM' ), ), + CHAM_EXCLU =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), + NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO()), + PRECISION =SIMP(statut='f',typ='R',defaut=1.E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),defaut="RELATIF"), + LIST_ARCH =SIMP(statut='f',typ=listis_sdaster), + PAS_ARCH =SIMP(statut='f',typ='I'), + NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), + NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), + NOM_CAS =SIMP(statut='f',typ='TXM'), + ), + + TITRE =SIMP(statut='f',typ='TXM',max='**' ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +def extr_table_prod(TYPE_RESU,**args): + if TYPE_RESU == "MATR_ASSE_GENE_R" : return matr_asse_gene_r + raise AsException("type de concept resultat non prevu") + +EXTR_TABLE=OPER(nom="EXTR_TABLE",op=173,sd_prod=extr_table_prod,reentrant='n', + UIinfo={"groupes":("Résultats et champs",)}, + + TYPE_RESU =SIMP(statut='o',typ='TXM',into=("MATR_ASSE_GENE_R",) ), + + TABLE =SIMP(statut='o',typ=table_sdaster), + + NOM_PARA =SIMP(statut='o',typ='TXM'), + + FILTRE =FACT(statut='f',min=1,max='**', + NOM_PARA =SIMP(statut='o',typ='TXM'), + CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ", + into=("EQ","LT","GT","NE","LE","GE","VIDE", + "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ), + b_vale =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))", + regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),), + VALE =SIMP(statut='f',typ='R'), + VALE_I =SIMP(statut='f',typ='I'), + VALE_C =SIMP(statut='f',typ='C'), + VALE_K =SIMP(statut='f',typ='TXM'),), + + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), + ), + + TITRE =SIMP(statut='f',typ='TXM',max='**' ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +def fact_grad_prod(MATR_ASSE,**args): + if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r + if AsType(MATR_ASSE) == matr_asse_temp_r : return matr_asse_temp_r + if AsType(MATR_ASSE) == matr_asse_pres_r : return matr_asse_pres_r + raise AsException("type de concept resultat non prevu") + +FACT_GRAD=OPER(nom="FACT_GRAD",op=85,sd_prod=fact_grad_prod, + UIinfo={"groupes":("Résolution",)}, + fr="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 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE 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", + 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 23/08/2004 AUTEUR CIBHHLV L.VIVAN +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une étude", + UIinfo={"groupes":("Gestion du travail",)}, + FORMAT_HDF =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f', + typ='TXM',defaut="NON",into=("OUI","NON",) ), + RETASSAGE =SIMP(fr="provoque le retassage de la base GLOBALE", + statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), + PERFORMANCE =SIMP(fr="provoque l'impression d'un résumé des mesures de temps ", + statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ), + INFO_RESU =SIMP(fr="provoque l'impression des informations sur les structures de données", + statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ), + UNITE =SIMP(statut='f',typ='I',defaut=6), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +FONC_FLUI_STRU=OPER(nom="FONC_FLUI_STRU",op= 169,sd_prod=fonction_sdaster, + reentrant='n', + UIinfo={"groupes":("Fonction",)}, + TYPE_FLUI_STRU =SIMP(statut='o',typ=(type_flui_stru) ), +) ; +#& MODIF COMMANDE DATE 22/11/2004 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 form_pyth_ops(self,d): + import types,string + NOM_PARA=self.etape['NOM_PARA'] + VALE =self.etape['VALE'] + if type(NOM_PARA) not in (types.ListType,types.TupleType) : NOM_PARA=[NOM_PARA,] + if self.sd==None : return + texte=string.join(VALE.splitlines()) + + self.sd.setFormule(NOM_PARA,string.strip(texte)) + +FORMULE=FORM(nom="FORMULE",op_init=form_pyth_ops,op=-5, + sd_prod=formule,UIinfo={"groupes":("Fonction",)}, + VALE =SIMP(statut='f',typ='TXM'), + NOM_PARA =SIMP(statut='o',typ='TXM',max='**'), +); +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE CAMBIER S.CAMBIER +GENE_FONC_ALEA=OPER(nom="GENE_FONC_ALEA",op= 118,sd_prod=table_sdaster, + fr="Génération de la fonction temporelle à partir d une matrice interspectrale", + reentrant='n', + UIinfo={"groupes":("Fonction",)}, + INTE_SPEC =SIMP(statut='o',typ=tabl_intsp ), + NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), + INTERPOL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("NON","OUI") ), + b_interpol_oui =BLOC(condition = "INTERPOL == 'OUI' ",fr="Parametres cas interpolation autorisee", + DUREE_TIRAGE =SIMP(statut='f',typ='R' ), + FREQ_INIT =SIMP(statut='f',typ='R' ), + FREQ_FIN =SIMP(statut='f',typ='R' ), + ), + NB_POIN =SIMP(statut='f',typ='I'), + NB_TIRAGE =SIMP(statut='f',typ='I',defaut= 1 ), + INIT_ALEA =SIMP(statut='f',typ='I'), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE CAMBIER S.CAMBIER +GENE_MATR_ALEA=OPER(nom="GENE_MATR_ALEA",op= 27,sd_prod=matr_asse_gene_r, + fr="Generateur de matrice aleatoire", + reentrant='n', + UIinfo={"groupes":("Fonction",)}, + MATR_MOYEN = SIMP(statut='o', typ=matr_asse_gene_r), + COEF_VAR = SIMP(statut='f', typ='R', defaut=0.1), + INIT_ALEA =SIMP(statut='f',typ='I'), +) ; + +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE CAMBIER S.CAMBIER +GENE_VARI_ALEA=OPER(nom="GENE_VARI_ALEA",op= 28,sd_prod=table_sdaster, + fr="Generateur de variable aleatoire", + reentrant='n', + UIinfo={"groupes":("Fonction",)}, + TYPE = SIMP(statut='f', typ='TXM', into=("EXP_TRONQUEE", "EXPONENTIELLE", "GAMMA"), defaut="GAMMA"), + b_gamma =BLOC(condition = "TYPE == 'GAMMA' ",fr="Parametres loi gamma", + VALE_MOY = SIMP(statut='f', typ='R', defaut=1.), + BORNE_INF = SIMP(statut='f', typ='R', defaut=0.), + COEF_VAR = SIMP(statut='f', typ='R', defaut=0.1), + ), + b_expo =BLOC(condition = "TYPE == 'EXPONENTIELLE' ",fr="Parametres loi exponentielle", + VALE_MOY = SIMP(statut='f', typ='R', defaut=0.), + BORNE_INF = SIMP(statut='f', typ='R', defaut=-1.), + ), + b_expo_tronq =BLOC(condition = "TYPE == 'EXP_TRONQUEE' ",fr="Parametres loi exponentielle tronquee", + VALE_MOY = SIMP(statut='f', typ='R', defaut=0.), + BORNE_INF = SIMP(statut='f', typ='R', defaut=-1.), + BORNE_SUP = SIMP(statut='f', typ='R', defaut=1.), + COEF_VAR = SIMP(statut='f', typ='R', defaut=0.1), + ), + INIT_ALEA =SIMP(statut='f',typ='I'), +) ; + +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +IMPR_CLASSI=PROC(nom="IMPR_CLASSI",op= 114, + 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',validators=NoRepeat(),max='**'), + LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster ), + NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), + b_prec_crit =BLOC(condition = "LIST_FREQ != None or FREQ != None", + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", + into=("RELATIF","ABSOLU") ), + ), + IMPRESSION =FACT(statut='f',max='**', + regles=(UN_PARMI('NOEUD','GROUP_NO', ),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), + NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), + ), + AMOR =SIMP(statut='o',typ='R',max='**'), +) ; +#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE VABHHTS J.PELLET +IMPR_CO=PROC(nom="IMPR_CO",op=17, + UIinfo={"groupes":("Impression",)}, + fr="Impression du contenu d un concept utilisateur (pour développeur)", + regles=(UN_PARMI('CO','CHAINE', ),), + UNITE =SIMP(statut='f',typ='I',defaut=8), + 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,validators=NoRepeat(),max='**'), + CHAINE =SIMP(statut='f',typ='TXM'), + POSITION =SIMP(statut='f',typ='I',defaut=1), +) ; +#& MODIF COMMANDE DATE 05/10/2004 AUTEUR CIBHHLV L.VIVAN +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE GNICOLAS G.NICOLAS +IMPR_FICO_HOMA=PROC(nom="IMPR_FICO_HOMA",op= 189, docu="U7.04.01-b", + 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. 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." ), +# +# 3. Le nom local du fichier de configuration HOMARD +# + UNITE_CONF =SIMP(statut='o',typ='I'), +# +# 4. Le nom local du fichier de données HOMARD +# + UNITE_DONN =SIMP(statut='f',typ='I'), +# +# 5. Gestion des éléments autres que des simplexes +# 0 : autres elements refuses (defaut) +# 1 : raffinement sur les simplexes, mais autres acceptes +# 2 : tous +# + NON_SIMPLEXE = SIMP(statut='f',typ='I',defaut=0,into=(0,1,2), + fr="Type d'éléments acceptés.", + ang="Type of authorized elements." ), +# +# 6. Le type de traitement : +# + TRAITEMENT =FACT(statut='o', +# +# 6.1. TROIS CHOIX EXCLUSIFS : +# +# 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 +# + regles=( UN_PARMI('ADAPTATION','UNIFORME','INFORMATION'),), + 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="Information sur un maillage", + ang="Information on a mesh", + into=("OUI",) ), +# +# 6.2. LES CONTRAINTES : +# +# 6.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 +# +# 6.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 +# +# 6.2.3. 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 ) ", + 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 =BLOC(condition = "( UNIFORME != None ) or ( ADAPTATION != None ) ", + fr="Nom MED du maillage en sortie, numero d'iteration", + ang="MED name of the out-mesh, iteration rank", + 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" ), + ) , +# + b_indicateur_d_erreur =BLOC(condition = "ADAPTATION != None", + fr="Indicateur d'erreur", + ang="Error indicator", + regles=(AU_MOINS_UN('NUME_ORDRE','INST','RESULTAT'), + EXCLUS('NUME_ORDRE','INST'), + EXCLUS('NUME_ORDRE','RESULTAT'), + PRESENT_PRESENT('RESULTAT','NOM_CHAM'),), + NOM_MED =SIMP(statut='o',typ='TXM', + fr="Nom MED de l'indicateur d'erreur.", + ang="MED name of error indicator.",), + COMPOSANTE =SIMP(statut='o',typ='TXM', + fr="Nom de la composante de l'indicateur d'erreur retenue.", + ang="Name of the selected component of the error indicator.",), + NUME_ORDRE =SIMP(statut='f',typ='I', + fr="Numero d'ordre de l'indicateur.", + ang="Rank number of the error indicator.",), + INST =SIMP(statut='f',typ='R', + fr="Instant de l'indicateur.", + ang="Instant of the error indicator.",), + b_precision =BLOC(condition="(INST != None)", + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3, + fr="Précision sur le choix de l'instant associé", + ang="Accuracy over instant choice" ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), + fr="Critère de précision sur le choix de l'instant associé", + ang="Accuracy criterium over instant choice" ),), + RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther), + fr="Concept contenant l'indicateur.", + ang="Conceipt wich contains the error indicator.",), + NOM_CHAM =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' )" , + NIVE_MAX =SIMP(statut='f',typ='I', + fr="Niveau maximum de profondeur de raffinement", + ang="Maximum level for refinement"), + ) , +# + b_niveau_minimum =BLOC ( condition = " ( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'DERAFFINEMENT' ) or \ + ( UNIFORME == 'DERAFFINEMENT' )" , + NIVE_MIN =SIMP(statut='f',typ='I', + fr="Niveau minimum de déraffinement", + ang="Minimum level for unrefinement" ), + ) , +# +# 6.3. Le suivi de frontiere eventuel : +# + NOM_MED_MAILLAGE_FRONTIERE =SIMP(statut='f',typ='TXM', + fr="Nom MED du maillage de la frontiere à suivre", + ang="MED name of the boundary mesh" ), +# + b_frontiere_1 =BLOC ( condition = "NOM_MED_MAILLAGE_FRONTIERE != None" , + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', + fr="Groupes définissant la frontière", + ang="Groups which define the boundary" ), + ) , +# + ), +# +# 7. Mise à jour de champs sur le nouveau maillage +# + MAJ_CHAM =FACT(statut='f',max='**', + fr="Mise à jour de champs sur le nouveau maillage.", + ang="Updating of fields over the new mesh.", + regles=(AU_MOINS_UN('NUME_ORDRE','INST','RESULTAT'), + EXCLUS('NUME_ORDRE','INST'), + EXCLUS('NUME_ORDRE','RESULTAT'), + PRESENT_PRESENT('RESULTAT','NOM_CHAM'),), + NOM_MED =SIMP(statut='o',typ='TXM', + fr="Nom MED du champ à mettre à jour.", + ang="MED name of field.",), + NUME_ORDRE =SIMP(statut='f',typ='I', + fr="Numero d'ordre du champ à mettre à jour.", + ang="Rank number of field.",), + INST =SIMP(statut='f',typ='R', + fr="Instant du champ à mettre à jour.", + ang="Instant of field.",), + b_precision =BLOC(condition="(INST != None)", + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3, + fr="Précision sur le choix de l'instant associé", + ang="Accuracy over instant choice" ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), + fr="Critère de précision sur le choix de l'instant associé", + ang="Accuracy criterium over instant choice" ),), + RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther), + fr="Concept contenant le champ à mettre à jour.", + ang="Conceipt wich contains the field.",), + NOM_CHAM =SIMP(statut='f',typ='TXM', + fr="Nom du champ dans le résultat du champ à mettre à jour.", + ang="Name of the field.",), + ), +# +# 8. L'ANALYSE DU MAILLAGE +# + ANALYSE =FACT(statut='f', + fr="Analyse du maillage.", + ang="Mesh analysis.", +# +# 5 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 15/11/2004 AUTEUR MCOURTOI M.COURTOIS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE MCOURTOI M.COURTOIS +from Macro.impr_fonction_ops import impr_fonction_ops + +IMPR_FONCTION=MACRO(nom="IMPR_FONCTION",op=impr_fonction_ops,sd_prod=None, + fr="Impression de fonctions sur fichiers, les valeurs ayant été récupérées par RECU_FONCTION", + UIinfo={"groupes":("Fonction",)}, + FORMAT =SIMP(statut='o',typ='TXM',position='global',defaut='TABLEAU', + into=("TABLEAU","AGRAF","XMGRACE",),), + b_pilote = BLOC(condition = "FORMAT == 'XMGRACE'", + fr="Mots-clés propres à XMGRACE", + PILOTE =SIMP(statut='f',typ='TXM',defaut='', + into=('','POSTSCRIPT','EPS','MIF','SVG','PNM','PNG','JPEG','PDF','INTERACTIF'), + fr="Pilote de sortie, PNG/JPEG/PDF ne sont pas disponibles sur toutes les installations de xmgrace"), + UNITE =SIMP(statut='f',typ='I',val_min=10,val_max=90,defaut=29, + fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"), + ), + b_agraf = BLOC(condition = "FORMAT == 'AGRAF'", + fr="Mots-clés propres à AGRAF", + UNITE =SIMP(statut='o',typ='I',defaut=25, + fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"), + UNITE_DIGR =SIMP(statut='o',typ='I',defaut=26, + fr="Unité logique définissant le fichier dans lequel on écrit les directives Agraf"), + ), + # unite pour TABLEAU dans le bloc de mise en forme spécifique + + COURBE =FACT(statut='o',max='**',fr="Définition de la fonction à tracer", + regles=(UN_PARMI('FONCTION','LIST_RESU','FONC_X','ABSCISSE'),), + FONCTION =SIMP(statut='f',typ=(fonction_sdaster, formule, fonction_c, nappe_sdaster), + fr="Fonction réelle ou complexe", ), + LIST_RESU =SIMP(statut='f',typ=listr8_sdaster, + fr="Liste des ordonnees d'une fonction réelle définie par deux listes", ), + FONC_X =SIMP(statut='f',typ=(fonction_sdaster,formule), + fr="Fonction abscisses d'une fonction paramétrique",), + ABSCISSE =SIMP(statut='f',typ='R',max='**', + fr="Valeurs des abscisses", ), + b_fonction =BLOC(condition = "FONCTION != None", + LIST_PARA =SIMP(statut='f',typ=listr8_sdaster ), + ), + b_fonction_c =BLOC(condition = "AsType(FONCTION) == fonction_c", + fr="Fonction complexe définie par le mot-clé fonction", + PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ), + ), + b_list_resu =BLOC(condition = "LIST_RESU != None", + LIST_PARA =SIMP(statut='o',typ=listr8_sdaster ), + ), + b_fonc_x =BLOC(condition = "FONC_X != None", + FONC_Y =SIMP(statut='o',typ=(fonction_sdaster,formule),fr="Fonction ordonnées d une fonction paramétrique" ), + LIST_PARA =SIMP(statut='f',typ=listr8_sdaster ), + ), + b_vale_resu =BLOC(condition = "ABSCISSE != None", + ORDONNEE =SIMP(statut='o',typ='R',max='**', + fr="Valeurs des ordonnées"), + ), + + # le bloc n'est pas activé (vide) car position n'est pas pris en compte + b_forme =BLOC(condition = "FORMAT != 'TABLEAU'", + fr="Données de mise en forme de la fonction (cf. doc)", + ), + LEGENDE =SIMP(statut='f',typ='TXM', + fr="Légende associée à la fonction" ), + STYLE =SIMP(statut='f',typ='I',val_min=0, + fr="Style de la ligne représentant la fonction",), + COULEUR =SIMP(statut='f',typ='I',val_min=0, + fr="Couleur associée à la fonction",), + MARQUEUR =SIMP(statut='f',typ='I',val_min=0, + fr="Type du marqueur associé à la fonction",), + FREQ_MARQUEUR =SIMP(statut='f',typ='I',defaut=0, + fr="Fréquence d impression du marqueur associé à la fonction", ), + # fin bloc b_forme + TRI =SIMP(statut='f',typ='TXM',defaut="N", + fr="Choix du tri effectué sur les abscisses ou sur les ordonnées", + into=("N","X","Y","XY","YX") ), + ), + # Mise en page du tableau ou du graphique + b_tableau = BLOC(condition = "FORMAT == 'TABLEAU'", + fr="Mots-clés propres au format Tableau", + UNITE =SIMP(statut='o',typ='I',defaut=8, + fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"), + TITRE =SIMP(statut='f',typ='TXM', + fr="Titre associé au graphique" ), + SOUS_TITRE =SIMP(statut='f',typ='TXM', + fr="Sous-titre du graphique" ), + SEPARATEUR =SIMP(statut='f',typ='TXM',defaut=' ', + fr="Séparateur des colonnes du tableau (ex : ' ', ';'...)"), + COMMENTAIRE =SIMP(statut='f',typ='TXM',defaut='#', + fr="Caractère indiquant au traceur de fonction que la ligne peut etre ignorée"), + DEBUT_LIGNE =SIMP(statut='f',typ='TXM',defaut='', + fr="Caractère de debut de ligne"), + FIN_LIGNE =SIMP(statut='f',typ='TXM',defaut='\n', + fr="Caractère de fin de ligne"), + ), + b_graphique = BLOC(condition = "FORMAT != 'TABLEAU'", + fr="Mise en page du graphique", + TITRE =SIMP(statut='f',typ='TXM', + fr="Titre associé au graphique" ), + SOUS_TITRE =SIMP(statut='f',typ='TXM', + fr="Sous-titre du graphique" ), + BORNE_X =SIMP(statut='f',typ='R',min=2,max=2, + fr="Intervalles de variation des abscisses"), + BORNE_Y =SIMP(statut='f',typ='R',min=2,max=2, + fr="Intervalles de variation des ordonnées"), + ECHELLE_X =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"), + fr="Type d'échelle pour les abscisses" ), + ECHELLE_Y =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"), + fr="Type d'échelle pour les ordonnées" ), + GRILLE_X =SIMP(statut='f',typ='R',max=1,val_min=0., + fr="Pas du quadrillage vertical" ), + GRILLE_Y =SIMP(statut='f',typ='R',max=1,val_min=0., + fr="Pas du quadrillage horizontal" ), + LEGENDE_X =SIMP(statut='f',typ='TXM', + fr="Légende associée à l'axe des abscisses" ), + LEGENDE_Y =SIMP(statut='f',typ='TXM', + fr="Légende associée à l'axe des ordonnées" ), + ), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 17/11/2005 AUTEUR NICOLAS O.NICOLAS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +IMPR_GENE=PROC(nom="IMPR_GENE",op= 157, + fr="Calcul du dommage subi par une structure soumise à une sollicitation de type aléatoire", + UIinfo={"groupes":("Impression",)}, + GENE =FACT(statut='o',max='**', + regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', + 'LIST_INST','LIST_FREQ','TOUT_MODE','TOUT_INST','LIST_ORDRE'), + EXCLUS('TOUT_MODE','NUME_ORDRE','INST','FREQ','NUME_MODE', + 'LIST_INST','LIST_FREQ','TOUT_ORDRE','TOUT_INST','LIST_ORDRE'), + EXCLUS('TOUT_INST','NUME_ORDRE','INST','FREQ','NUME_MODE', + 'LIST_INST','LIST_FREQ','TOUT_ORDRE','LIST_ORDRE'), + EXCLUS('TOUT_CMP_GENE','NUME_CMP_GENE'), + EXCLUS('TOUT_CHAM','NOM_CHAM'), + EXCLUS('TOUT_PARA','NOM_PARA'),), +# faut-il faire des blocs selon le type de RESU_GENE + RESU_GENE =SIMP(statut='o',typ=(vect_asse_gene, tran_gene, mode_gene, harm_gene)), + FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT",into=("RESULTAT",) ), + UNITE =SIMP(statut='f',typ='I',defaut=8), + TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster ), + TOUT_MODE =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), + TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ), + FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), + 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 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +IMPR_JEVEUX=PROC(nom="IMPR_JEVEUX",op=16, + 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','$$MARQ', + '$$DOCU','$$ORIG','$$RNOM','$$LTYP','$$LONG', + '$$LONO','$$DATE','$$LUTI','$$HCOD','$$INDX', + '$$TLEC','$$TECR','$$IADM','$$ACCE','$$USADI') ), + ), + b_repertoire =BLOC(condition = "(ENTITE=='REPERTOIRE')", + CLASSE =SIMP(statut='f',typ='TXM',into=('G','V','L',' '),defaut=' '), + ), + b_disque =BLOC(condition = "(ENTITE=='DISQUE')", + CLASSE =SIMP(statut='f',typ='TXM' ,into=('G','V','L',' '),defaut=' '), + ), + IMPRESSION =FACT(statut='f', + NOM =SIMP(statut='f',typ='TXM' ), + UNITE =SIMP(statut='f',typ='I'), + ), + COMMENTAIRE =SIMP(statut='f',typ='TXM' ), +) ; +#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +IMPR_MACR_ELEM=PROC(nom="IMPR_MACR_ELEM",op= 160, + UIinfo={"groupes":("Impression",)}, + MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ), + FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS", + into=("MISS_3D","IDEAS","CADYRO","PLEXUS") ), + + b_plexus =BLOC(condition = "FORMAT == 'IDEAS'", + UNITE =SIMP(statut='f',typ='I',defaut=30), + VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ), + ), + + b_ideas =BLOC(condition = "FORMAT == 'PLEXUS'", + UNITE =SIMP(statut='f',typ='I',defaut=30), + VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ), + ), + + b_miss_3d =BLOC(condition = "FORMAT == 'MISS_3D'", + regles=(EXCLUS('AMOR_REDUIT','LIST_AMOR'),), + UNITE =SIMP(statut='f',typ='I',defaut= 26 ), + SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'), + AMOR_REDUIT =SIMP(statut='f',typ='R' ,max='**'), + LIST_AMOR =SIMP(statut='f',typ=listr8_sdaster ), + GROUP_MA_INTERF =SIMP(statut='o',typ=grma ,max='**'), + GROUP_MA_FLU_STR=SIMP(statut='f',typ=grma,max='**'), + GROUP_MA_FLU_SOL=SIMP(statut='f',typ=grma,max='**'), + GROUP_MA_SOL_SOL=SIMP(statut='f',typ=grma,max='**'), + 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 23/08/2004 AUTEUR CIBHHLV L.VIVAN +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +IMPR_MATRICE=PROC(nom="IMPR_MATRICE",op= 159, + fr="Impression des matrices élémentaires et des matrices assemblées", + UIinfo={"groupes":("Impression",)}, + regles=(AU_MOINS_UN('MATR_ELEM','MATR_ASSE'),), + + MATR_ELEM =FACT(statut='f',max='**', + UNITE =SIMP(statut='f',typ='I' ), + FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS", + into=("IDEAS","RESULTAT") ), + b_format_resultat =BLOC(condition="FORMAT=='RESULTAT'",fr="unité logique d'impression au format RESULTAT", + UNITE =SIMP(statut='f',typ='I',defaut=8), + ), + b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="unité logique d'impression et version IDEAS", + UNITE =SIMP(statut='f',typ='I',defaut=30), + VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 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 ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), + NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), + GRAIN =SIMP(statut='f',typ='TXM',defaut="VALEUR", + into=("VALEUR","NOEUD","MAILLE") ), + NB_CHIFFRE =SIMP(statut='f',typ='I',defaut= 4 ), + ), + MATR_ASSE =FACT(statut='f',max='**', + UNITE =SIMP(statut='f',typ='I' ), + 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_gd), +# Quelle regle pour TOUT, NOEUD, GROUP_NO, MAILLE, GROUP_MA + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), + 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 30/06/2004 AUTEUR MCOURTOI M.COURTOIS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +IMPR_MISS_3D=PROC(nom="IMPR_MISS_3D",op= 162, + 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',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_sdaster,nappe_sdaster,formule) ), + COEF_MULT =SIMP(statut='f',typ='R' ), + ), + EXCIT_SOL =FACT(statut='f',max='**', + DIRECTION =SIMP(statut='o',typ='R',min=3,max=3), + FONC_SIGNAL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL", + into=("DEPL","VITE","ACCE","FORC",) ), + ), + INST_INIT =SIMP(statut='f',typ='R' ), + INST_FIN =SIMP(statut='f',typ='R' ), + FREQ_INIT =SIMP(statut='f',typ='R' ), + FREQ_FIN =SIMP(statut='f',typ='R' ), + PAS =SIMP(statut='o',typ='R' ), + UNITE =SIMP(statut='f',typ='I',defaut= 26 ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 16/06/2004 AUTEUR DURAND C.DURAND +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE D6BHHAM A.M.DONORE +# +IMPR_OAR =PROC(nom="IMPR_OAR",op= 40, + fr="Impression au format OAR", + UIinfo={"groupes":("Impression",)}, + CARA_ELEM =SIMP(statut='f',typ=cara_elem ), + MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), + MODELE =SIMP(statut='o',typ=modele_sdaster ), + MAILLE =SIMP(statut='o',typ=ma ,validators=NoRepeat(),max=2 ), + NOEUD =SIMP(statut='o',typ=no ,validators=NoRepeat() ), + + CHARGE =FACT(statut='o',max='**', + + NUM_CHAR =SIMP(statut='o',typ='I'), + TEMP_NOEUD =SIMP(statut='f',typ='R',defaut=20.), + TYPE =SIMP(statut='f',typ='TXM',defaut="DILA", + into=("POIDS","DILA","SEISME","DEPL","EFFO","STRATIF","CONDITIONNEL","COMBINAISON") ), + NATURE =SIMP(statut='f',typ='TXM',defaut="PRIMAIRE", + into=("PRIMAIRE","SECONDAIRE","TOTAL") ), + SIGNE =SIMP(statut='f',typ='TXM',defaut="S", + into=("S","NS") ), + RESULTAT =SIMP(statut='o',typ=resultat_sdaster),# CO() sd a creer !!! + ), + + + UNITE =SIMP(statut='f',typ='I',defaut=38), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 11/05/2005 AUTEUR CIBHHLV L.VIVAN +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +IMPR_RESU=PROC(nom="IMPR_RESU",op=39, + UIinfo={"groupes":("Impression",)}, + fr="Impression du résultat d un calcul (différents formats)", + MODELE =SIMP(statut='f',typ=modele_sdaster), + + FORMAT =SIMP(statut='f',typ='TXM',position='global',defaut="RESULTAT", + into=("RESULTAT","IDEAS","ASTER","CASTEM","ENSIGHT","MED","GMSH") ), + + b_format_resultat =BLOC(condition="FORMAT=='RESULTAT'",fr="unité logique d'impression au format RESULTAT", + UNITE =SIMP(statut='f',typ='I',defaut=8), + ), + + b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="unité logique d'impression et version IDEAS", + UNITE =SIMP(statut='f',typ='I',defaut=30), + VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), + ), + + b_format_aster =BLOC(condition="FORMAT=='ASTER'",fr="unité logique d'impression au format ASTER", + UNITE =SIMP(statut='f',typ='I',defaut=26), + ), + + b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="unité logique d'impression et version CASTEM", + UNITE =SIMP(statut='f',typ='I',defaut=37), + NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)), + ), + + b_format_ensight =BLOC(condition="FORMAT=='ENSIGHT'",fr="unité logique d'impression au format ENSIGHT", + UNITE =SIMP(statut='f',typ='I',defaut=31), + ), + + b_format_med =BLOC(condition="FORMAT=='MED'",fr="unité logique d'impression au format MED", + UNITE =SIMP(statut='f',typ='I',defaut=80), + ), + + b_format_gmsh =BLOC(condition="FORMAT=='GMSH'",fr="unité logique d'impression et version GMSH", + UNITE =SIMP(statut='f',typ='I',defaut=19), + VERSION =SIMP(statut='f',typ='R',defaut=1.2,into=(1.0,1.2)), + ), + + RESU =FACT(statut='o',max='**', + + regles=(AU_MOINS_UN('CHAM_GD','RESULTAT','MAILLAGE'), + EXCLUS('CHAM_GD','RESULTAT'),), + MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster,squelette)), + INFO_MAILLAGE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + CHAM_GD =SIMP(statut='f',typ=cham_gd_sdaster), + RESULTAT =SIMP(statut='f',typ=resultat_sdaster),# CO() sd a creer !!! + + b_sensibilite =BLOC(condition="RESULTAT != None", + fr="Définition des paramètres de sensibilité", + ang="Definition of sensitivity parameters", + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des paramètres de sensibilité.", + ang="List of sensitivity parameters"),), + + b_extrac =BLOC(condition="RESULTAT != None", + fr="extraction d un champ de grandeur", + regles=(EXCLUS('TOUT_CHAM','NOM_CHAM'), + EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP', + 'LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS','ANGL'),), + TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), + NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO()), + + TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), + NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), + NOM_CAS =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), + ANGL =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + + b_acce_reel =BLOC(condition="(FREQ != None)or(LIST_FREQ != None)or(INST != None)or(LIST_INST != None)", + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + ), + ), +### + b_parametres =BLOC(condition="""(RESULTAT != None)and(FORMAT == 'RESULTAT')""", + regles=(EXCLUS('TOUT_PARA','NOM_PARA'),), + INFO_RESU =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI","NON",) ), + NOM_PARA =SIMP(statut='f',typ='TXM',max='**'), + FORM_TABL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON","EXCEL") ), + ), +### + b_cmp=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and\ + ((FORMAT == 'CASTEM')or(FORMAT == 'RESULTAT')or(FORMAT == 'IDEAS')or(FORMAT == 'ENSIGHT')or(FORMAT == 'MED'))""", + fr="sélection des composantes", + regles=(EXCLUS('TOUT_CMP','NOM_CMP'),), + TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), + ), +### + b_gmsh=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and((FORMAT == 'GMSH'))""", + fr="sélection des composantes et des entités toplogiques", + NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + ), +### + b_topologie=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and\ + ((FORMAT == 'RESULTAT')or(FORMAT == 'IDEAS'))""", + fr="sélection des entités toplogiques", + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + ), +### + b_valeurs =BLOC(condition="(FORMAT == 'RESULTAT')", + fr="sélection sur les valeurs", + VALE_MAX =SIMP(statut='f',typ='TXM',into=("OUI",) ), + VALE_MIN =SIMP(statut='f',typ='TXM',into=("OUI",) ), + BORNE_SUP =SIMP(statut='f',typ='R'), + BORNE_INF =SIMP(statut='f',typ='R'), + IMPR_COOR =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + FORMAT_R =SIMP(statut='f',typ='TXM',defaut="1PE12.5"), + ), + + SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'), + ), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +IMPR_STURM=PROC(nom="IMPR_STURM",op=32,fr="Calculer et imprimer le nombre de valeurs propres dans un intervalle donné", + UIinfo={"groupes":("Résolution",)}, + MATR_A =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ), + MATR_B =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ), + TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE",into=("MODE_FLAMB","DYNAMIQUE"), + fr="Type d analyse" ), + b_dynamique =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'", + fr="Recheche du nombre de fréquences propres", + FREQ_MIN =SIMP(statut='f',typ='R',defaut= 0.E+0 ,fr="Borne inférieure de l intervalle" ), + FREQ_MAX =SIMP(statut='o',typ='R',fr="Borne supérieure de l intervalle" ), + ), + b_mode_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'", + fr="Recherche du nombre de charges critiques", + CHAR_CRIT_MIN =SIMP(statut='o',typ='R',fr="Borne inférieure de l intervalle" ), + CHAR_CRIT_MAX =SIMP(statut='o',typ='R',fr="Borne supérieure de l intervalle" ), + ), + NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8 ), + NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ), + UNITE =SIMP(statut='f',typ='I',defaut=8), + PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 1.E-2 ), + SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2 ), +) ; +#& MODIF COMMANDE DATE 15/11/2004 AUTEUR MCOURTOI M.COURTOIS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE MCOURTOI M.COURTOIS +from Macro.impr_table_ops import impr_table_ops + +IMPR_TABLE=MACRO(nom="IMPR_TABLE",op=impr_table_ops,sd_prod=None, + UIinfo={"groupes":("Impression",)}, + fr="Impression d un concept de type table_sdaster", + TABLE =SIMP(statut='o',typ=table_sdaster), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des paramètres de sensibilité.", + ang="List of sensitivity parameters"), + FORMAT =SIMP(statut='f',typ='TXM',defaut="TABLEAU", + into=("TABLEAU","ASTER","TABLEAU_CROISE","AGRAF","XMGRACE",),), + b_pilote =BLOC(condition = "FORMAT == 'XMGRACE'", + fr="Mots-clés propres à XMGRACE", + PILOTE =SIMP(statut='f',typ='TXM',defaut='', + into=('','POSTSCRIPT','EPS','MIF','SVG','PNM','PNG','JPEG','PDF','INTERACTIF'), + fr="Pilote de sortie, PNG/JPEG/PDF ne sont pas disponibles sur toutes les installations de xmgrace"), + UNITE =SIMP(statut='f',typ='I',val_min=10,val_max=90,defaut=29, + fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"), + ), + b_unite =BLOC(condition = "FORMAT != 'XMGRACE'", + UNITE =SIMP(statut='f',typ='I',defaut=8, + fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"), + ), + FILTRE =FACT(statut='f',max='**', + NOM_PARA =SIMP(statut='o',typ='TXM'), + CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ", + into=("EQ","LT","GT","NE","LE","GE","VIDE", + "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI"),), + b_vale =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))", + regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),), + VALE =SIMP(statut='f',typ='R'), + VALE_I =SIMP(statut='f',typ='I'), + VALE_C =SIMP(statut='f',typ='C'), + VALE_K =SIMP(statut='f',typ='TXM'), + ), + b_crit =BLOC(condition = "CRIT_COMP in ('EQ','NE')", + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), + ), + ), + TRI =FACT(statut='f', + NOM_PARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'), + ORDRE =SIMP(statut='f',typ='TXM',defaut="CROISSANT", # max='**', + into=("CROISSANT","DECROISSANT") ), + ), + PAGINATION =SIMP(statut='f',typ='TXM',max='**'), + FORMAT_R =SIMP(statut='f',typ='TXM',defaut="E12.5"), + FORMAT_C =SIMP(statut='f',typ='TXM',defaut="MODULE_PHASE", + into=("MODULE_PHASE","REEL_IMAG") ), + NOM_PARA =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), + IMPR_FONCTION =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + + # mise en forme pour les formats qui passent par Graph + b_forme =BLOC(condition = "FORMAT == 'XMGRACE'", + fr="Données de mise en forme du graphique", + # pour la courbe + LEGENDE =SIMP(statut='f',typ='TXM', + fr="Légende associée à la fonction" ), + STYLE =SIMP(statut='f',typ='I',val_min=0, + fr="Style de la ligne représentant la fonction",), + COULEUR =SIMP(statut='f',typ='I',val_min=0, + fr="Couleur associée à la fonction",), + MARQUEUR =SIMP(statut='f',typ='I',val_min=0, + fr="Type du marqueur associé à la fonction",), + FREQ_MARQUEUR =SIMP(statut='f',typ='I',defaut=0, + fr="Fréquence d impression du marqueur associé à la fonction", ), + # format du graphique + BORNE_X =SIMP(statut='f',typ='R',min=2,max=2, + fr="Intervalles de variation des abscisses"), + BORNE_Y =SIMP(statut='f',typ='R',min=2,max=2, + fr="Intervalles de variation des ordonnées"), + ECHELLE_X =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"), + fr="Type d'échelle pour les abscisses" ), + ECHELLE_Y =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"), + fr="Type d'échelle pour les ordonnées" ), + GRILLE_X =SIMP(statut='f',typ='R',max=1,val_min=0., + fr="Pas du quadrillage vertical" ), + GRILLE_Y =SIMP(statut='f',typ='R',max=1,val_min=0., + fr="Pas du quadrillage horizontal" ), + LEGENDE_X =SIMP(statut='f',typ='TXM', + fr="Légende associée à l'axe des abscisses" ), + LEGENDE_Y =SIMP(statut='f',typ='TXM', + fr="Légende associée à l'axe des ordonnées" ), + ), + + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), +) +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +INCLUDE=MACRO(nom="INCLUDE",op=ops.build_include, + UIinfo={"groupes":("Gestion du travail",)}, + fr="Débranchement vers un fichier de commandes secondaires", + sd_prod=ops.INCLUDE,op_init=ops.INCLUDE_context,fichier_ini=1, + UNITE = SIMP(statut='o',typ='I'), + INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)), +); +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +INCLUDE_MATERIAU=MACRO(nom="INCLUDE_MATERIAU",op=-14, + 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',max=99, + COMPOR =SIMP(statut='o',typ='TXM' ), + TEMP_EVAL =SIMP(statut='o',typ='R' ), + ), + UNITE_LONGUEUR =SIMP(statut='f',typ='TXM',into=("M","MM"),defaut="M" ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE D6BHHJP J.P.LEFEBVRE +INFO_EXEC_ASTER=OPER(nom="INFO_EXEC_ASTER",op=35,sd_prod=table_sdaster, + fr="Récupère différentes informations propres à l'exécution en cours", + reentrant='n', + UIinfo={"groupes":("Gestion du travail",)}, + + regles=(), + LISTE_INFO =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=3, + into=("CPU_RESTANT","UNITE_LIBRE","ETAT_UNITE"),), + b_etat_unite =BLOC(condition = "'ETAT_UNITE' in LISTE_INFO", + regles=(UN_PARMI('UNITE','FICHIER'),), + UNITE =SIMP(statut='f',typ='I',val_min=1,val_max=99,max=1, + fr="Unité logique dont on veut obtenir l'état",), + FICHIER =SIMP(statut='f',typ='TXM',validators=LongStr(1,255), + fr="Nom du fichier dont on veut obtenir l'état",), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE G8BHHXD X.DESROCHES +INTE_MAIL_2D=OPER(nom="INTE_MAIL_2D",op=50,sd_prod=courbe_sdaster, + UIinfo={"groupes":("Post traitements",)}, + fr="Définition d une courbe sur un maillage 2D",reentrant='n', + + MAILLAGE =SIMP(statut='o',typ=(maillage_sdaster) ), + + regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('DEFI_SEGMENT','DEFI_ARC','DEFI_CHEMIN'), + PRESENT_ABSENT('DEFI_CHEMIN','DEFI_SEGMENT','DEFI_ARC'), + PRESENT_ABSENT('DEFI_SEGMENT','NOEUD_ORIG','GROUP_NO_ORIG'), + PRESENT_ABSENT('DEFI_ARC','NOEUD_ORIG','GROUP_NO_ORIG'), + EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'), + EXCLUS('DEFI_CHEMIN','DEFI_SEGMENT'), + EXCLUS('DEFI_CHEMIN','DEFI_ARC'),), + + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + + DEFI_SEGMENT =FACT(statut='f',max='**', + regles=(UN_PARMI('ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'), + UN_PARMI('EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),), + ORIGINE =SIMP(statut='f',typ='R',min=2,max=2), + NOEUD_ORIG =SIMP(statut='f',typ=no,), + GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), + EXTREMITE =SIMP(statut='f',typ='R',min=2,max=2), + NOEUD_EXTR =SIMP(statut='f',typ=no,), + GROUP_NO_EXTR =SIMP(statut='f',typ=grno,), + ), + + DEFI_ARC =FACT(statut='f',max='**', + regles=(UN_PARMI('CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE'), + UN_PARMI('RAYON','ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'), + UN_PARMI('RAYON','EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'), + PRESENT_PRESENT('RAYON','SECTEUR'),), + CENTRE =SIMP(statut='f',typ='R',min=2,max=2), + NOEUD_CENTRE =SIMP(statut='f',typ=no,), + GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,), + RAYON =SIMP(statut='f',typ='R',val_min=0.E+0), + SECTEUR =SIMP(statut='f',typ='R',min=2,max=2, + val_min=-180.E+0,val_max=180E+0), + ORIGINE =SIMP(statut='f',typ='R',min=2,max=2), + NOEUD_ORIG =SIMP(statut='f',typ=no,), + GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), + EXTREMITE =SIMP(statut='f',typ='R',min=2,max=2), + NOEUD_EXTR =SIMP(statut='f',typ=no,), + GROUP_NO_EXTR =SIMP(statut='f',typ=grno,), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", + into=("RELATIF","ABSOLU",) ), + ), + + DEFI_CHEMIN =FACT(statut='f',max='**', + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + ), + + NOEUD_ORIG =SIMP(statut='f',typ=no,), + GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE G8BHHXD X.DESROCHES +INTE_MAIL_3D=OPER(nom="INTE_MAIL_3D",op=96,sd_prod=surface_sdaster, + UIinfo={"groupes":("Post traitements",)}, + fr="Définition d un chemin sur un maillage 3D",reentrant='n', + MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + DEFI_SEGMENT =FACT(statut='o',max='**', + regles=(UN_PARMI('ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'), + UN_PARMI('EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),), + ORIGINE =SIMP(statut='f',typ='R',min=3,max=3), + NOEUD_ORIG =SIMP(statut='f',typ=no,), + GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), + EXTREMITE =SIMP(statut='f',typ='R',min=3,max=3), + NOEUD_EXTR =SIMP(statut='f',typ=no,), + GROUP_NO_EXTR =SIMP(statut='f',typ=grno,), + ), + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +def lire_champ_prod(TYPE_CHAM=None,**args): +# Remarque : si cette liste évolue, il faut penser à mettre à jour son +# homologue dans macr_adap_mail + import string +# + if TYPE_CHAM[0:5] == "NOEU_" : return eval("cham_no_"+string.lower(TYPE_CHAM[5:])) + if TYPE_CHAM == "ELEM_G_DEPL_R" : return cham_elem_g_depl + if TYPE_CHAM[0:5] == "ELEM_" : return eval("cham_elem_"+string.lower(TYPE_CHAM[5:])) + if TYPE_CHAM == "ELNO_G_DEPL_R" : return cham_elem_g_depl + if TYPE_CHAM[0:5] == "ELNO_" : return eval("cham_elem_"+string.lower(TYPE_CHAM[5:])) + if TYPE_CHAM == "ELGA_G_DEPL_R" : return cham_elem_g_depl + if TYPE_CHAM[0:5] == "ELGA_" : return eval("cham_elem_"+string.lower(TYPE_CHAM[5:])) + 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.", + reentrant='n', + MAILLAGE =SIMP(statut='o',typ=maillage_sdaster,), + FORMAT =SIMP(statut='f',typ='TXM',defaut="MED",into=("MED",),), + UNITE =SIMP(statut='f',typ='I',defaut= 81,), + b_format =BLOC(condition = "FORMAT == 'MED'", + regles=( UN_PARMI('NOM_CMP_IDEM','NOM_CMP'), + PRESENT_PRESENT('NOM_CMP','NOM_CMP_MED' ), + EXCLUS('NUME_ORDRE','INST'), + EXCLUS('NUME_PT','INST'),), + NOM_MED =SIMP(statut='o',typ='TXM', ), + NOM_CMP_IDEM =SIMP(statut='f',typ='TXM',into=("OUI",), ), + NOM_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',), + NOM_CMP_MED =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',), + NUME_PT =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**',), + NUME_ORDRE =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**', + fr="Numero d ordre du champ à lire",ang="Rank of the field to be read" ), + INST =SIMP(statut='f',typ='R',fr="Instant associé",ang="Instant" ), +# + b_precision =BLOC(condition="(INST != None)", + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3, + fr="Précision sur le choix de l'instant associé",ang="Accuracy over instant choice" ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), + fr="Critère de précision sur le choix de l'instant associé", + ang="Accuracy criterium over instant choice" ),), +# + NOM_MAIL_MED =SIMP(statut='f',typ='TXM',), + ), +# Remarque : si cette liste évolue, il faut penser à mettre à jour son +# homologue dans macr_adap_mail + TYPE_CHAM =SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO()), + b_modele =BLOC(condition = "TYPE_CHAM!=None and TYPE_CHAM[0:2] == 'EL'", + MODELE =SIMP(statut='o',typ=modele_sdaster, ), + ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 10/10/2005 AUTEUR MCOURTOI M.COURTOIS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +from Macro.lire_fonction_ops import lire_fonction_ops + +def lire_fonction_prod(self,TYPE,**args): + if (TYPE == 'FONCTION') : return fonction_sdaster + elif (TYPE == 'FONCTION_C'): return fonction_c + elif (TYPE == 'NAPPE' ) : return nappe_sdaster + raise AsException("type de concept resultat non prevu") + +LIRE_FONCTION=MACRO(nom="LIRE_FONCTION",op=lire_fonction_ops,sd_prod=lire_fonction_prod, + fr="Lecture d une fonction ou d une nappe dans un fichier ", + reentrant='n', + UIinfo={"groupes":("Fonction",)}, + FORMAT =SIMP(statut='f',typ='TXM',into=("LIBRE",),defaut="LIBRE" ), + TYPE =SIMP(statut='f',typ='TXM',into=("FONCTION","FONCTION_C","NAPPE"),defaut="FONCTION" ), + SEPAR =SIMP(statut='f',typ='TXM',into=("None",",",";","/"),defaut="None" ), + INDIC_PARA =SIMP(statut='f',typ='I',min=2,max=2,defaut=[1,1]), + b_fonction =BLOC(condition = "TYPE=='FONCTION' ", + INDIC_RESU =SIMP(statut='f',typ='I',min=2,max=2,defaut=[1,2]), ), + b_fonction_c =BLOC(condition = "TYPE=='FONCTION_C' ", + FORMAT_C =SIMP(statut='f',typ='TXM',defaut="REEL_IMAG",into=("REEL_IMAG","MODULE_PHASE") ), + b_reel_imag =BLOC(condition = "FORMAT_C=='REEL_IMAG' ", + INDIC_REEL =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,2]), + INDIC_IMAG =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,3]), ) , + b_modu_phas =BLOC(condition = "FORMAT_C=='MODULE_PHASE' ", + INDIC_MODU =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,2]), + INDIC_PHAS =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,3]), ), ), + b_nappe =BLOC(condition = "TYPE=='NAPPE' ", + NOM_PARA_FONC =SIMP(statut='o',typ='TXM',), + INDIC_ABSCISSE =SIMP(statut='o',typ='I',min=2,max=2,), + INTERPOL_FONC =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), + PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), + PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), + DEFI_FONCTION =FACT(statut='f',max='**', + INDIC_RESU =SIMP(statut='o',typ='I',min=2,max=2,),), ), + UNITE =SIMP(statut='o',typ='I' ), + NOM_PARA =SIMP(statut='o',typ='TXM',), + NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"), + INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), + PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), + PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), + VERIF =SIMP(statut='f',typ='TXM',defaut="CROISSANT",into=("CROISSANT","NON") ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 20/09/2004 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.lire_inte_spec_ops import lire_inte_spec_ops + +LIRE_INTE_SPEC=MACRO(nom="LIRE_INTE_SPEC",op=lire_inte_spec_ops,sd_prod=tabl_intsp, + fr="Lecture sur un fichier externe de fonctions complexes pour créer une matrice interspectrale", + reentrant='n', + UIinfo={"groupes":("Fonction",)}, + UNITE =SIMP(statut='o',typ='I' ), + FORMAT =SIMP(statut='f',typ='TXM',defaut="MODULE_PHASE",into=("REEL_IMAG","MODULE_PHASE") ), + NOM_PARA =SIMP(statut='f',typ='TXM',defaut="FREQ", + into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP", + "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC",) ), + NOM_RESU =SIMP(statut='f',typ='TXM',defaut="DSP" ), + INTERPOL =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ), + PROL_DROITE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), + PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE VABHHTS J.PELLET +LIRE_MAILLAGE=OPER(nom="LIRE_MAILLAGE",op= 1,sd_prod=maillage_sdaster, + fr="Lecture d'un fichier de maillage", + ang="Readings of a mesh file", + reentrant='n', + UIinfo={"groupes":("Maillage",)}, +# + UNITE =SIMP(statut='f',typ='I',defaut= 20 ), +# + FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","MED"), + fr="Format du fichier : ASTER ou MED.", + ang="Format of the file : ASTER or MED.",), +# + ABSC_CURV =FACT(statut='f',min=0, + TOUT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + ), +# + VERI_MAIL =FACT(statut='d', + VERIF =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + APLAT =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), + ), +# + b_format_med =BLOC( condition = " ( FORMAT == 'MED' ) " , + fr="Informations complémentaires pour la lecture MED.", + ang="Further information for MED readings.", +# +# Pour une lecture dans un fichier MED, on peut préciser le nom sous lequel +# le maillage y a été enregistré. Par défaut, on va le chercher sous le nom du concept à créer. +# + NOM_MED = SIMP(statut='f',typ='TXM', + fr="Nom du maillage dans le fichier MED.", + ang="Name of the mesh into the MED file.",), +# + INFO_MED = SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), +# + ) , +# + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), +# +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +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", + 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 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +LIRE_PLEXUS=OPER(nom="LIRE_PLEXUS",op= 184,sd_prod=evol_char, + fr=" ", + reentrant='n', + UIinfo={"groupes":("Maillage",)}, + regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),), + UNITE =SIMP(statut='f',typ='I',defaut= 19 ), + FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS",)), + MAIL_PLEXUS =SIMP(statut='o',typ=maillage_sdaster ), + MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), + MODELE =SIMP(statut='o',typ=modele_sdaster ), + TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster ), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), + b_prec_crit =BLOC(condition = "LIST_INST != None or INST != None", + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", + into=("RELATIF","ABSOLU") ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 11/05/2005 AUTEUR MCOURTOI M.COURTOIS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE VABHHTS J.PELLET + +def lire_resu_prod(TYPE_RESU,**args): + if TYPE_RESU == "EVOL_CHAR" : return evol_char + if TYPE_RESU == "EVOL_THER" : return evol_ther + if TYPE_RESU == "EVOL_ELAS" : return evol_elas + if TYPE_RESU == "EVOL_NOLI" : return evol_noli + if TYPE_RESU == "DYNA_TRANS" : return dyna_trans + if TYPE_RESU == "DYNA_HARMO" : return dyna_harmo + if TYPE_RESU == "HARM_GENE" : return harm_gene + if TYPE_RESU == "MODE_MECA" : return mode_meca + if TYPE_RESU == "MODE_MECA_C" : return mode_meca_c + raise AsException("type de concept resultat non prevu") + +# pour éviter d'écrire 3 fois cette liste : +def l_nom_cham_pas_elga(): return ( + "ACCE", "ACCE_ABSOLU", "CRIT_ELNO_RUPT", "DCHA_ELNO_SIGM", + "DCHA_NOEU_SIGM", "DEDE_ELNO_DLDE", "DEDE_NOEU_DLDE", "DEGE_ELNO_DEPL", "DEGE_NOEU_DEPL", + "DEPL", "DEPL_ABSOLU", "DESI_ELNO_DLSI", "DESI_NOEU_DLSI", "DETE_ELNO_DLTE", "DETE_NOEU_DLTE", + "DURT_ELNO_META", "DURT_NOEU_META", "ECIN_ELEM_DEPL", "EFGE_ELNO_CART", "EFGE_ELNO_DEPL", + "EFGE_NOEU_CART", "EFGE_NOEU_DEPL", "ENDO_ELNO_SIGA", "ENDO_ELNO_SINO", "ENDO_NOEU_SINO", + "ENEL_ELNO_ELGA", "ENEL_NOEU_ELGA", "EPEQ_ELNO_TUYO", "EPGR_ELNO", "EPME_ELNO_DEPL", + "EPMG_ELNO_DEPL", "EPMG_NOEU_DEPL", "EPOT_ELEM_DEPL", "EPSA_ELNO", "EPSA_NOEU", + "EPSG_ELNO_DEPL", "EPSG_NOEU_DEPL", "EPSI_ELNO_DEPL", "EPSI_ELNO_TUYO", "EPSI_NOEU_DEPL", + "EPSP_ELNO", "EPSP_ELNO_ZAC", "EPSP_NOEU", "EPSP_NOEU_ZAC", "EQUI_ELNO_EPME", "EQUI_ELNO_EPSI", + "EQUI_ELNO_SIGM", "EQUI_NOEU_EPME", "EQUI_NOEU_EPSI", "EQUI_NOEU_SIGM", "ERRE_ELEM_NOZ1", + "ERRE_ELEM_NOZ2", "ERRE_ELNO_ELGA", "ERRE_NOEU_ELGA", "ERTH_ELEM_TEMP", "ERTH_ELNO_ELEM", + "ETOT_ELEM", "ETOT_ELNO_ELGA", "FLUX_ELNO_TEMP", "FLUX_NOEU_TEMP", "FORC_NODA", "FSUR_2D", + "FSUR_3D", "FVOL_2D", "FVOL_3D", "GRAD_NOEU_THETA", "HYDR_ELNO_ELGA", "HYDR_NOEU_ELGA", + "INTE_ELNO_ACTI", "INTE_ELNO_REAC", "INTE_NOEU_ACTI", "INTE_NOEU_REAC", "IRRA", + "META_ELNO_TEMP", "META_NOEU_TEMP", "PMPB_ELNO_SIEF", "PMPB_NOEU_SIEF", + "PRES", "PRES_DBEL_DEPL", "PRES_ELNO_DBEL", "PRES_ELNO_IMAG", "PRES_ELNO_REEL", + "PRES_NOEU_DBEL", "PRES_NOEU_IMAG", "PRES_NOEU_REEL", + "RADI_ELNO_SIGM", "RADI_NOEU_SIGM", "REAC_NODA", + "SIEF_ELNO", "SIEF_ELNO_ELGA", "SIEF_NOEU", "SIEF_NOEU_ELGA", "SIEQ_ELNO_TUYO", + "SIGM_ELNO_CART", "SIGM_ELNO_COQU", "SIGM_ELNO_DEPL", "SIGM_ELNO_SIEF", + "SIGM_ELNO_TUYO", "SIGM_ELNO_ZAC", "SIGM_NOEU_CART", "SIGM_NOEU_COQU", + "SIGM_NOEU_DEPL", "SIGM_NOEU_SIEF", "SIGM_NOEU_ZAC", "SIGM_NOZ1_ELGA", + "SIGM_NOZ2_ELGA", "SIPO_ELNO_DEPL", "SIPO_ELNO_SIEF", "SIPO_NOEU_DEPL", + "SIPO_NOEU_SIEF", "SIRE_ELNO_DEPL", "SIRE_NOEU_DEPL", "TEMP", "THETA", + "VALE_CONT", "VALE_NCOU_MAXI", "VARI_ELNO", "VARI_ELNO_COQU", + "VARI_ELNO_ELGA", "VARI_ELNO_TUYO", "VARI_NOEU", "VARI_NOEU_ELGA", "VARI_NON_LOCAL", + "VITE", "VITE_ABSOLU", "VITE_VENT", + ) + +LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,reentrant='n', + UIinfo={"groupes":("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", + "MODE_MECA_C","DYNA_TRANS","DYNA_HARMO","HARM_GENE", + "EVOL_CHAR") ), + + FORMAT =SIMP(statut='o',typ='TXM',into=("IDEAS","IDEAS_DS58","ENSIGHT","MED") ), + + INFO =SIMP(statut='f',typ='I',into=(1,2) ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + + regles=(UN_PARMI('MAILLAGE','MODELE'),), + MAILLAGE =SIMP(statut='f',typ=maillage_sdaster), + MODELE =SIMP(statut='f',typ=modele_sdaster), + + NB_VARI =SIMP(statut='f',typ='I' ), + + +# 1) blocs selon le format choisi : +#--------------------------------- + +# 1-1 ideas dataset-58 : +# ---------------------- + b_dataset_58 = BLOC(condition="FORMAT=='IDEAS_DS58'", + UNITE =SIMP(statut='f',typ='I',defaut= 19 ), + ), + b_dataset_58_b = BLOC(condition="(FORMAT=='IDEAS_DS58') and ((TYPE_RESU=='DYNA_TRANS') or\ + (TYPE_RESU=='DYNA_HARMO') or (TYPE_RESU=='HARM_GENE'))", + UNITE =SIMP(statut='f',typ='I',defaut= 19 ), + NOM_CHAM=SIMP(statut='o',typ='TXM',into=("DEPL","VITE","ACCE","EPSI_NOEU_DEPL","SIEF_NOEU",) ), + REDEFI_ORIENT=FACT(statut='f',max='**', + regles=(PRESENT_PRESENT('CODE_DIR','DIRECTION','NOEUD',),), + CODE_DIR =SIMP(statut='f',typ='I',into=(1,2,3,) ), + DIRECTION=SIMP(statut='f',typ='R',min=3,max=3,), + NOEUD =SIMP(statut='f',typ=no,validators=NoRepeat(),max='**'),), + ), + +# 1-2 ideas : +# --------- + b_ideas =BLOC(condition="FORMAT=='IDEAS'", + UNITE =SIMP(statut='f',typ='I',defaut= 19 ), +# TEST =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=l_nom_cham_pas_elga()), + FORMAT_IDEAS =FACT(statut='f',max='**', + regles=(UN_PARMI('POSI_INST','POSI_FREQ'),), + NOM_CHAM =SIMP(statut='o',typ='TXM',into=l_nom_cham_pas_elga()), + NUME_DATASET =SIMP(statut='f',typ='I',into=(55,57,2414) ), + RECORD_3 =SIMP(statut='f',typ='I',max=10), + RECORD_6 =SIMP(statut='f',typ='I',max=10), + RECORD_9 =SIMP(statut='f',typ='I',max=10), + POSI_ORDRE =SIMP(statut='o',typ='I',min=2,max=2), + POSI_NUME_MODE =SIMP(statut='f',typ='I',min=2,max=2), + POSI_MASS_GENE =SIMP(statut='f',typ='I',min=2,max=2), + POSI_INST =SIMP(statut='f',typ='I',min=2,max=2), + POSI_FREQ =SIMP(statut='f',typ='I',min=2,max=2), + NOM_CMP =SIMP(statut='o',typ='TXM',max='**'),), + ), +# 1-3 ensight : +# ------------- + b_ensight =BLOC(condition="FORMAT=='ENSIGHT'", + NOM_FICHIER =SIMP(statut='f',typ='TXM'), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=l_nom_cham_pas_elga()), + ), + +# 1-4 med : +# --------- + b_med =BLOC(condition = "FORMAT == 'MED'",fr="Nom du champ dans le fichier MED", + UNITE =SIMP(statut='f',typ='I',defaut= 81, fr="Le fichier est : fort.n.",), + FORMAT_MED =FACT(statut='f',max='**', + regles=(ENSEMBLE('NOM_CMP','NOM_CMP_MED'),), + NOM_CHAM =SIMP(statut='o',typ='TXM',into=l_nom_cham_pas_elga()), + NOM_CHAM_MED =SIMP(statut='o',typ='TXM', fr="Nom du champ dans le fichier MED.", ), + NOM_CMP =SIMP(statut='f',typ='TXM',max='**', fr="Nom des composantes dans ASTER.", ), + NOM_CMP_MED =SIMP(statut='f',typ='TXM',max='**', fr="Nom des composantes dans MED.", ), + ), + ), + +# 2) blocs selon le type du résultat : +#--------------------------------- + b_mode_meca =BLOC(condition="(TYPE_RESU=='MODE_MECA')or(TYPE_RESU=='MODE_MECA_C')", + MATR_A =SIMP(statut='f',typ=matr_asse_depl_r,), + MATR_B =SIMP(statut='f',typ=matr_asse_depl_r,), + ), + + +# 3) autres blocs : +#--------------------------------- + b_extrac =BLOC(condition="1",fr="accès à un champ dans la structure de données résultat", + regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST','FREQ','LIST_FREQ'),), + TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), + FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), + + b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)or(FREQ != None)or(LIST_FREQ != None)", + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + ), + ), +) ; +#& MODIF COMMANDE DATE 16/06/2004 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.lire_table_ops import lire_table_ops + +def lire_table_prod(self,TYPE_TABLE,**args): + if TYPE_TABLE == "TABLE" : return table_sdaster + 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=MACRO(nom="LIRE_TABLE",op=lire_table_ops,sd_prod=lire_table_prod, + 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'), + PARA =SIMP(statut='f',typ='TXM',max='**'), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + ) ; + +#& MODIF COMMANDE DATE 03/11/2004 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 GNICOLAS G.NICOLAS + +from Macro.macr_adap_mail_ops import macr_adap_mail_ops + +def macr_adap_mail_prod(self,MAJ_CHAM,ADAPTATION,**args): + maillage_np1=ADAPTATION['MAILLAGE_NP1'] + self.type_sdprod(maillage_np1,maillage_sdaster) + if MAJ_CHAM == None:return None +# Remarque : la liste qui suit doit etre conforme à son homologue de LIRE_CHAMP + for ch in MAJ_CHAM: + t=ch['TYPE_CHAM'] + if t[0:5] == "NOEU_":self.type_sdprod(ch['CHAM_MAJ'],eval("cham_no_"+string.lower(t[5:]))) + if t == "ELEM_G_DEPL_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_g_depl) + if t[0:5] == "ELEM_":self.type_sdprod(ch['CHAM_MAJ'],eval("cham_elem_"+string.lower(t[5:]))) + if t == "ELNO_G_DEPL_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_g_depl) + if t[0:5] == "ELNO_":self.type_sdprod(ch['CHAM_MAJ'],eval("cham_elem_"+string.lower(t[5:]))) + if t == "ELGA_G_DEPL_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_g_depl) + if t[0:5] == "ELGA_":self.type_sdprod(ch['CHAM_MAJ'],eval("cham_elem_"+string.lower(t[5:]))) + return None + +MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL",op=macr_adap_mail_ops,sd_prod=macr_adap_mail_prod, + fr="Adapter un maillage avec le logiciel HOMARD.", + ang="Mesh adaptation with HOMARD software.", + docu="U7.03.01-b", +# +# 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="V7_1", + into=("V7_1", "V7_N", "V7_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. Gestion des éléments autres que des simplexes +# 0 : autres elements refuses +# 1 : raffinement sur les simplexes, mais autres acceptes +# 2 : tous (defaut) +# + NON_SIMPLEXE = SIMP(statut='f',typ='I',defaut=2,into=(0,1,2), + fr="Type d'éléments acceptés.", + ang="Type of authorized elements." ), +# +# 5. Le type de traitement : +# + ADAPTATION =FACT(statut='o', + fr="Type d'adaptation", + ang="Type of adaptation", +# +# 5.1. Deux choix d'adaptation exclusifs : +# +# 5.1. +# A. Selon un indicateur d'erreur, avec trois variantes : +# . Raffinement et deraffinement +# . Raffinement seul +# . Deraffinement seul +# B. Uniforme, avec trois variantes : +# . Raffinement seul +# . Deraffinement seul +# . Rien : le maillage est le meme a la sortie et a l'entree +# + 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" ), +# +# 5.2. Quel que soit le type de traitement, il faut donner : +# A. Le concept du maillage initial +# B. Le concept du maillage final +# + MAILLAGE_N = SIMP(statut='o',typ=maillage_sdaster, + fr="Maillage avant adaptation", + ang="Mesh before adaptation" ), + MAILLAGE_NP1 = SIMP(statut='o',typ=(CO,maillage_sdaster), + fr="Maillage apres adaptation", + ang="Mesh after adaptation" ), +# +# 5.3. Pour de l'adaptation libre, il faut l'indicateur d'erreur +# +# + b_indicateur_d_erreur =BLOC( condition = " LIBRE != None " , + fr="Choix de l'indicateur d'erreur", + ang="Selection of error indicator", +# +# 5.3.1. Le nom du concept resultat_sdaster +# + RESULTAT_N = SIMP(statut='o',typ=(evol_elas,evol_noli,evol_ther) , + fr="Concept resultat Code_Aster contenant l'indicateur d'erreur", + ang="Result with error indicator" ), +# +# 5.3.2. Le champ d'indicateur d'erreur +# + INDICATEUR = SIMP(statut='o',typ='TXM', + fr="Champ de l'indicateur d'erreur", + ang="Error indicator field" ), +# +# 5.3.3. La composante retenue +# + NOM_CMP_INDICA = SIMP(statut='o',typ='TXM', + fr="Composante retenue", + ang="Selected component" ), +# +# 5.3.4. Le paramètre temporel pour l'indicateur +# + regles=(EXCLUS('NUME_ORDRE','INST'),), +# +# 5.3.4.1. Soit le numero d'ordre +# + NUME_ORDRE = SIMP(statut='f',typ='I', + fr="Numero d ordre", + ang="Rank" ), +# +# 5.3.4.2. Soit l'instant +# 5.3.4.2.1. Sa valeur +# + INST = SIMP(statut='f',typ='R', + fr="Instant associé", + ang="Instant" ), +# +# 5.3.4.2.2. La précision du choix de l'instant +# + b_precision =BLOC(condition="(INST != None)", + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3, + fr="Précision sur le choix de l'instant associé", + ang="Accuracy over instant choice" ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), + fr="Critère de précision sur le choix de l'instant associé", + ang="Accuracy criterium over instant choice" ),), +# + ) , +# +# 5.4. Les criteres pour de l'adaptation libre : +# absolu, relatif, en proportion d'entite +# 5.4.1. Pour le raffinement : +# + 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 : fraction entre 0 et 1", + ang="Relative threshold : ratio between 0 and 1" ), + CRIT_RAFF_PE = SIMP(statut='f',typ='R', + fr="Pourcentage d'éléments : fraction entre 0 et 1", + ang="Percentage of elements : ratio between 0 and 1" ), + ) , +# +# 5.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 : fraction entre 0 et 1", + ang="Relative threshold : ratio between 0 and 1" ), + CRIT_DERA_PE = SIMP(statut='f',typ='R', + fr="Pourcentage d'éléments : fraction entre 0 et 1", + ang="Percentage of elements : ratio between 0 and 1" ), + ) , +# +# 5.5. Les niveaux extremes pour le maillage adapte +# 5.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' ), + ) , +# +# 5.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' ), + ) , +# + ), +# +# 6. Suivi d'une frontiere +# + MAILLAGE_FRONTIERE = SIMP(statut='f',typ=maillage_sdaster, + fr="Maillage de la frontiere à suivre", + ang="Boundary mesh" ), +# + b_frontiere =BLOC( condition = " MAILLAGE_FRONTIERE != None " , + fr="Groupes définissant la frontière", + ang="Groups which define the boundary", + GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**' ), + ) , +# +# 7. Mise à jour de champs sur le nouveau maillage +# + MAJ_CHAM =FACT(statut='f',max='**', + fr="Mise à jour de champs sur le nouveau maillage.", + ang="Updating of fields over the new mesh.", +# +# 7.1. Le nom du champ qui contiendra le resultat de la mise a jour +# + CHAM_MAJ = SIMP(statut='o',typ=(CO,cham_gd_sdaster), + fr="Nom du champ qui contiendra le champ mis à jour", + ang="Name of the field for the updated field"), +# +# 7.2. Le type du champ qui contiendra le resultat de la mise a jour +# + TYPE_CHAM = SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO(), + fr="Type du champ qui contiendra le champ mis à jour", + ang="Type of the field for the updated field" ), +# +# 7.3. Le nom du resultat du champ a interpoler +# + RESULTAT = SIMP(statut='o', + typ=(evol_elas,evol_noli,evol_ther), + fr="Resultat contenant le champ à mettre à jour", + ang="Result with field to be updated" ), +# +# 7.4. Le nom du champ a interpoler +# + NOM_CHAM = SIMP(statut='o',typ='TXM', + fr="Nom du champ à mettre à jour", + ang="Name of the field to be updated" ), +# +# 7.5. Le paramètre temporel pour le champ a interpoler +# + regles=(EXCLUS('NUME_ORDRE','INST'),), +# +# 7.5.1. Soit le numero d'ordre +# + NUME_ORDRE = SIMP(statut='f',typ='I', + fr="Numero d ordre du champ à mettre à jour", + ang="Rank of the field to be updated" ), +# +# 7.5.2. Soit l'instant +# 7.5.2.1. Sa valeur +# + INST = SIMP(statut='f',typ='R', + fr="Instant associé", + ang="Instant" ), +# +# 7.5.2.2. La précision du choix de l'instant +# + b_precision =BLOC(condition="(INST != None)", + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3, + fr="Précision sur le choix de l'instant associé", + ang="Accuracy over instant choice" ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), + fr="Critère de précision sur le choix de l'instant associé", + ang="Accuracy criterium over instant choice" ),), + ), +# +# 8. Les options d'analyse de maillage ; par defaut, on ne fait que les nombres +# 8.1. Nombre de noeuds et éléments +# + NOMBRE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), + fr="Nombre de noeuds et éléments du maillage", + ang="Number of nodes and éléments in the mesh" ), +# +# 8.2. Determination de la qualité des éléments du maillage +# + QUALITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), + fr="Qualité du maillage", + ang="Mesh quality" ), +# +# 8.3. Connexite du maillage +# + CONNEXITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), + fr="Connexité du maillage.", + ang="Mesh connexity." ), +# +# 8.4. Taille des sous-domaines du maillage +# + TAILLE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), + fr="Tailles des sous-domaines du maillage.", + ang="Sizes of mesh sub-domains." ), +# +# 8.5. Controle de la non-interpenetration des éléments +# + INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), + fr="Controle de la non interpénétration des éléments.", + ang="Overlapping checking." ), +# +) ; +#& MODIF COMMANDE DATE 30/06/2004 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 F1BHHAJ J.ANGLES +from Macro.macr_ascouf_calc_ops import macr_ascouf_calc_ops +def macr_ascouf_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS,CHARGE,RESU_THER,**args): + self.type_sdprod(MODELE,modele_sdaster) + if CHAM_MATER != None:self.type_sdprod(CHAM_MATER,cham_mater) + if CARA_ELEM != None:self.type_sdprod(CARA_ELEM,cara_elem) + if FOND_FISS != None:self.type_sdprod(FOND_FISS,fond_fiss) + if CHARGE != None:self.type_sdprod(CHARGE,char_meca) + if RESU_THER != None:self.type_sdprod(RESU_THER,evol_ther) + return evol_noli + +MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC",op=macr_ascouf_calc_ops,sd_prod=macr_ascouf_calc_prod, + fr=" ", + reentrant='n', + UIinfo={"groupes":("Outils métier",)}, + regles=(UN_PARMI('COMP_INCR','COMP_ELAS'),), + + TYPE_MAILLAGE =SIMP(statut='o',typ='TXM', + into=("SAIN", + "FISS_COUDE", + "FISS_AXIS_DEB", + "SOUS_EPAIS_COUDE" + ) ), + + CL_BOL_P2_GV =FACT(statut='f', + ANGLE =SIMP(statut='o',typ='R' ), + AZIMUT =SIMP(statut='f',typ='R',defaut= 90. ), + ), + + MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), + MODELE =SIMP(statut='o',typ=(CO,modele_sdaster)), + 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',max=3, + regles=(UN_PARMI('TOUT','GROUP_MA'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ='TXM',into=("COUDE","BOL") ), + MATER =SIMP(statut='o',typ=mater_sdaster ), + TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ), + + PRES_REP =FACT(statut='f', + PRES =SIMP(statut='o',typ='R' ), + EFFE_FOND_P1 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + PRES_LEVRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + ECHANGE =FACT(statut='f', + COEF_H =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + TEMP_EXT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + TORS_P1 =FACT(statut='f',max=6, + regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), + FX =SIMP(statut='f',typ='R' ), + FY =SIMP(statut='f',typ='R' ), + FZ =SIMP(statut='f',typ='R' ), + MX =SIMP(statut='f',typ='R' ), + MY =SIMP(statut='f',typ='R' ), + MZ =SIMP(statut='f',typ='R' ), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + COMP_INCR =FACT(statut='f', + RELATION =SIMP(statut='o',typ='TXM',into=("VMIS_ISOT_TRAC",) ), + VMIS_ISOT_TRAC =SIMP(statut='c',typ='I',defaut= 2,into=( 2 ,) ), + ), + + COMP_ELAS =FACT(statut='f', + RELATION =SIMP(statut='o',typ='TXM',into=("ELAS","ELAS_VMIS_TRAC") ), + ELAS =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ), + ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ), + ), + + SOLVEUR =FACT(statut='d', + METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), + b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", + RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), + ), + b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), + ), + b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", + fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", + NPREC =SIMP(statut='f',typ='I',defaut= 8 ), + STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", + PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), + NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), + RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), + NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), + ), + SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + ), + + CONVERGENCE =FACT(statut='d', + RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), + RESI_GLOB_RELA =SIMP(statut='f',typ='R'), + ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), + ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), + RESI_INTE_RELA =SIMP(statut='f',typ='R' + ,defaut= 1.0E-6), + ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), + ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), + RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), + ), + + NEWTON =FACT(statut='d', + REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), + PREDICTION =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ), + MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ), + REAC_ITER =SIMP(statut='f',typ='I',defaut=0), + EVOL_NOLI =SIMP(statut='f',typ=evol_noli), + ), + + RECH_LINEAIRE =FACT(statut='d', + RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), + ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3), + ), + + INCREMENT =FACT(statut='o', + regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), + EXCLUS('NUME_INST_FIN','INST_FIN'),), + LIST_INST =SIMP(statut='o',typ=listr8_sdaster), + EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE", + into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ), + NUME_INST_INIT =SIMP(statut='f',typ='I'), + INST_INIT =SIMP(statut='f',typ='R'), + NUME_INST_FIN =SIMP(statut='f',typ='I'), + INST_FIN =SIMP(statut='f',typ='R'), + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), + 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',max='**', + R_INF =SIMP(statut='o',typ='R' ), + R_SUP =SIMP(statut='o',typ='R' ), + ), + + IMPR_TABLE =FACT(statut='f', + regles=(UN_PARMI('TOUT_PARA','NOM_PARA', ), + PRESENT_PRESENT('TOUT_PARA','ANGLE', ), + PRESENT_PRESENT('TOUT_PARA','R_CINTR', ), + UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL',),), + NOM_PARA =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=4, + into=("TRESCA_MEMBRANE", + "TRESCA_MFLE", + "TRESCA", + "SI_LONG" + "SI_RADI" + "SI_CIRC" + ) ), + TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI",) ), + ANGLE =SIMP(statut='f',typ='R',max='**' ), + R_CINTR =SIMP(statut='f',typ='R',max='**' ), + POSI_CURV_LONGI =SIMP(statut='f',typ='R',max='**' ), + POSI_ANGUL =SIMP(statut='f',typ='R',max='**' ), + TRANSFORMEE =SIMP(statut='f',typ='TXM',defaut="COUDE",into=("COUDE","TUBE") ), + ), + + IMPRESSION =FACT(statut='f', + FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT", + into=("RESULTAT","ASTER","IDEAS","CASTEM") ), + + b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas", + VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), + ), + + b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem", + NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)), + ), + + ), + + TITRE =SIMP(statut='f',typ='TXM' ), + + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 17/08/2004 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 +from Macro.macr_ascouf_mail_ops import macr_ascouf_mail_ops +MACR_ASCOUF_MAIL=MACRO(nom="MACR_ASCOUF_MAIL",op=macr_ascouf_mail_ops,sd_prod=maillage_sdaster, + fr=" ",reentrant='n', + UIinfo={"groupes":("Outils métier",)}, + + regles=(EXCLUS('SOUS_EPAIS_COUDE','FISS_COUDE','SOUS_EPAIS_MULTI'),), + + EXEC_MAILLAGE =FACT(statut='o', + LOGICIEL =SIMP(statut='o',typ='TXM',defaut="GIBI2000",into=("GIBI98","GIBI2000") ), + UNITE_DATG =SIMP(statut='f',typ='I',defaut=70), + UNITE_MGIB =SIMP(statut='f',typ='I',defaut=19), + NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,4,5,6,7,8,9,10,11)), + ), + + TYPE_ELEM =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8") ), + + COUDE =FACT(statut='o', + ANGLE =SIMP(statut='o',typ='R' ), + R_CINTR =SIMP(statut='o',typ='R' ), + L_TUBE_P1 =SIMP(statut='o',typ='R' ), + L_TUBE_P2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + NB_ELEM_EPAIS =SIMP(statut='f',typ='I',defaut= 3 ), + SYME =SIMP(statut='f',typ='TXM',defaut="ENTIER",into=("ENTIER","QUART","DEMI") ), + TRANSFORMEE =SIMP(statut='o',typ='TXM',defaut="COUDE",into=("COUDE","TUBE") ), + b_transf_coude =BLOC(condition = "TRANSFORMEE == 'COUDE' ", + DEXT =SIMP(statut='o',typ='R' ), + EPAIS =SIMP(statut='o',typ='R' ), + SUR_EPAIS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + BOL_P2 =SIMP(statut='f',typ='TXM',into=("ASP_MPP","CUVE","GV") ), + ), + b_transf_tube =BLOC(condition = "TRANSFORMEE == 'TUBE' ", + TRAN_EPAIS =SIMP(statut='o',typ='TXM',defaut="NON",into=("OUI","NON") ), + b_trans_epais_oui =BLOC(condition = "TRAN_EPAIS == 'OUI' ", + regles=(ENSEMBLE('ANGL_TETA2','EPAIS_TI'), + UN_PARMI('ABSC_CURV_TRAN','POSI_ANGU_TRAN'),), + DEXT_T1 =SIMP(statut='o',typ='R' ), + EPAIS_T1 =SIMP(statut='o',typ='R' ), + EPAIS_T2 =SIMP(statut='o',typ='R' ), + EPAIS_TI =SIMP(statut='f',typ='R' ), + ANGL_TETA1 =SIMP(statut='o',typ='R' ), + ANGL_TETA2 =SIMP(statut='f',typ='R' ), + ABSC_CURV_TRAN =SIMP(statut='f',typ='R' ), + POSI_ANGU_TRAN =SIMP(statut='f',typ='R' ), + ), + b_trans_epais_non =BLOC(condition = "TRAN_EPAIS == 'NON' ", + DEXT =SIMP(statut='o',typ='R' ), + EPAIS =SIMP(statut='o',typ='R' ), + SUR_EPAIS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + BOL_P2 =SIMP(statut='f',typ='TXM',into=("ASP_MPP","CUVE","GV") ), + ), + ), + ), + + SOUS_EPAIS_COUDE=FACT(statut='f', + regles=(UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL'), + UN_PARMI('POSI_CURV_CIRC','AZIMUT'),), + TYPE =SIMP(statut='o',typ='TXM',into=("AXIS","ELLI") ), + AXE_CIRC =SIMP(statut='f',typ='R' ), + AXE_LONGI =SIMP(statut='o',typ='R' ), + PROFONDEUR =SIMP(statut='o',typ='R' ), + POSI_CURV_LONGI =SIMP(statut='f',typ='R' ), + POSI_ANGUL =SIMP(statut='f',typ='R' ), + POSI_CURV_CIRC =SIMP(statut='f',typ='R' ), + AZIMUT =SIMP(statut='f',typ='R' ), + SOUS_EPAIS =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ), + NB_ELEM_LONGI =SIMP(statut='o',typ='I' ), + NB_ELEM_CIRC =SIMP(statut='o',typ='I' ), + NB_ELEM_RADI =SIMP(statut='f',typ='I',defaut= 3 ), + EMPREINTE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + + SOUS_EPAIS_MULTI=FACT(statut='f',max='**', + regles=(UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL'), + UN_PARMI('POSI_CURV_CIRC','AZIMUT'),), + TYPE =SIMP(statut='o',typ='TXM',into=("AXIS","ELLI") ), + AXE_CIRC =SIMP(statut='f',typ='R' ), + AXE_LONGI =SIMP(statut='o',typ='R' ), + PROFONDEUR =SIMP(statut='o',typ='R' ), + POSI_CURV_LONGI =SIMP(statut='f',typ='R' ), + POSI_ANGUL =SIMP(statut='f',typ='R' ), + POSI_CURV_CIRC =SIMP(statut='f',typ='R' ), + AZIMUT =SIMP(statut='f',typ='R' ), + SOUS_EPAIS =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ), + NB_ELEM_LONGI =SIMP(statut='o',typ='I' ), + NB_ELEM_CIRC =SIMP(statut='o',typ='I' ), + EMPREINTE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + + FISS_COUDE =FACT(statut='f', + regles=(UN_PARMI('ABSC_CURV','POSI_ANGUL'),), + AXIS =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ), + b_axis_non =BLOC(condition = "AXIS == 'NON' ", + LONGUEUR =SIMP(statut='o',typ='R' ), + ), + b_axis_oui =BLOC(condition = "AXIS == 'OUI' ", + LONGUEUR =SIMP(statut='f',typ='R' ), + ), + PROFONDEUR =SIMP(statut='o',typ='R' ), + ABSC_CURV =SIMP(statut='f',typ='R' ), + POSI_ANGUL =SIMP(statut='f',typ='R' ), + FISSURE =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT") ), + AZIMUT =SIMP(statut='f',typ='R',defaut= 90. ), + ORIEN =SIMP(statut='o',typ='R', + into=(45.,-45.,90.,0.E+0) ), + NB_TRANCHE =SIMP(statut='o',typ='I' ), + NB_SECTEUR =SIMP(statut='o',typ='I' ), + NB_COURONNE =SIMP(statut='o',typ='I' ), + RAYON_TORE =SIMP(statut='f',typ='R' ), + COEF_MULT_RC2 =SIMP(statut='f',typ='R',defaut= 1. ), + COEF_MULT_RC3 =SIMP(statut='f',typ='R' ), + ANGL_OUVERTURE =SIMP(statut='f',typ='R',defaut= 0.5 ), + ), + + IMPRESSION =FACT(statut='f',max='**', + regles=(PRESENT_PRESENT('FICHIER','UNITE'),), + FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER", + into=("ASTER","IDEAS","CASTEM") ), + b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas", + VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), + ), + b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem", + NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)), + ), + FICHIER =SIMP(statut='f',typ='TXM' ), + UNITE =SIMP(statut='f',typ='I' ), + ), + + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 30/06/2004 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 F1BHHAJ J.ANGLES +from Macro.macr_aspic_calc_ops import macr_aspic_calc_ops + +def macr_aspic_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS_1,FOND_FISS_2,CHARGE,RESU_THER,**args): + if MODELE != None:self.type_sdprod(MODELE,modele_sdaster) + if CHAM_MATER != None:self.type_sdprod(CHAM_MATER,cham_mater) + if CARA_ELEM != None:self.type_sdprod(CARA_ELEM,cara_elem) + if FOND_FISS_1 != None:self.type_sdprod(FOND_FISS_1,fond_fiss) + if FOND_FISS_2 != None:self.type_sdprod(FOND_FISS_2,fond_fiss) + if CHARGE != None:self.type_sdprod(CHARGE,char_meca) + if RESU_THER != None:self.type_sdprod(RESU_THER,evol_ther) + return evol_noli + +MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC",op=macr_aspic_calc_ops,sd_prod=macr_aspic_calc_prod, + fr=" ",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', + TYPE =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2") ), + ), + MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), + MODELE =SIMP(statut='f',typ=(CO,modele_sdaster)), + 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',max=3, + regles=(UN_PARMI('TOUT','GROUP_MA'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)), + GROUP_MA =SIMP(statut='f',typ='TXM',into=("TUBU","CORP","SOUD","SOUDCORP","SOUDTUBU") ), + MATER =SIMP(statut='o',typ=mater_sdaster), + TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + RCCM =SIMP(statut='o',typ='TXM',into=("OUI","NON")), + ), + + EQUILIBRE =FACT(statut='o', + NOEUD =SIMP(statut='o',typ=no), + ), + + PRES_REP =FACT(statut='o', + PRES =SIMP(statut='o',typ='R'), + NOEUD =SIMP(statut='f',typ=no), + EFFE_FOND =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), + PRES_LEVRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ), + + ECHANGE =FACT(statut='f', + COEF_H_TUBU =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + COEF_H_CORP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + TEMP_EXT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + ), + + TORS_CORP =FACT(statut='f',max=6, + regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), + NOEUD =SIMP(statut='o',typ=no), + FX =SIMP(statut='f',typ='R'), + FY =SIMP(statut='f',typ='R'), + FZ =SIMP(statut='f',typ='R'), + MX =SIMP(statut='f',typ='R'), + MY =SIMP(statut='f',typ='R'), + MZ =SIMP(statut='f',typ='R'), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ), + + TORS_TUBU =FACT(statut='f',max=6, + regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), + FX =SIMP(statut='f',typ='R'), + FY =SIMP(statut='f',typ='R'), + FZ =SIMP(statut='f',typ='R'), + MX =SIMP(statut='f',typ='R'), + MY =SIMP(statut='f',typ='R'), + MZ =SIMP(statut='f',typ='R'), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ), + + COMP_INCR =FACT(statut='f', + RELATION =SIMP(statut='o',typ='TXM',into=("VMIS_ISOT_TRAC",) ), + VMIS_ISOT_TRAC =SIMP(statut='c',typ='I',defaut= 2,into=( 2 ,) ), + ), + + COMP_ELAS =FACT(statut='f', + RELATION =SIMP(statut='o',typ='TXM',into=("ELAS","ELAS_VMIS_TRAC") ), + ELAS =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ), + ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ), + ), + + THETA_3D =FACT(statut='f',max='**', + R_INF =SIMP(statut='o',typ='R'), + R_SUP =SIMP(statut='o',typ='R'), + ), + + OPTION =SIMP(statut='f',typ='TXM',into=("CALC_G_MAX","CALC_G_MAX_LOCAL") ), + BORNES =FACT(statut='f',max='**', + NUME_ORDRE =SIMP(statut='o',typ='I'), + VALE_MIN =SIMP(statut='o',typ='R'), + VALE_MAX =SIMP(statut='o',typ='R'), + ), + + SOLVEUR =FACT(statut='d', + METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), + b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", + RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), + ), + b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), + ), + b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", + fr="Paramètres relatifs à la non iversibilité de la matrice à factorise", + NPREC =SIMP(statut='f',typ='I',defaut= 8 ), + STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", + PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), + NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), + RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), + NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), + ), + SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + ), + + CONVERGENCE =FACT(statut='d', + RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), + RESI_GLOB_RELA =SIMP(statut='f',typ='R'), + ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), + ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), + RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut=1.0E-6), + ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut=10), + ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut=0), + RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), + ), + + NEWTON =FACT(statut='d', + REAC_INCR =SIMP(statut='f',typ='I',defaut=1), + PREDICTION =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE","EXTRAPOL","DEPL_CALCULE")), + MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE")), + REAC_ITER =SIMP(statut='f',typ='I',defaut= 0), + ), + + RECH_LINEAIRE =FACT(statut='d', + RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut=1.0E-3), + ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut=3), + ), + + INCREMENT =FACT(statut='o', + regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), + EXCLUS('NUME_INST_FIN','INST_FIN'),), + LIST_INST =SIMP(statut='o',typ=listr8_sdaster), + EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE", + into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ), + NUME_INST_INIT =SIMP(statut='f',typ='I'), + INST_INIT =SIMP(statut='f',typ='R'), + NUME_INST_FIN =SIMP(statut='f',typ='I'), + INST_FIN =SIMP(statut='f',typ='R'), + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), + 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', + FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT", + into=("RESULTAT","ASTER","CASTEM","IDEAS")), + + b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas", + VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), + ), + + b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem", + NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)), + ), + + b_extrac =BLOC(condition="((FORMAT=='IDEAS')or(FORMAT=='CASTEM'))", + fr="extraction d un champ de grandeur", + regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST'),), + NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3, + into=("DEPL","EQUI_ELNO_SIGM","TEMP")), + + TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + ), + ), + + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), + + TITRE =SIMP(statut='f',typ='TXM'), +) +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE F1BHHAJ J.ANGLES + +from Macro.macr_aspic_mail_ops import macr_aspic_mail_ops + +MACR_ASPIC_MAIL=MACRO(nom="MACR_ASPIC_MAIL",op= macr_aspic_mail_ops,sd_prod=maillage_sdaster,reentrant='n', + fr=" ", + UIinfo={"groupes":("Outils métier",)}, + + EXEC_MAILLAGE =FACT(statut='o', + LOGICIEL =SIMP(statut='o',typ='TXM',defaut="GIBI2000",into=("GIBI98","GIBI2000")), + UNITE_DATG =SIMP(statut='f',typ='I',defaut=70), + UNITE_MGIB =SIMP(statut='f',typ='I',defaut=19), + NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,4,5,6,7,8,9,10,11)), + ), + + TYPE_ELEM =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8")), + + RAFF_MAIL =SIMP(statut='f',typ='TXM',defaut="GROS",into=("GROS","FIN")), + + TUBULURE =FACT(statut='o', + E_BASE =SIMP(statut='o',typ='R'), + DEXT_BASE =SIMP(statut='o',typ='R'), + L_BASE =SIMP(statut='o',typ='R'), + L_CHANF =SIMP(statut='o',typ='R'), + E_TUBU =SIMP(statut='o',typ='R'), + DEXT_TUBU =SIMP(statut='o',typ='R'), + Z_MAX =SIMP(statut='o',typ='R'), + TYPE =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2")), + L_PENETR =SIMP(statut='f',typ='R',defaut= 0.0E+0), + ), + + SOUDURE =FACT(statut='o', + H_SOUD =SIMP(statut='o',typ='R'), + ANGL_SOUD =SIMP(statut='o',typ='R'), + JEU_SOUD =SIMP(statut='o',typ='R'), + ), + + CORPS =FACT(statut='o', + E_CORP =SIMP(statut='o',typ='R'), + DEXT_CORP =SIMP(statut='o',typ='R'), + X_MAX =SIMP(statut='o',typ='R'), + ), + + FISS_SOUDURE =FACT(statut='f', + TYPE =SIMP(statut='o',typ='TXM',into=("LONGUE","COURTE")), + AXIS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), + PROFONDEUR =SIMP(statut='o',typ='R'), + LONGUEUR =SIMP(statut='f',typ='R'), + AZIMUT =SIMP(statut='o',typ='R'), + RAYON_TORE =SIMP(statut='f',typ='R'), + POSITION =SIMP(statut='o',typ='TXM',into=("DROIT","INCLINE")), + FISSURE =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT","NON_DEB","TRAVERS")), + LIGA_INT =SIMP(statut='f',typ='R'), + ANGL_OUVERTURE =SIMP(statut='f',typ='R',defaut= 0.0E+0), + COEF_MULT_RC1 =SIMP(statut='f',typ='R'), + COEF_MULT_RC2 =SIMP(statut='f',typ='R'), + COEF_MULT_RC3 =SIMP(statut='f',typ='R'), + NB_TRANCHE =SIMP(statut='f',typ='I'), + NB_SECTEUR =SIMP(statut='f',typ='I'), + NB_COURONNE =SIMP(statut='f',typ='I'), + ), + + IMPRESSION =FACT(statut='f',max='**', + regles=(PRESENT_PRESENT('FICHIER','UNITE'),), + FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","IDEAS","CASTEM")), + + b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas", + VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), + ), + + b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem", + NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)), + ), + FICHIER =SIMP(statut='f',typ='TXM'), + UNITE =SIMP(statut='f',typ='I'), + ), + + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), +) ; +#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +from Macro.macr_cabri_calc_ops import macr_cabri_calc_ops + +def macr_cabri_calc_prod(self,MODELE_THER,MODELE_MECA,CHAM_MATER, + CHAR_THER,CHAR_MECA,RESU_THER,**args): + if MODELE_THER != None: + self.type_sdprod(MODELE_THER,modele_sdaster) + if MODELE_MECA != None: + self.type_sdprod(MODELE_MECA,modele_sdaster) + if RESU_THER != None: + self.type_sdprod(RESU_THER,evol_ther) + if CHAM_MATER != None: + self.type_sdprod(CHAM_MATER,cham_mater) + if CHAR_THER != None: + for m in CHAR_THER: + self.type_sdprod(m['CHARGE'],char_ther) + if CHAR_MECA != None: + for m in CHAR_MECA: + self.type_sdprod(m['CHARGE'],char_meca) + return evol_noli + + +MACR_CABRI_CALC=MACRO(nom="MACR_CABRI_CALC", + op=macr_cabri_calc_ops, + sd_prod=macr_cabri_calc_prod, + fr="Calcul d'une jonction boulonnée de tuyauterie", + reentrant='n', + UIinfo={"groupes":("Outils métier",)}, + MAILLAGE = SIMP(statut='o',typ=maillage_sdaster,), + AFFE_MATERIAU = FACT(statut='o',max='**', + regles=(UN_PARMI('TOUT','GROUP_MA',),), + TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA = SIMP(statut='f',typ='TXM',into=( + "BRIDE", + "GOUJON", + "ROND", + "ECROU", + "JOINT",) ), + MATER = SIMP(statut='o',typ=mater_sdaster), + TEMP_REF = SIMP(statut='d',typ='R',defaut= 25. ), + ), + CHAM_MATER = SIMP(statut = 'f',typ=(cham_mater,CO),), + MODELE_THER= SIMP(statut = 'f',typ=(modele_sdaster,CO),), + + DEFI_CHAR_THER = FACT(statut ='d', + TEMP_INIT = SIMP(statut='d',typ='R',defaut= 25.,), + COEF_H_FLUI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),), + TEMP_EXT_FLUI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),), + COEF_H_AIR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),), + TEMP_EXT_AIR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),), + LIST_INST = SIMP(statut='f',typ=listr8_sdaster), + ), + + CHAR_THER = FACT(statut = 'f',max=4, + CHARGE = SIMP(statut='o',typ=(char_ther,CO)), + TYPE = SIMP(statut='o',typ='TXM', + into=("BRIDE_FLUIDE","BRIDE_AIR","ECROU_GOUJON", + "BRIDE_JOINT"),) + ), + + RESU_THER = SIMP(statut = 'f',typ=(evol_ther,CO),), + + + MODELE_MECA= SIMP(statut = 'f',typ=(modele_sdaster,CO),), + + DEFI_CHAR_MECA = FACT(statut='o', + PRETENS = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),), + PRES_REP = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),), + EFFE_FOND = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),), + ), + + CHAR_MECA = FACT(statut = 'f',max=11, + CHARGE = SIMP(statut='o',typ=(char_meca,CO)), + TYPE = SIMP(statut='o',typ='TXM', + into=("BLOC_BAS_GOUJ","BLOC_BAS_JOINT", + "BLOC_LAT_ALES","BLOC_LAT_NALES", + "PLAN_TUBE", + "PRES_FLU","EFFET_FOND", + "CONT_JOINT", + "DEFO_THER", + "SERR_ECROU_1","SERR_ECROU_2",),) + ), + + RELATION = SIMP(statut='f',typ='TXM', + into=('VMIS_ISOT_TRAC','ELAS','ELAS_VMIS_TRAC',),), + + SOLVEUR = FACT(statut='d', + METHODE = SIMP(statut='d',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT",) ), + b_mult_front = BLOC(condition = "METHODE == 'MULT_FRONT' ", + fr="Paramètres de la méthode multi frontale", + RENUM = SIMP(statut='d',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), + NPREC = SIMP(statut='d',typ='I',defaut=8), + STOP_SINGULIER = SIMP(statut='d',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + ), + INCREMENT = FACT(statut='f', + regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), + EXCLUS('NUME_INST_FIN','INST_FIN'),), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE", + into=("CHRONOLOGIQUE",) ), + NUME_INST_INIT =SIMP(statut='f',typ='I'), + INST_INIT =SIMP(statut='f',typ='R'), + NUME_INST_FIN =SIMP(statut='f',typ='I'), + INST_FIN =SIMP(statut='f',typ='R'), + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), + SUBD_PAS =SIMP(statut='f',typ='I',defaut=1), + SUBD_PAS_MINI =SIMP(statut='f',typ='R'), + COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0), + OPTI_LIST_INST =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),), + NOM_CHAM =SIMP(statut='f',typ='TXM',), + NOM_CMP =SIMP(statut='f',typ='TXM',), + VALE =SIMP(statut='f',typ='R'), + ), + NEWTON =FACT(statut='d', + REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), + PREDICTION =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE","EXTRAPOL") ), + MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ), + PAS_MINI_ELAS =SIMP(statut='f',typ='R',defaut=0.0E+0), + REAC_ITER =SIMP(statut='f',typ='I',defaut=0), + EVOL_NOLI =SIMP(statut='f',typ=evol_noli), + ), + CONVERGENCE =FACT(statut='d', + regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),), + SIGM_REFE =SIMP(statut='f',typ='R'), + EPSI_REFE =SIMP(statut='f',typ='R'), + FLUX_THER_REFE =SIMP(statut='f',typ='R'), + RESI_REFE_RELA =SIMP(statut='f',typ='R'), + RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), + RESI_GLOB_RELA =SIMP(statut='f',typ='R'), + ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), + ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25), + RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", + into=("IMPLICITE",)), + ), + ); + +#& MODIF COMMANDE DATE 01/03/2005 AUTEUR MABBAS M.ABBAS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +from Macro.macr_cabri_mail_ops import macr_cabri_mail_ops + +MACR_CABRI_MAIL=MACRO(nom="MACR_CABRI_MAIL", + op=macr_cabri_mail_ops, + sd_prod=maillage_sdaster, + fr="maillage d'une jonction boulonnée de tuyauterie", + reentrant='n', + UIinfo={"groupes":("Outils métier",)}, + EXEC_MAILLAGE = FACT(statut='o', + LOGICIEL = SIMP(statut = 'o',typ='TXM',into=("GIBI2000",),), + UNITE_DATG = SIMP(statut = 'f',typ='I',defaut=70,), + UNITE_MGIB = SIMP(statut = 'f',typ='I',defaut=19,), + NIVE_GIBI = SIMP(statut = 'f',typ='I',defaut=10, + into = (3,4,5,6,7,8,9,10,11), + ), + ), + RAFF_MAILLAGE = FACT(statut = 'd', + NB_RADIAL = SIMP(statut = 'f',typ='I',defaut=2,), + NB_CIRCONF = SIMP(statut = 'f',typ='I',defaut=3,), + NB_VERTICAL = SIMP(statut = 'f',typ='I',defaut=6,), + NB_ALESAGE = SIMP(statut = 'f',typ='I',defaut=5,), + ), + VERI_MAIL = FACT(statut='d', + VERIF = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + APLAT = SIMP(statut='f',typ='R',defaut= 1.0E-3 ), + ), + GEOM_BRID = FACT(statut = 'o', + NORME = SIMP(statut = 'o',typ='TXM',into=("OUI","NON"),), + b_bride_iso = BLOC(condition = "NORME == 'OUI'", + TYPE = SIMP(statut='o',typ='TXM', + into=('A','AA','B','B1','C','D','D1','E','F', + 'FF','G','GG','H','H1','I','J','J1', + 'K','L','L1','M','N','O','P','S','T','W'), + ), + ), + b_bride_niso = BLOC(condition = "NORME == 'NON'", + TUBU_D_EXT = SIMP(statut='o',typ='R',), + TUBU_H = SIMP(statut='o',typ='R',), + BRID_D_EXT = SIMP(statut='o',typ='R',), + BRID_D_INT = SIMP(statut='o',typ='R',), + BRID_H = SIMP(statut='o',typ='R',), + BRID_D_CONGE = SIMP(statut='o',typ='R',), + BRID_R_CONGE = SIMP(statut='o',typ='R',), + BRID_D_EPAUL = SIMP(statut='o',typ='R',), + BRID_H_EPAUL = SIMP(statut='o',typ='R',), + BRID_D_ALESAG = SIMP(statut='o',typ='R',), + BRID_P_ALESAG = SIMP(statut='o',typ='R',), + BRID_H_ALESAG = SIMP(statut='o',typ='R',), + GOUJ_N_GOUJON = SIMP(statut='o',typ='I',), + GOUJ_D_GOUJON = SIMP(statut='o',typ='R',), + GOUJ_E_FILET = SIMP(statut='o',typ='R',), + GOUJ_D_RONDEL = SIMP(statut='o',typ='R',), + GOUJ_E_RONDEL = SIMP(statut='o',typ='R',), + GOUJ_D_ECROU = SIMP(statut='o',typ='R',), + GOUJ_E_ECROU = SIMP(statut='o',typ='R',), + ETAN_E_JOINT = SIMP(statut='o',typ='R',), + ), + ), + IMPRESSION = FACT(statut='d', + UNITE = SIMP(statut='f',typ='I'), + FORMAT = SIMP(statut='f',typ='TXM',defaut="ASTER", + into=("ASTER","CASTEM","IDEAS"), + ), + b_impr_castem = BLOC(condition = "FORMAT == 'CASTEM'", + NIVE_GIBI = SIMP(statut='f',typ='I',defaut=10,into=(3,10),), + ), + b_impr_ideas = BLOC(condition = "FORMAT == 'IDEAS'", + VERSION = SIMP(statut='f',typ='I',defaut=5,into=(4,5),), + ), + ), + ); + +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE JMBHH01 J.M.PROIX + +from Macro.macr_cara_poutre_ops import macr_cara_poutre_ops + +MACR_CARA_POUTRE=MACRO(nom="MACR_CARA_POUTRE",op=macr_cara_poutre_ops,sd_prod=tabl_cara_geom, + 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'),), + + UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut= 20 ), + ORIG_INER =SIMP(statut='f',typ='R',max=3,defaut=(0.E+0,0.E+0), + fr="Point par rapport auquel sont calculées les inerties"), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), + + SYME_X =SIMP(statut='f',typ='TXM',into=("OUI",),fr="demi maillage par rapport a x=0"), + SYME_Y =SIMP(statut='f',typ='TXM',into=("OUI",),fr="demi maillage par rapport a y=0"), + + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', + fr="Calcul des caractéristiques équivalentes a plusieurs sections disjointes"), + + GROUP_MA_BORD =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', + fr="Groupe(s) de mailles linéiques, bord(s) de(s) section(s)"), + + b_gma_bord = BLOC( condition = "GROUP_MA_BORD != None", + fr=" calcul des carac. mecaniques", + + NOEUD =SIMP(statut='f',typ=no,max='**', + fr="Simplement pour empecher des pivots nuls le cas echeant. Fournir un noeud quelconque"), + GROUP_MA_INTE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', + fr="groupes de mailles linéiques bordant des trous dans la section"), + ), + + b_reseau = BLOC( condition ="""(GROUP_MA_BORD != None) and (GROUP_MA != None)""", + fr=" calcul des coef de cisaillement équivalents a un reseau de poutres", + regles=(ENSEMBLE('LONGUEUR','LIAISON','MATERIAU') ,), + LONGUEUR =SIMP(statut='f',typ='R',fr="Longueur du réseau de poutres"), + MATERIAU =SIMP(statut='f',typ=mater_sdaster,fr="Materiau elastique lineaire du reseau"), + LIAISON =SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT"), + fr="type de conditions aux limites sur le plancher supérieur" ), + ), + ) +#& MODIF COMMANDE DATE 09/11/2004 AUTEUR VABHHTS J.PELLET +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + + +from Macro.macr_ecla_pg_ops import macr_ecla_pg_ops + +def macr_ecla_pg_prod(self,RESULTAT,MAILLAGE,RESU_INIT,**args): + self.type_sdprod(RESULTAT,AsType(RESU_INIT)) + self.type_sdprod(MAILLAGE,maillage_sdaster) + return None + + +MACR_ECLA_PG=MACRO(nom="MACR_ECLA_PG",op=macr_ecla_pg_ops,sd_prod=macr_ecla_pg_prod, reentrant='n', + UIinfo={"groupes":("Post traitements",)}, + fr="permettre la visualisation des champs aux points de Gauss d'une SD_RESULTAT.", + + + # SD résultat ,modèle et champs à "éclater" : + RESU_INIT =SIMP(statut='o',typ=resultat_sdaster,fr="RESULTAT à éclater",), + MODELE_INIT =SIMP(statut='o',typ=modele_sdaster,fr="MODELE à éclater"), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=("SIEF_ELGA","VARI_ELGA","SIEF_ELGA_DEPL","FLUX_ELGA_TEMP",) ), + + # paramètres numériques de la commande : + SHRINK =SIMP(statut='f',typ='R',defaut= 0.9, fr="Facteur de réduction" ), + TAILLE_MIN =SIMP(statut='f',typ='R',defaut= 0.0, fr="Taille minimale d'un coté" ), + + # concepts produits par la commande : + RESULTAT =SIMP(statut='o',typ=(resultat_sdaster,CO),fr="SD_RESULTAT résultat de la commande"), + MAILLAGE =SIMP(statut='o',typ=(maillage_sdaster,CO),fr="MAILLAGE associé aux cham_no de la SD_RESULTAT"), + + # Sélection éventuelle d'un sous-ensemble des éléments à visualiser : + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + + # Sélection des numéros d'ordre : + regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),), + TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), + ) +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +MACR_ELEM_DYNA=OPER(nom="MACR_ELEM_DYNA",op= 81,sd_prod=macr_elem_dyna, + fr="Définition d un macro élément pour analyse modale ou harmonique par sous structuration dynamique", + reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + regles=(EXCLUS('MATR_AMOR','AMOR_REDUIT' ),), + 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 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +MACR_ELEM_STAT=OPER(nom="MACR_ELEM_STAT",op=86,sd_prod=macr_elem_stat,reentrant='f', + UIinfo={"groupes":("Matrices/vecteurs",)}, + fr="Définition d un macro-élément pour l analyse statique par sous structuration", + regles=(AU_MOINS_UN('DEFINITION','RIGI_MECA','MASS_MECA','CAS_CHARGE'), + ENSEMBLE('DEFINITION','EXTERIEUR'),), + DEFINITION =FACT(statut='f', + MODELE =SIMP(statut='o',typ=modele_sdaster), + CHAM_MATER =SIMP(statut='f',typ=cham_mater), + CARA_ELEM =SIMP(statut='f',typ=cara_elem), + CHAR_MACR_ELEM =SIMP(statut='f',typ=char_meca), + INST =SIMP(statut='f',typ='R',defaut=0.0E+0 ), + NMAX_CAS =SIMP(statut='f',typ='I',defaut=10), + NMAX_CHAR =SIMP(statut='f',typ='I',defaut=10), + ), + EXTERIEUR =FACT(statut='f', + regles=(AU_MOINS_UN('NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + ), + RIGI_MECA =FACT(statut='f', + ), + MASS_MECA =FACT(statut='f', + ), + CAS_CHARGE =FACT(statut='f',max='**', + NOM_CAS =SIMP(statut='o',typ='TXM'), + SUIV =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), + CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), + INST =SIMP(statut='f',typ='R',defaut=0.E+0), + ), +) ; +#& MODIF COMMANDE DATE 07/10/2004 AUTEUR GNICOLAS G.NICOLAS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE GNICOLAS G.NICOLAS + +from Macro.macr_fiab_impr_ops import macr_fiab_impr_ops + +MACR_FIAB_IMPR=MACRO(nom="MACR_FIAB_IMPR",op=macr_fiab_impr_ops, + docu="U7.04.41", + fr="Imprimer les valeurs à transmettre au logiciel de fiabilité.", + ang="Print values for the fiability software", +# +# 1. Le niveau d'information +# + INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)), +# +# 2. Impression de la valeur de la cible +# +# 2.1. ==> La table contenant la valeur à imprimer +# + TABLE_CIBLE = SIMP(statut='o',typ=table_sdaster, + fr="Table contenant la valeur cible.", + ang="Table which includes the target value."), +# +# 2.2. ==> Le nom du paramètre associé à la valeur cible dans cette table +# + NOM_PARA_CIBLE = SIMP(statut='o',typ='TXM', + fr="Nom du paramètre associé à la valeur cible.", + ang="Name of the parameter connected to the target value."), +# +# 3. Impressions des valeurs des éventuels gradients +# + GRADIENTS = FACT(statut='f',min=1,max='**', +# +# 3.1. ==> La table contenant la valeur à imprimer +# + TABLE = SIMP(statut='o',typ=table_sdaster, + fr="Table contenant le gradient.", + ang="Table which includes the gradient."), +# +# 3.2. ==> Le paramètre sensible +# + PARA_SENSI = SIMP(statut='o',typ=(para_sensi,theta_geom), + fr="Paramètre sensible associé au gradient.", + ang="Sensitivity parameter connected to the gradient."), +# +# 3.3. ==> Le nom du paramètre associé au gradient dans cette table +# + NOM_PARA = SIMP(statut='o',typ='TXM', + fr="Nom du paramètre associé au gradient.", + ang="Name of the parameter connected to the gradient."), +# + ), +# +); +#& MODIF COMMANDE DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE GNICOLAS G.NICOLAS + +from Macro.macr_fiabilite_ops import macr_fiabilite_ops + +# +#==== +# 1. Le retour : une liste de rééls. +#==== +# +def macr_fiabilite_prod ( self , **args ): + return listr8_sdaster +# +#==== +# 2. L'entete +#==== +# +MACR_FIABILITE = MACRO ( nom="MACR_FIABILITE",op=macr_fiabilite_ops, + docu="U7.03.31", + sd_prod=macr_fiabilite_prod, + fr="Faire de la mécanique fiabiliste.", + ang="Fiability mechanics.", +# +#==== +# 3. Le niveau d'information +#==== +# + INFO = SIMP(statut="f",typ="I",defaut=1,into=(1,2)), +# +#==== +# 4. Nom et Version du logiciel de fiabilité +#==== +# + LOGICIEL = SIMP(statut="f",typ="TXM",defaut="MEFISTO", + into=("MEFISTO",), + fr="Nom du logiciel de fiabilité.", + ang="Fiability software name."), +# + VERSION = SIMP(statut="f",typ="TXM",defaut="V3_2", + into=("V3_2", "V3_N"), + fr="Version du logiciel de fiabilité.", + ang="Fiability software release."), +# +#==== +# 5. Les entrees-sorties du calcul ASTER déterministe +#==== +# +# 5.1. ==> Le jeu de commandes déterministe +# + UNITE_ESCL = SIMP(statut="o",typ="I", + fr="Unité logique associée aux commandes du calcul ASTER déterministe.", + ang="Logical unit for the commands of the ASTER deterministic calculation."), +# +# 5.2. ==> Le destin des messages produits par ASTER +# + MESS_ASTER = SIMP(statut="f",typ="TXM",defaut="DERNIER", + into=("AUCUN", "DERNIER", "TOUS"), + fr="Quels messages ASTER récupérer.", + ang="Which ASTER messages must be kept."), +# +#==== +# 6. Options +#==== +# 6.1. ==> Générales +# +# 6.1.1. ==> La valeur du seuil +# + SEUIL = SIMP(statut="o",typ="R",max=1, + fr="Le seuil de défaillance.", + ang="Failure threshold."), +# +# 6.1.2. ==> Le type du seuil : on a deux cas de figure selon que +# la défaillance a lieu au dessus d'un seuil maximum ou +# en dessous d'un seuil minimum +# + SEUIL_TYPE = SIMP(statut="o",typ="TXM",max=1, + into=("MINIMUM","MAXIMUM"), + fr="Que faut-il ne pas dépasser : un maximum ou un minimum.", + ang="What is the failure threshold : maximum or minimum."), +# +# 6.2. ==> Pour MEFISTO +# +### en attente de résolution de AL 2004-006 (1/2) b_mefisto=BLOC( condition = "LOGICIEL=='MEFISTO'", +# +# 6.2.1. ==> Pilotage de la recherche du point de conception +# + RECH_PT_CONCEPT = SIMP(statut="f",typ="TXM",defaut="OUI", + into=("OUI","NON"), + fr="Pour trouver le point de conception.", + ang="To find the design point."), +# + b_rech_pt_concept=BLOC( condition = "RECH_PT_CONCEPT=='OUI'", +# + EPSILON_U = SIMP(statut="f",typ="R",defaut=1.0E-2, + fr="Précision du test d'arret sur les points itératifs dans l'espace standard.", + ang="Precision of stop test for iterative points in standard space."), +# + EPSILON_G = SIMP(statut="f",typ="R",defaut=1.0E-2, + fr="Précision du test d'arret sur la proximité de la surface d'état limite.", + ang="Precision of stop test for limit state surface."), +# + TAU = SIMP(statut="f",typ="R",defaut=5.0E-1, + fr="Paramètre de la méthode de minimisation.", + ang="Parameter for the minimization method."), +# + OMEGA = SIMP(statut="f",typ="R",defaut=1.0E-4, + fr="Paramètre de la méthode de minimisation.", + ang="Parameter for the minimization method."), +# + ITER_MAX = SIMP(statut="f",typ="I",defaut=50, + fr="Nombre maximum d'itérations.", + ang="Maximum number of iterations."), + ), +# +# 6.2.2. ==> Méthode(s) employée(s) pour la probabilité de défaillance +# + METHODE_FORM = SIMP(statut="f",typ="TXM",defaut="OUI", + into=("OUI","NON"), + fr="Recherche de la probabilité de défaillance avec la méthode FORM.", + ang="Research of failure probability with FORM method."), +# + METHODE_SORM = SIMP(statut="f",typ="TXM",defaut="NON", + into=("OUI","NON"), + fr="Recherche de la probabilité de défaillance avec la méthode SORM.", + ang="Research of failure probability with SORM method."), +# + TIRAGE_IMPORTANCE = SIMP(statut="f",typ="TXM",defaut="NON", + into=("OUI","NON"), + fr="Recherche de la probabilité de défaillance avec le tirage d'importance.", + ang="Research of failure probability with ."), +# + b_tirage_importance=BLOC( condition = "TIRAGE_IMPORTANCE=='OUI'", +# + NB_SIMULATION = SIMP(statut="f",typ="I",defaut=3, + fr="Nombre de simulations pour le tirage d'importance.", + ang="Number of simulation for."), +# + ), +# +# 6.2.3. ==> Création d'une surface de réponse polynomiale +# + POLYNOME_TAYLOR = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),), + HGRAD = SIMP(statut="f",typ="R",defaut=1.0E-2, + fr="Pas incrémental pour le calcul des gradients.", + ang="Step for calculation of gradients."), + HHESS = SIMP(statut="f",typ="R",defaut=1.0E-2, + fr="Pas incrémental pour le calcul des dérivées secondes.", + ang="Step for calculation of second derivatives."), +# +# 6.2.4. ==> Recherche d'un plan d'expérience +# + PLAN_EXPERIENCE = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"), + fr="Construction d'un plan d'expérience.", + ang="Construction of an experiment plan."), +# + b_plan_experience=BLOC( condition = "PLAN_EXPERIENCE=='OUI'", +# + ALPHA = SIMP(statut="f",typ="R",defaut=2.0E-1, + fr="Plan d'expérience : maille du plan de type composite centré.", + ang="Experiment plane : mesh centered composite."), +# + BETA = SIMP(statut="f",typ="R",defaut=4.0E-1, + fr="Plan d'expérience : maille du plan de type factoriel.", + ang="Experiment plane : mesh factor."), +# + ), +# +# 6.2.5. ==> Les tests +# 6.2.5.1. ==> Test de la sphere +# + T_SPHERE = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"), + fr="Test de la sphère.", + ang="Sphere test."), +# + b_test_de_la_sphere=BLOC( condition = "T_SPHERE=='OUI'", +# + METHODE_TEST = SIMP(statut="f",typ="TXM",defaut="GAUSSIENNE", + into=("GAUSSIENNE","PARAMETRIQUE","REJECTION"), + fr="Type de méthode.", + ang="Method."), +# + NB_POINT = SIMP(statut="f",typ="I",max=1,defaut=60, + fr="Nombre de points de la sphere.", + ang="Number of points over the sphere.") + ), +# +# 6.2.5.2. ==> Test du maximum fort +# + T_MAXIMUM_FORT = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"), + fr="Test du maximum fort.", + ang="Strong maximum test."), +# + b_test_du_maximum_fort=BLOC( condition = "T_MAXIMUM_FORT=='OUI'", +# + COS_LIM = SIMP(statut="f",typ="R",max=1,defaut=1.0, + fr="Cosinus de l'angle d'exclusion.", + ang="Cosine of angle of exclusion."), +# + DPROB = SIMP(statut="f",typ="R",max=1,defaut=4.3E-1, + fr="Fraction d'iso-densité de probabilité de défaillance.", + ang="Fraction.") +# + ), +# +# 6.2.5.3. ==> Test du hessien +# + T_HESSIEN = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"), + fr="Test du hessien.", + ang="Hessian test."), +# +# 6.2.6. ==> Les correlations entre les variables +# + MATRICE = SIMP(statut="o",typ="R",max="**", + fr="Matrice de corrélation entre les variables.", + ang="Correlation matrix."), +# +### en attente de résolution de AL 2004-006 (2/2) ), +# +#==== +# 7. Definition des paramètres +#==== +# + VARIABLE = FACT(statut="o",min=1,max="**", +# +# 7.1. ==> Nom de la variable +# + NOM = SIMP(statut="o",typ="TXM", + fr="Nom de la variable, identique au nom de concept PARA_SENSI.", + ang="Name of the variable, identical to the name of the PARA_SENSI conceipt."), +# +# 7.2. ==> Loi de distribution +# + LOI = SIMP(statut="o",typ="TXM", + into=("UNIFORME","NORMALE","LOGNORMALE","NORMALE_TRONQUEE"), + fr="Choix de la loi", + ang="Law."), +# +# 7.2.1. ==> Loi normale +# + b_normale=BLOC(condition="LOI=='NORMALE'", +# + VALE_MOY = SIMP(statut="o",typ="R",max=1, + fr="Valeur moyenne.", + ang="Mean value."), +# + ECART_TYPE = SIMP(statut="o",typ="R",max=1, + fr="Ecart type.", + ang="Standard deviation."), +# + ), +# +# 7.2.2. ==> Loi lognormale +# + b_lognormale=BLOC(condition="LOI=='LOGNORMALE'", +# + VALE_MIN = SIMP(statut="o",typ="R",max=1, + fr="Valeur minimale.", + ang="Minimal value."), +# + VALE_MOY = SIMP(statut="f",typ="R",max=1, + fr="Valeur moyenne dans l'espace de la loi normale.", + ang="Mean value in the space of the normal law."), +# + ECART_TYPE = SIMP(statut="f",typ="R",max=1, + fr="Ecart type dans l'espace de la loi normale.", + ang="Standard deviation in the space of the normal law."), +# + VALE_MOY_PHY = SIMP(statut="f",typ="R",max=1, + fr="Valeur moyenne dans l'espace physique.", + ang="Mean value in the physical space."), +# + ECART_TYPE_PHY = SIMP(statut="f",typ="R",max=1, + fr="Ecart type dans l'espace physique.", + ang="Standard deviation in the physical space."), +# + regles=(AU_MOINS_UN("VALE_MOY" ,"VALE_MOY_PHY"), + AU_MOINS_UN("ECART_TYPE","ECART_TYPE_PHY"), + EXCLUS ("VALE_MOY" ,"VALE_MOY_PHY"), + EXCLUS ("VALE_MOY" ,"ECART_TYPE_PHY"), + EXCLUS ("ECART_TYPE","VALE_MOY_PHY"), + EXCLUS ("ECART_TYPE","ECART_TYPE_PHY")), +# + ), +# +# 7.2.3. ==> Loi uniforme +# + b_uniforme=BLOC(condition="LOI=='UNIFORME'", +# + VALE_MIN = SIMP(statut="o",typ="R",max=1, + fr="Valeur minimale.", + ang="Minimal value."), +# + VALE_MAX = SIMP(statut="o",typ="R",max=1, + fr="Valeur maximale.", + ang="Maximal value."), +# + ), +# +# 7.2.4. ==> Loi normale tronquée +# + b_normale_tronquee=BLOC(condition="LOI=='NORMALE_TRONQUEE'", +# + VALE_MOY = SIMP(statut="o",typ="R",max=1, + fr="Valeur moyenne de la loi normale complète.", + ang="Mean value for the entire normal law."), +# + ECART_TYPE = SIMP(statut="o",typ="R",max=1, + fr="Ecart type de la loi normale complète.", + ang="Standard deviation for the entire normal law."), +# + VALE_MIN = SIMP(statut="o",typ="R",max=1, + fr="Valeur minimale.", + ang="Minimal value."), +# + VALE_MAX = SIMP(statut="o",typ="R.",max=1, + fr="Valeur maximale.", + ang="Maximal value."), +# + ), +# +# 7.3. ==> Paramètres de calcul +# 7.3.1. ==> Soit on cherche le point de conception, soit on le connait deja +# + regles=(EXCLUS("POINT_INI","POINT_CONCEPT"), + EXCLUS("POINT_REF","POINT_CONCEPT"),), +# +# 7.3.2. ==> Quand on cherche le point de conception, on peut préciser le départ de l'algorithme. +# Si on ne le fait pas, le programme prendra la valeur moyenne. +# + POINT_INI = SIMP(statut="f",typ="R",max=1, + fr="Point de démarrage de l'algorithme itératif.", + ang="Initial point for iterative process."), +# +# 7.3.3. ==> Quand on cherche le point de conception, on peut préciser un point de référence pour normaliser. +# Si on ne le fait pas, le programme prendra la valeur moyenne. +# + POINT_REF = SIMP(statut="f",typ="R",max=1, + fr="Point de référence de l'algorithme itératif.", + ang="Reference point for iterative process."), +# +# 7.3.4. ==> Quand on cherche uniquement la probabilité de défaillance, il faut donner le point de conception +# + POINT_CONCEPT = SIMP(statut="f",typ="R",max=1, + fr="Point de conception.", + ang="Design point."), +# +# 7.4. ==> Mode d'obtention du gradient par rapport à ce paramètre +# + GRADIENT = SIMP(statut="o",typ="TXM",max=1, + into=("OUI","NON"), + fr="ASTER calcule directement le gradient.", + ang="ASTER computes the gradient for this parameter."), + + b_gradient=BLOC(condition="GRADIENT=='NON'", + INCREMENT = SIMP(statut="o",typ="R",max=1, + fr="Incrément dans la direction.", + ang="Direction increment."), + ), + + ), +# +); +#& MODIF COMMANDE DATE 03/11/2004 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 GNICOLAS G.NICOLAS + +from Macro.macr_adap_mail_ops import macr_adap_mail_ops + +MACR_INFO_MAIL=MACRO(nom="MACR_INFO_MAIL",op=macr_adap_mail_ops, + docu="U7.03.02-b", + 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="V7_1", + into=("V7_1", "V7_N", "V7_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. Gestion des éléments autres que des simplexes +# 0 : autres elements refusés +# 1 : analyse exclusivement sur les simplexes, mais autres éléments acceptés +# 2 : tous (defaut) +# + NON_SIMPLEXE = SIMP(statut='f',typ='I',defaut=2,into=(0,1,2), + fr="Acceptation d'éléments quad, hexa et penta", + ang="quad, hexa and penta elements allowed" ), +# +# 5. Le nom du maillage a analyser +# + MAILLAGE = SIMP(statut='o',typ=maillage_sdaster, + fr="Maillage à analyser.", + ang="Mesh to be checked." ), +# +# 6. Suivi d'une frontiere +# + MAILLAGE_FRONTIERE = SIMP(statut='f',typ=maillage_sdaster, + fr="Maillage de la frontiere à suivre", + ang="Boundary mesh" ), +# + b_frontiere =BLOC( condition = " MAILLAGE_FRONTIERE != None " , + fr="Groupes définissant la frontière", + ang="Groups which define the boundary", + GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**' ), + ) , +# +# 7. Les options ; par defaut, on ne fait que les nombres +# 7.1. Nombre de noeuds et elements +# + NOMBRE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), + fr="Nombre de noeuds et éléments du maillage", + ang="Number of nodes and elements in the mesh" ), +# +# 7.2. Determination de la qualite des elements du maillage +# + QUALITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), + fr="Qualité du maillage", + ang="Mesh quality" ), +# +# 7.3. Connexite du maillage +# + CONNEXITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), + fr="Connexité du maillage.", + ang="Mesh connexity." ), +# +# 7.4. Taille des sous-domaines du maillage +# + TAILLE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), + fr="Tailles des sous-domaines du maillage.", + ang="Sizes of mesh sub-domains." ), +# +# 7.5. Controle de la non-interpenetration des elements +# + 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 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +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_sdaster) + return None + + +MACR_LIGN_COUPE=MACRO(nom="MACR_LIGN_COUPE",op=macr_lign_coupe_ops,sd_prod=macr_lign_coupe_prod, + 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_sdaster ), + UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=25), + LIGN_COUPE =FACT(statut='o',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_sdaster,CO)), + ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +from Macro.macr_recal_ops import macr_recal_ops + +def macr_recal_prod(self,**args ): + return listr8_sdaster + +MACR_RECAL = MACRO(nom="MACR_RECAL",op=macr_recal_ops, + UIinfo={"groupes":("Résultats et champs",)}, + sd_prod=macr_recal_prod, + fr="Réalise le recalage de modèles Aster", + UNITE_ESCL =SIMP(statut='o',typ='I'), + RESU_EXP =SIMP(statut='o',typ=assd,max='**'), + POIDS =SIMP(statut='f',typ=assd,max='**'), + RESU_CALC =SIMP(statut='o',typ=assd,max='**'), + LIST_PARA =SIMP(statut='o',typ=assd,max='**'), + 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', + UNITE =SIMP(statut='f',typ='I',defaut=90), + INTERACTIF =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON")),) +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE 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_sdaster) + if CAS_CHARGE[0]['NOM_CAS'] != None : return mult_elas + if CAS_CHARGE[0]['MODE_FOURIER'] != None : return fourier_elas + raise AsException("type de concept resultat non prevu") + +MACRO_ELAS_MULT=MACRO(nom="MACRO_ELAS_MULT",op=macro_elas_mult_ops,sd_prod=macro_elas_mult_prod,reentrant='f', + UIinfo={"groupes":("Résolution",)}, + regles=(UN_PARMI('CHAR_MECA_GLOBAL','CHAR_CINE_GLOBAL','LIAISON_DISCRET', ),), + MODELE =SIMP(statut='o',typ=modele_sdaster), + CHAM_MATER =SIMP(statut='f',typ=cham_mater), + CARA_ELEM =SIMP(statut='f',typ=cara_elem), + NUME_DDL =SIMP(statut='f',typ=(nume_ddl_sdaster,CO)), + CHAR_MECA_GLOBAL=SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), + CHAR_CINE_GLOBAL=SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), + LIAISON_DISCRET =SIMP(statut='f',typ='TXM',into=("OUI",)), + CAS_CHARGE =FACT(statut='o',max='**', + regles=(UN_PARMI('NOM_CAS','MODE_FOURIER'), + UN_PARMI('CHAR_MECA','CHAR_CINE','VECT_ASSE'),), + NOM_CAS =SIMP(statut='f',typ='TXM' ), + MODE_FOURIER =SIMP(statut='f',typ='I' ), + TYPE_MODE =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ), + CHAR_MECA =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), + CHAR_CINE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), + OPTION =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', + into=("EFGE_ELNO_DEPL","EPOT_ELEM_DEPL","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL", + "SIGM_ELNO_CART","EFGE_ELNO_CART","DEGE_ELNO_DEPL","EPSI_ELNO_DEPL", + "EPSI_ELGA_DEPL","EPSG_ELNO_DEPL","EPSG_ELGA_DEPL","EPSP_ELNO","EPSP_ELGA", + "ECIN_ELEM_DEPL","FLUX_ELGA_TEMP","FLUX_ELNO_TEMP","SOUR_ELGA_ELEC", + "PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG","INTE_ELNO_ACTI", + "INTE_ELNO_REAC","SIGM_NOZ1_ELGA","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', + 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 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +from Macro.macro_matr_ajou_ops import macro_matr_ajou_ops + +def macro_matr_ajou_prod(self,MATR_AMOR_AJOU,MATR_MASS_AJOU,MATR_RIGI_AJOU,FORC_AJOU,**args): + self.type_sdprod(MATR_AMOR_AJOU,matr_asse_gene_r) + self.type_sdprod(MATR_MASS_AJOU,matr_asse_gene_r) + self.type_sdprod(MATR_RIGI_AJOU,matr_asse_gene_r) + if FORC_AJOU != None: + for m in FORC_AJOU: + self.type_sdprod(m['VECTEUR'],vect_asse_gene) + + return None + +MACRO_MATR_AJOU=MACRO(nom="MACRO_MATR_AJOU",op=macro_matr_ajou_ops,sd_prod=macro_matr_ajou_prod, + UIinfo={"groupes":("Matrices/vecteurs",)}, + regles=(AU_MOINS_UN('MODE_MECA','DEPL_IMPO','MODELE_GENE'), + AU_MOINS_UN('MATR_MASS_AJOU','MATR_AMOR_AJOU','MATR_RIGI_AJOU'), + EXCLUS('MODE_MECA','DEPL_IMPO','MODELE_GENE'), + EXCLUS('MONO_APPUI','MODE_STAT',), + ), + MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), + GROUP_MA_FLUIDE =SIMP(statut='o',typ=grma), + GROUP_MA_INTERF =SIMP(statut='o',typ=grma), + MODELISATION =SIMP(statut='o',typ='TXM',into=("PLAN","AXIS","3D")), + FLUIDE =FACT(statut='o',max='**', + RHO =SIMP(statut='o',typ='R'), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)), + GROUP_MA =SIMP(statut='f',typ=grma), + MAILLE =SIMP(statut='f',typ=ma), + ), + DDL_IMPO =FACT(statut='o',max='**', + regles=(UN_PARMI('NOEUD','GROUP_NO'), + UN_PARMI('PRES_FLUIDE','PRES_SORTIE'),), + NOEUD =SIMP(statut='f',typ=no), + GROUP_NO =SIMP(statut='f',typ=grno), + PRES_FLUIDE =SIMP(statut='f',typ='R'), + PRES_SORTIE =SIMP(statut='f',typ='R'), + ), + ECOULEMENT =FACT(statut='f', + GROUP_MA_1 =SIMP(statut='o',typ=grma), + GROUP_MA_2 =SIMP(statut='o',typ=grma), + VNOR_1 =SIMP(statut='o',typ='R'), + VNOR_2 =SIMP(statut='f',typ='R'), + POTENTIEL =SIMP(statut='f',typ=evol_ther), + ), + MODE_MECA =SIMP(statut='f',typ=mode_meca), + DEPL_IMPO =SIMP(statut='f',typ=cham_no_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',max='**', + DIRECTION =SIMP(statut='o',typ='R',max=3), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + VECTEUR =SIMP(statut='o',typ=(CO,vect_asse_gene)), + ), + SOLVEUR =FACT(statut='d', + METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), + b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", + RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), + ), + b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), + ), + b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", + fr="Paramètres relatifs à la non iversibilité de la matrice à factorise", + NPREC =SIMP(statut='f',typ='I',defaut= 8 ), + STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", + PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), + NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), + RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), + NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), + ), + ), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), + NOEUD_DOUBLE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), + AVEC_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), +) +#& MODIF COMMANDE DATE 01/02/2005 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. +# ====================================================================== + +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_sdaster) + for m in MATR_ASSE: + opti=m['OPTION'] + + if opti in ( "RIGI_MECA","RIGI_FLUI_STRU","RIGI_MECA_LAGR" , + "MASS_MECA" , "MASS_FLUI_STRU" ,"RIGI_GEOM" ,"RIGI_ROTA", + "AMOR_MECA","IMPE_MECA","MASS_ID_MDEP_R","MASS_ID_MDNS_R", + "ONDE_FLUI","MASS_MECA_DIAG" ) : t=matr_asse_depl_r + + if opti in ( "RIGI_ACOU","MASS_ACOU","AMOR_ACOU",) : t=matr_asse_pres_c + + if opti in ( "RIGI_THER","MASS_THER","RIGI_THER_CONV" , + "RIGI_THER_CONV_D","MASS_ID_MTEM_R","MASS_ID_MTNS_R",) : t=matr_asse_temp_r + + if opti == "RIGI_MECA_HYST" : t= matr_asse_depl_c + + self.type_sdprod(m['MATRICE'],t) + return None + +MACRO_MATR_ASSE=MACRO(nom="MACRO_MATR_ASSE",op=macro_matr_asse_ops, + UIinfo={"groupes":("Matrices/vecteurs",)}, + sd_prod=macro_matr_asse_prod, + fr="Calcul des matrices assemblées (matr_asse_gd) par exemple de rigidité, de masse ", + MODELE =SIMP(statut='o',typ=modele_sdaster), + CHAM_MATER =SIMP(statut='f',typ=cham_mater), + INST =SIMP(statut='f',typ='R',defaut=0.), + CARA_ELEM =SIMP(statut='f',typ=cara_elem), + CHARGE =SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**'), + NUME_DDL =SIMP(statut='o',typ=(nume_ddl_sdaster,CO)), + SOLVEUR =FACT(statut='d', + METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT", + into=("LDLT","MULT_FRONT","GCPC")), + RENUM =SIMP(statut='f',typ='TXM',into=("SANS","RCMK","MD","MDA","METIS")), + ), + + MATR_ASSE =FACT(statut='o',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",) + ), + + b_rigi_meca = BLOC( condition = "OPTION=='RIGI_MECA'", + MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0), + ), + + b_rigi_geom = BLOC( condition = "OPTION=='RIGI_GEOM'", + SIEF_ELGA =SIMP(statut='o',typ=cham_elem_sief_r), + MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0), + ), + + b_rigi_meca_lagr = BLOC( condition = "OPTION=='RIGI_MECA_LAGR'", + THETA =SIMP(statut='o',typ=theta_geom), + PROPAGATION =SIMP(statut='f',typ='R'), + ), + + b_rigi_ther = BLOC( condition = "OPTION=='RIGI_THER'", + MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0), + ), + + ), # fin MATR_ASSE + + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), +) ; +#& MODIF COMMANDE DATE 03/11/2004 AUTEUR ACBHHCD G.DEVESA +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +from Macro.macro_miss_3d_ops import macro_miss_3d_ops + +MACRO_MISS_3D=MACRO(nom="MACRO_MISS_3D",op=macro_miss_3d_ops,fr=" ", + UIinfo={"groupes":("Matrices/vecteurs",)}, + OPTION =FACT(statut='o', + regles=(UN_PARMI('TOUT','MODULE'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)), + MODULE =SIMP(statut='f',typ='TXM',into=("PRE_MISS","MISS_EVOL","MISS_IMPE")), + ), + PROJET =SIMP(statut='o',typ='TXM'), + REPERTOIRE =SIMP(statut='f',typ='TXM'), + VERSION =SIMP(statut='f',typ='TXM',into=("V1_2","V1_3",),defaut="V1_2"), + UNITE_IMPR_ASTER=SIMP(statut='f',typ='I',defaut=25), + UNITE_OPTI_MISS =SIMP(statut='f',typ='I',defaut=26), + UNITE_MODELE_SOL=SIMP(statut='f',typ='I',defaut=27), + UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30), +) ; +#& MODIF COMMANDE DATE 28/02/2005 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 + +MACRO_MODE_MECA=MACRO(nom="MACRO_MODE_MECA",op=macro_mode_meca_ops,sd_prod=mode_meca, + reentrant='n', + UIinfo={"groupes":("Résolution",)}, + MATR_A =SIMP(statut='o',typ=matr_asse_depl_r ), + MATR_B =SIMP(statut='o',typ=matr_asse_depl_r ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), +# ce mot cle ne devrait il pas etre dans calc_freq + METHODE =SIMP(statut='f',typ='TXM',defaut="SORENSEN", + into=("TRI_DIAG","JACOBI","SORENSEN",) ), + b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'", + PREC_ORTHO =SIMP(statut='f',typ='R',defaut= 1.E-12,val_min=0.E+0 ), + NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), + PREC_LANCZOS =SIMP(statut='f',typ='R',defaut= 1.E-8,val_min=0.E+0 ), + NMAX_ITER_QR =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ), + ), + b_jacobi =BLOC(condition = "METHODE == 'JACOBI'", + PREC_BATHE =SIMP(statut='f',typ='R',defaut= 1.E-10,val_min=0.E+0 ), + NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40,val_min=0 ), + PREC_JACOBI =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ), + NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12,val_min=0 ), + ), + b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'", + PREC_SOREN =SIMP(statut='f',typ='R',defaut= 0.E+0,val_min=0.E+0 ), + NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20,val_min=0 ), + PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717,val_min=0.E+0 ), + ), + OPTION =SIMP(statut='f',typ='TXM',defaut="SANS", + into=("MODE_RIGIDE","SANS") ), + CALC_FREQ =FACT(statut='d',min=0, + regles=(UN_PARMI('FREQ','FREQ_MAX'), + PRESENT_PRESENT('FREQ_MIN','FREQ_MAX'), + PRESENT_PRESENT('FREQ_MAX','NB_BLOC_FREQ'), + EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),), + FREQ =SIMP(statut='f',typ='R',min=2,validators=NoRepeat(),max='**',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, + STOP_ERREUR =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-6 ), + PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-3 ), + STURM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + NORM_MODE =FACT(statut='o',max='**', + MASS_INER =SIMP(statut='o',typ=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', + CRIT_EXTR =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN", + into=("MASS_EFFE_UN","MASS_GENE") ), + SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + ), + IMPRESSION =FACT(statut='d', + TOUT_PARA =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + CUMUL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + CRIT_EXTR =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN", + into=("MASS_EFFE_UN","MASS_GENE",) ), + ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +from Macro.macro_proj_base_ops import macro_proj_base_ops + +def macro_proj_base_prod(self,MATR_ASSE_GENE,VECT_ASSE_GENE,PROFIL,**args ): + if MATR_ASSE_GENE != None: + for m in MATR_ASSE_GENE: + self.type_sdprod(m['MATRICE'],matr_asse_gene_r) + 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, + UIinfo={"groupes":("Matrices/vecteurs",)}, + sd_prod=macro_proj_base_prod, + fr="Projection des matrices et/ou vecteurs assemblés sur une base de vecteurs", + BASE =SIMP(statut='o',typ=(mode_meca,mode_stat,base_modale,mode_gene) ), + NB_VECT =SIMP(statut='f',typ='I',defaut= 9999), + PROFIL =SIMP(statut='f',typ='TXM',defaut="DIAG",into=("PLEIN","DIAG") ), + MATR_ASSE_GENE =FACT(statut='f',max='**', + MATRICE =SIMP(statut='o',typ=(CO,matr_asse)), + MATR_ASSE =SIMP(statut='f',typ=matr_asse_depl_r), + MATR_ASSE_GENE =SIMP(statut='f',typ=matr_asse_gene_r), + ), + VECT_ASSE_GENE =FACT(statut='f',max='**', + 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 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +MAJ_CATA=PROC(nom="MAJ_CATA",op=20, + UIinfo={"groupes":("Gestion du travail",)}, + fr="Compilation des catalogues de commandes et d éléments", + + ELEMENT =FACT(statut='f',), + +) ; +#& MODIF COMMANDE DATE 10/02/2005 AUTEUR LEBOUVIE F.LEBOUVIER +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE VABHHTS J.PELLET +MECA_STATIQUE=OPER(nom="MECA_STATIQUE",op=46,sd_prod=evol_elas, + fr="Analyse mécanique statique linéaire",reentrant='f', + UIinfo={"groupes":("Résolution",)}, + regles=(EXCLUS("INST","LIST_INST"), + AU_MOINS_UN('CHAM_MATER','CARA_ELEM',), ), + MODELE =SIMP(statut='o',typ=modele_sdaster), + CHAM_MATER =SIMP(statut='f',typ=cham_mater, + fr="le CHAM_MATER est nécessaire, sauf si le modèle ne contient que des éléments discrets (modélisations DIS_XXX)", + ang="CHAM_MATER is compulsory, except if the model contains only discret elements (modelizations DIS_XXX)"), + CARA_ELEM =SIMP(statut='f',typ=cara_elem, + fr="le CARA_ELEM est nécessaire dès que le modèle contient des éléments de structure : coques, poutres, ...", + ang="CARA_ELEM is compulsory as soon as the model contains structural elements : plates, beams, ..."), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + EXCIT =FACT(statut='o',max='**', + CHARGE =SIMP(statut='o',typ=(char_meca,char_cine_meca)), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), + ), + INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + INST_FIN =SIMP(statut='f',typ='R'), + OPTION =SIMP(statut='f',typ='TXM',into=("SIEF_ELGA_DEPL","SANS"),defaut="SIEF_ELGA_DEPL",max=1, + fr="seule option : contraintes aux points de Gauss. Utiliser CALC_ELEM pour les autres.", + ), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des paramètres de sensibilité.", + ang="List of sensitivity parameters"), + SOLVEUR =FACT(statut='d', + METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","FETI") ), + b_feti =BLOC(condition = "METHODE == 'FETI' ",fr="Paramètres de la méthode FETI 1", + PARTITION =SIMP(statut='o',typ=sd_feti_sdaster), + RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), + RESI_RELA =SIMP(statut='f',typ='R',defaut=1.E-6,val_min=0.), + NMAX_ITER =SIMP(statut='f',typ='I',defaut=0,val_min=0), + TYPE_REORTHO_DD =SIMP(statut='f',typ='TXM',defaut="GSM",into=("SANS","GS","GSM","IGSM") ), + NB_REORTHO_DD =SIMP(statut='f',typ='I',defaut=0,val_min=0), + PRE_COND =SIMP(statut='f',typ='TXM',defaut="LUMPE",into=("LUMPE","SANS") ), + SCALING =SIMP(statut='f',typ='TXM',defaut="MULT",into=("SANS","MULT") ), + VERIF_SDFETI =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + TEST_CONTINU =SIMP(statut='f',typ='R',defaut=1.E-8,val_min=0.), + INFO_FETI =SIMP(statut='f',typ='TXM',defaut='FFFFFFFF') + ), + b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", + RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), + ), + b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), + ), + b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' or METHODE == 'FETI' ", + fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", + NPREC =SIMP(statut='f',typ='I',defaut=8), + STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", + PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), + NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), + RESI_RELA =SIMP(statut='f',typ='R',defaut=1.E-6), + NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), + ), + ), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE GNICOLAS G.NICOLAS +MEMO_NOM_SENSI=PROC(nom="MEMO_NOM_SENSI",op=129, + UIinfo={"groupes":("Fonction",)}, + fr="Mémorisation des noms des concepts dérivés.", + ang="Memorisation of the names of the sensitive concepts.", + + regles=(AU_MOINS_UN('NOM','NOM_ZERO','NOM_UN'),), + + NOM=FACT(statut='f',max='**', + regles=(PRESENT_PRESENT('MOT_CLE','VALEUR','MOT_FACT' ),), + + NOM_SD=SIMP(statut='o',typ='TXM', + fr="Nom de la structure de base", + ang="Name of the basic structure"), + + PARA_SENSI=SIMP(statut='o',typ=(para_sensi,theta_geom), + fr="Nom du paramètre sensible", + ang="Name of the sensitive parameter"), + + NOM_COMPOSE=SIMP(statut='f',typ='TXM',defaut=" ", + fr="Nom de la structure composée", + ang="Name of the built structure"), + + MOT_FACT=SIMP(statut='f',typ='TXM',max='**', + fr="Liste des mots clés facteurs concernés par la dérivation", + ang="Factor keyword list involved in derivation"), + + MOT_CLE=SIMP(statut='f',typ='TXM',max='**', + fr="Liste des mots clés concernés par la dérivation", + ang="Keyword list involved in derivation"), + + VALEUR=SIMP(statut='f',typ='TXM',max='**', + fr="Liste des objets concernés par la dérivation", + ang="Object list involved in derivation"), + + ), + + NOM_ZERO=SIMP(statut='f',typ=fonction_sdaster, + fr="Nom de la fonction nulle", + ang="Name of the zero fonction"), + + NOM_UN =SIMP(statut='f',typ=fonction_sdaster, + fr="Nom de la fonction unité", + ang="Name of the one fonction"), + +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +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", + reentrant='n', + UIinfo={"groupes":("Résolution",)}, + BASE_MODALE =SIMP(statut='o',typ=base_modale ), + NB_MODE =SIMP(statut='f',typ='I',defaut= 999 ), + NB_SECTEUR =SIMP(statut='o',typ='I' ), + LIAISON =FACT(statut='o', + DROITE =SIMP(statut='o',typ='TXM' ), + GAUCHE =SIMP(statut='o',typ='TXM' ), + AXE =SIMP(statut='f',typ='TXM' ), + ), + VERI_CYCL =FACT(statut='f', + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF",) ), + DIST_REFE =SIMP(statut='f',typ='R' ), + ), + CALCUL =FACT(statut='o', + TOUT_DIAM =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NB_DIAM =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE" + ,into=("PLUS_PETITE","CENTRE","BANDE") ), + b_centre =BLOC(condition = "OPTION == 'CENTRE'", + FREQ =SIMP(statut='o',typ='R',), + ), + b_bande =BLOC(condition = "OPTION == 'BANDE'", + FREQ =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max=2), + ), +# NMAX_FREQ n a-t-il pas un sens qu avec OPTION CENTRE + NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10 ), + PREC_SEPARE =SIMP(statut='f',typ='R',defaut= 100. ), + PREC_AJUSTE =SIMP(statut='f',typ='R',defaut= 1.E-6 ), + NMAX_ITER =SIMP(statut='f',typ='I',defaut= 50 ), + ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; +#& MODIF COMMANDE DATE 20/10/2004 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", + 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',typ='TXM',defaut="DYNAMIQUE", + into=("MODE_FLAMB","DYNAMIQUE"),fr="Type d analyse" ), + b_dynam =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'", + CALC_FREQ =FACT(statut='o',fr="Choix des paramètres pour le calcul des valeurs propres", + + OPTION =SIMP(statut='f',typ='TXM',defaut="AJUSTE",into=("SEPARE","AJUSTE","PROCHE"), + fr="Choix de l option pour estimer les valeurs propres" ), + FREQ =SIMP(statut='o',typ='R',max='**'), + AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), + NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 0,val_min=0 ), + NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30,val_min=0 ), + PREC_SEPARE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0 ), + NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15,val_min=0 ), + PREC_AJUSTE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0 ), + + NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ), + NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), + PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0, ), + SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, ), + ), + ), + b_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'", + CALC_FREQ =FACT(statut='o',fr="Choix des paramètres pour le calcul des valeurs propres", + + OPTION =SIMP(statut='f',typ='TXM',defaut="AJUSTE",into=("SEPARE","AJUSTE","PROCHE"), + fr="Choix de l option pour estimer les valeurs propres" ), + CHAR_CRIT =SIMP(statut='o',typ='R',validators=NoRepeat(),max='**' ), + NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 0,val_min=0 ), + NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30,val_min=0 ), + PREC_SEPARE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0, ), + NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15 ), + PREC_AJUSTE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0, ), + + NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ), + NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), + PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0, ), + SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, ), + ), + ), + CALC_MODE =FACT(statut='d',min=0,fr="Choix des paramètres pour le calcul des vecteurs propres", + OPTION =SIMP(statut='f',typ='TXM',defaut="DIRECT",into=("DIRECT","RAYLEIGH") ), + PREC =SIMP(statut='f',typ='R',defaut= 1.E-5,val_min=0.E+0,fr="Précision de convergence" ), + NMAX_ITER =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ), + ), + VERI_MODE =FACT(statut='d',min=0, + STOP_ERREUR =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, + fr="Valeur limite admise pour l ereur a posteriori des modes" ), + ), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des param\350tres de sensibilit\351.", + ang="List of sensitivity parameters", + ), + b_sensibilite =BLOC(condition = "SENSIBILITE != None", + CHAM_MATER =SIMP(statut='f',typ=cham_mater ), + CARA_ELEM =SIMP(statut='f',typ=cara_elem ), + EXCIT =FACT(statut='f',max='**',), # que pour NMDOME + ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), + TITRE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), +) ; +#& MODIF COMMANDE DATE 20/10/2004 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_depl_c : return mode_meca_c + if AsType(MATR_A) == matr_asse_pres_r : return mode_acou + if AsType(MATR_A) == matr_asse_gene_r : return mode_gene + 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", + reentrant='n', + UIinfo={"groupes":("Résolution",)}, + MATR_A =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,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,matr_asse_gene_r) ), + METHODE =SIMP(statut='f',typ='TXM',defaut="SORENSEN", + into=("TRI_DIAG","JACOBI","SORENSEN") ), + b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'", + PREC_ORTHO =SIMP(statut='f',typ='R',defaut= 1.E-12,val_min=0.E+0 ), + NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), + PREC_LANCZOS =SIMP(statut='f',typ='R',defaut= 1.E-8,val_min=0.E+0 ), + NMAX_ITER_QR =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ), + ), + b_jacobi =BLOC(condition = "METHODE == 'JACOBI'", + PREC_BATHE =SIMP(statut='f',typ='R',defaut= 1.E-10,val_min=0.E+0 ), + NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40,val_min=0 ), + PREC_JACOBI =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ), + NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12,val_min=0 ), + ), + b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'", + PREC_SOREN =SIMP(statut='f',typ='R',defaut= 0.E+0,val_min=0.E+0 ), + NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20,val_min=0 ), + PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717,val_min=0.E+0 ), + ), + TYPE_RESU =SIMP(statut='f',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, + OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE"), + fr="Choix de l option et par conséquent du shift du problème modal" ), + b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres", + NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ), + ), + b_centre =BLOC(condition = "OPTION == 'CENTRE'", + fr="Recherche des valeurs propres les plus proches d une valeur donnée", + CHAR_CRIT =SIMP(statut='o',typ='R', + fr="Charge critique autour de laquelle on cherche les charges critiques propres"), + NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ), + ), + b_bande =BLOC(condition = "(OPTION == 'BANDE')", + fr="Recherche des valeurs propres dans une bande donnée", + CHAR_CRIT =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max=2, + fr="Valeur des deux charges critiques délimitant la bande de recherche"), + ), + APPROCHE =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG"), + fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ), + regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),), + DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ), + COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ), + NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ), + NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), + PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0 ), + SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ), + ), + ), + + b_dynam =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'", + CALC_FREQ =FACT(statut='d',min=0, + OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE"), + fr="Choix de l option et par conséquent du shift du problème modal" ), + b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres", + NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ), + ), + b_centre =BLOC(condition = "OPTION == 'CENTRE'", + fr="Recherche des valeurs propres les plus proches d une valeur donnée", + FREQ =SIMP(statut='o',typ='R', + fr="Fréquence autour de laquelle on cherche les fréquences propres"), + AMOR_REDUIT =SIMP(statut='f',typ='R',), + NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ), + ), + b_bande =BLOC(condition = "(OPTION == 'BANDE')", + fr="Recherche des valeurs propres dans une bande donnée", + FREQ =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max=2, + fr="Valeur des deux fréquences délimitant la bande de recherche"), + ), + APPROCHE =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG","COMPLEXE"), + fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ), + regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),), + DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ), + COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ), + NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ), + NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), + PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0 ), + SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ), + ), + ), + + VERI_MODE =FACT(statut='d',min=0, + STOP_ERREUR =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-3,val_min=0.E+0 ), + SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-6,val_min=0.E+0, + fr="Valeur limite admise pour l ereur a posteriori des modes" ), + STURM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des param\350tres de sensibilit\351.", + ang="List of sensitivity parameters", + ), + b_sensibilite =BLOC(condition = "SENSIBILITE != None", + CHAM_MATER =SIMP(statut='f',typ=cham_mater ), + CARA_ELEM =SIMP(statut='f',typ=cara_elem ), + EXCIT =FACT(statut='f',max='**',), # que pour NMDOME + ), + STOP_FREQ_VIDE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +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", + reentrant='n', + UIinfo={"groupes":("Résolution",)}, + MATR_RIGI =SIMP(statut='o',typ=matr_asse_depl_r ), + MATR_MASS =SIMP(statut='f',typ=matr_asse_depl_r ), + regles=(UN_PARMI('MODE_STAT','FORCE_NODALE','PSEUDO_MODE'),), + MODE_STAT =FACT(statut='f',max='**', + regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'), + UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ,), + NOEUD =SIMP(statut='f',typ=no ,max='**'), + GROUP_NO =SIMP(statut='f',typ=grno ,max='**'), + TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ,), + AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'), + SANS_CMP =SIMP(statut='f',typ='TXM',max='**'), + ), + FORCE_NODALE =FACT(statut='f',max='**', + regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'), + UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",), ), + NOEUD =SIMP(statut='f',typ=no ,max='**'), + GROUP_NO =SIMP(statut='f',typ=grno ,max='**'), + TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",), ), + AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'), + SANS_CMP =SIMP(statut='f',typ='TXM',max='**'), + ), + PSEUDO_MODE =FACT(statut='f',max='**', + regles=(UN_PARMI('AXE','DIRECTION','TOUT','NOEUD','GROUP_NO' ),), + AXE =SIMP(statut='f',typ='TXM',into=("X","Y","Z"),max=3), + DIRECTION =SIMP(statut='f',typ='R',min=3,max=3), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)), + NOEUD =SIMP(statut='f',typ=no ,max='**'), + GROUP_NO =SIMP(statut='f',typ=grno ,max='**'), + b_dir =BLOC(condition = "DIRECTION != None", + NOM_DIR =SIMP(statut='f',typ='TXM' ),), + b_cmp =BLOC(condition="TOUT!= None or NOEUD!=None or GROUP_NO!=None", + regles=(UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),), + TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ), + AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'), + SANS_CMP =SIMP(statut='f',typ='TXM',max='**'), + ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +MODI_BASE_MODALE=OPER(nom="MODI_BASE_MODALE",op= 149,sd_prod=mode_meca, + 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_sdaster ), + NUME_VITE_FLUI =SIMP(statut='o',typ='I' ), + NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), + AMOR_UNIF =SIMP(statut='f',typ='R' ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 14/09/2004 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 +MODI_MAILLAGE=OPER(nom="MODI_MAILLAGE",op= 154,sd_prod=maillage_sdaster, + fr="Modification de la connectivité de groupes de mailles 2D ou 3D affectées à la modélisation de contact", + reentrant='o', + UIinfo={"groupes":("Maillage",)}, + regles=(AU_MOINS_UN('ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', + 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE', + 'TRANSLATION','ROTATION','MODI_BASE','ECHELLE','ORIE_SHB8','SYMETRIE', + ), + PRESENT_ABSENT('ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', + 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',), + PRESENT_ABSENT('DEFORME','ORIE_FISSURE','EQUE_PIQUA','ORIE_PEAU_2D', + 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',), + PRESENT_ABSENT('EQUE_PIQUA','ORIE_FISSURE','DEFORME','ORIE_PEAU_2D', + 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',), + PRESENT_ABSENT('ORIE_PEAU_2D','ORIE_FISSURE','DEFORME','EQUE_PIQUA', + 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',), + PRESENT_ABSENT('ORIE_PEAU_3D','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', + 'PLAQ_TUBE','MODI_MAILLE',), + PRESENT_ABSENT('ORIE_NORM_COQUE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', + 'PLAQ_TUBE','MODI_MAILLE',), + PRESENT_ABSENT('PLAQ_TUBE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', + 'ORIE_PEAU_3D','ORIE_NORM_COQUE','MODI_MAILLE',), + PRESENT_ABSENT('MODI_MAILLE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', + 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE',), + EXCLUS('EQUE_PIQUA','PLAQ_TUBE'), + EXCLUS('EQUE_PIQUA','TUBE_COUDE'), + EXCLUS('ROTATION','MODI_BASE'), + EXCLUS('SYMETRIE','ROTATION'), + EXCLUS('SYMETRIE','TRANSLATION'), + EXCLUS('SYMETRIE','MODI_BASE'), + EXCLUS('SYMETRIE','ECHELLE'), + ), + MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), + + ORIE_FISSURE =FACT(statut='f', + GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), + ), + + DEFORME =FACT(statut='f', + OPTION =SIMP(statut='o',typ='TXM',into=("TRAN","TRAN_APPUI") ), + DEPL =SIMP(statut='o',typ=cham_no_depl_r ), + b_deform =BLOC(condition = "OPTION=='TRAN_APPUI'", + GROUP_NO_APPUI = SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**' ), + GROUP_NO_STRU = SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**' ),), + ), + + EQUE_PIQUA =FACT(statut='f', + GROUP_NO =SIMP(statut='o',typ=grno), + E_BASE =SIMP(statut='o',typ='R' ), + DEXT_BASE =SIMP(statut='o',typ='R' ), + L_BASE =SIMP(statut='o',typ='R' ), + L_CHANF =SIMP(statut='o',typ='R' ), + TYPE =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2")), + H_SOUD =SIMP(statut='o',typ='R' ), + ANGL_SOUD =SIMP(statut='o',typ='R' ), + JEU_SOUD =SIMP(statut='o',typ='R' ), + E_CORP =SIMP(statut='o',typ='R' ), + DEXT_CORP =SIMP(statut='o',typ='R' ), + AZIMUT =SIMP(statut='o',typ='R' ), + RAFF_MAIL =SIMP(statut='o',typ='TXM' ), + X_MAX =SIMP(statut='o',typ='R' ), + ), + ORIE_PEAU_2D =FACT(statut='f',max='**', + GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), + ), + ORIE_PEAU_3D =FACT(statut='f',max='**', + GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), + ), + ORIE_SHB8 =FACT(statut='f',max=1, + GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), + ), + ORIE_NORM_COQUE =FACT(statut='f',max='**', + regles=(EXCLUS('NOEUD','GROUP_NO'), + PRESENT_PRESENT('NOEUD','VECT_NORM'), + PRESENT_PRESENT('GROUP_NO','VECT_NORM'),), + GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), + VECT_NORM =SIMP(statut='f',typ='R',max=3), + NOEUD =SIMP(statut='f',typ=no), + GROUP_NO =SIMP(statut='f',typ=grno), + ), + b_modele =BLOC(condition = "(ORIE_PEAU_2D != None) or (ORIE_PEAU_3D != None) or(ORIE_NORM_COQUE != None)", + MODELE =SIMP(statut='o',typ=modele_sdaster ), + ), + PLAQ_TUBE =FACT(statut='f', + DEXT =SIMP(statut='o',typ='R' ), + EPAIS =SIMP(statut='o',typ='R' ), + L_TUBE_P1 =SIMP(statut='o',typ='R' ), + AZIMUT =SIMP(statut='f',typ='R',defaut= 90. ), + COUTURE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ), + ), + TUBE_COUDE =FACT(statut='f', + ANGLE =SIMP(statut='o',typ='R' ), + R_CINTR =SIMP(statut='o',typ='R' ), + L_TUBE_P1 =SIMP(statut='o',typ='R' ), + ), + MODI_MAILLE =FACT(statut='f',max=1, + regles=(AU_MOINS_UN('GROUP_MA_FOND','MAILLE_FOND','GROUP_NO_FOND','NOEUD_FOND'),), + OPTION =SIMP(statut='o',typ='TXM',into=("NOEUD_QUART",) ), + GROUP_MA_FOND =SIMP(statut='f',typ=grma,validators=NoRepeat(),max=1), + MAILLE_FOND =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max=1), + GROUP_NO_FOND =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1), + NOEUD_FOND =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=1), + ), + MODI_BASE =FACT(statut='f', + VECT_X =SIMP(statut='o',typ='R',min=2,max=3), + VECT_Y =SIMP(statut='f',typ='R',min=2,max=3), + ), + ECHELLE =SIMP(statut='f',typ='R',), + TRANSLATION =SIMP(statut='f',typ='R',min=2,max=3), + ROTATION =FACT(statut='f',max='**', + POIN_1 =SIMP(statut='o',typ='R',min=2,max=3), + ANGL =SIMP(statut='o',typ='R',defaut= 0.E+0 ), + regles=(EXCLUS('DIR','POIN_2'),), + POIN_2 =SIMP(statut='f',typ='R',min=2,max=3), + DIR =SIMP(statut='f',typ='R',min=2,max=3), + ), + SYMETRIE =FACT(statut='f',max='**', + fr = "Symétrie du maillage par rapport à un plan en 3D ou à une droite en 2D.", + POINT =SIMP(statut='o',typ='R',min=2,max=3, + fr="Point appartenant à la droite ou au plan."), + AXE_1 =SIMP(statut='o',typ='R',min=2,max=3, + fr="Vecteur directeur de la droite ou 1er vecteur appartenant au plan."), + AXE_2 =SIMP(statut='f',typ='R',min=3,max=3, + fr="2nd vecteur appartenant du plan."), + ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; +#& MODIF COMMANDE DATE 05/07/2004 AUTEUR GENIAUT S.GENIAUT +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +MODI_MODELE_XFEM=OPER(nom="MODI_MODELE_XFEM",op= 113,sd_prod=modele_sdaster,docu="U4.44.12-e",reentrant='f', + UIinfo={"groupes":("Modélisation",)}, + fr="Engendrer ou enrichir une structure de donnees en affectant les cham_gd associes", + + MODELE_IN =SIMP(statut='o',typ=modele_sdaster,min=01,max=01,), + FISSURE =SIMP(statut='o',typ=fiss_xfem,min=01,max=01,), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,)), + +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +MODI_OBSTACLE=OPER(nom="MODI_OBSTACLE",op=182,sd_prod=obstacle_sdaster, + fr=" ",reentrant='f', + UIinfo={"groupes":("Modélisation",)}, + regles=(PRESENT_ABSENT('R_MOBILE','CRAYON'), + PRESENT_PRESENT('V_USUR_TUBE','V_USUR_OBST'),), + 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_sdaster), + GUIDE =SIMP(statut='o',typ=obstacle_sdaster), + CRAYON =SIMP(statut='f',typ=obstacle_sdaster), + 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 29/09/2005 AUTEUR CIBHHLV L.VIVAN +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE JMBHH01 J.M.PROIX +def modi_repere_prod(RESULTAT,**args): + if AsType(RESULTAT) == evol_elas : return evol_elas + if AsType(RESULTAT) == evol_noli : return evol_noli + if AsType(RESULTAT) == evol_ther : return evol_ther + if AsType(RESULTAT) == dyna_trans : return dyna_trans + if AsType(RESULTAT) == dyna_harmo : return dyna_harmo + if AsType(RESULTAT) == mode_meca : return mode_meca + if AsType(RESULTAT) == mode_flamb : return mode_flamb + if AsType(RESULTAT) == mult_elas : return mult_elas + if AsType(RESULTAT) == base_modale : return base_modale + raise AsException("type de concept resultat non prevu") + +MODI_REPERE=OPER(nom="MODI_REPERE",op=191,sd_prod=modi_repere_prod,reentrant='n', + UIinfo={"groupes":("Résultats et champs",)}, + fr="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',validators=NoRepeat(),max='**'), + NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), + NOM_CAS =SIMP(statut='f',typ='TXM' ), + + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), + + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), + + MODI_CHAM =FACT(statut='o',max='**', + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + TYPE_CHAM =SIMP(statut='o',typ='TXM', + into=("VECT_2D","VECT_3D","TORS_3D","TENS_2D","TENS_3D"),), + NOM_CHAM =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()), + b_vect_2d =BLOC(condition = "TYPE_CHAM=='VECT_2D'", + NOM_CMP =SIMP(statut='o',typ='TXM',min=2,max=2 ),), + b_vect_3d =BLOC(condition = "TYPE_CHAM=='VECT_3D'", + NOM_CMP =SIMP(statut='o',typ='TXM',min=3,max=3 ),), + b_tors_3d =BLOC(condition = "TYPE_CHAM=='TORS_3D'", + NOM_CMP =SIMP(statut='o',typ='TXM',min=6,max=6 ),), + b_tens_2d =BLOC(condition = "TYPE_CHAM=='TENS_2D'", + NOM_CMP =SIMP(statut='o',typ='TXM',min=4,max=4 ),), + b_tens_3d =BLOC(condition = "TYPE_CHAM=='TENS_3D'", + NOM_CMP =SIMP(statut='o',typ='TXM',min=6,max=6 ),), + ), + DEFI_REPERE =FACT(statut='o', + regles=(UN_PARMI('ANGL_NAUT','ORIGINE'),), + REPERE =SIMP(statut='f',typ='TXM',defaut="UTILISATEUR", + into=("UTILISATEUR","CYLINDRIQUE"),), + ANGL_NAUT =SIMP(statut='f',typ='R',max=3), + ORIGINE =SIMP(statut='f',typ='R',min=2,max=3), + AXE_Z =SIMP(statut='f',typ='R',min=3,max=3), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), +) ; +#& MODIF COMMANDE DATE 11/08/2004 AUTEUR A3BHHAE H.ANDRIAMBOLOLONA +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +def norm_mode_prod(MODE,**args ): + if AsType(MODE) == mode_meca : return mode_meca + if AsType(MODE) == mode_meca_c : return mode_meca_c + if AsType(MODE) == mode_flamb : return mode_flamb + 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", + 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',validators=NoRepeat(),max='**'), + SANS_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), + MASS_INER =SIMP(statut='f',typ=tabl_mass_iner ), + MODE_SIGNE =FACT(statut='f',fr="Imposer un signe sur une des composantes des modes", + NOEUD =SIMP(statut='o',typ=no,fr="Noeud ou sera imposé le signe"), + NOM_CMP =SIMP(statut='o',typ='TXM',fr="Composante du noeud ou sera imposé le signe" ), + SIGNE =SIMP(statut='f',typ='TXM',defaut="POSITIF",into=("NEGATIF","POSITIF"), + fr="Choix du signe" ), + ), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des param\350tres de sensibilit\351.", + ang="List of sensitivity parameters", + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE VABHHTS J.PELLET +NUME_DDL=OPER(nom="NUME_DDL",op=11,sd_prod=nume_ddl_sdaster,reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + fr="Etablissement de la numérotation des ddl avec ou sans renumérotation et du stockage de la matrice", + regles=(UN_PARMI('MATR_RIGI','MODELE'),), + MATR_RIGI =SIMP(statut='f',validators=NoRepeat(),max=100, + typ=(matr_elem_depl_r ,matr_elem_depl_c,matr_elem_temp_r ,matr_elem_pres_c) ), + MODELE =SIMP(statut='f',typ=modele_sdaster ), + b_modele =BLOC(condition = "MODELE != None", + CHARGE =SIMP(statut='f',validators=NoRepeat(),max='**',typ=(char_meca,char_ther,char_acou, ),), + ), + METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), + 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 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +NUME_DDL_GENE=OPER(nom="NUME_DDL_GENE",op= 127,sd_prod=nume_ddl_gene, + fr="Etablissement de la numérotation des ddl d un modèle établi en coordonnées généralisées", + reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + regles=UN_PARMI('MODELE_GENE','BASE'), + MODELE_GENE =SIMP(statut='f',typ=modele_gene ), + b_modele_gene =BLOC(condition = "MODELE_GENE != None", + STOCKAGE =SIMP(statut='f',typ='TXM',defaut="LIGN_CIEL",into=("LIGN_CIEL","PLEIN") ), + ), + BASE =SIMP(statut='f',typ=(mode_meca,mode_stat,base_modale,mode_gene ) ), + b_base =BLOC(condition = "BASE != None", + STOCKAGE =SIMP(statut='f',typ='TXM',defaut="DIAG",into=("DIAG","PLEIN") ), + NB_VECT =SIMP(statut='f',typ='I',defaut= 9999 ), + ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +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", + 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',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',max='**', + fr="Densité de probabilité de pic positif, loi adaptée à des signaux à bande étroite", + regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),), + VALE_MIN =SIMP(statut='f',typ='R' ), + VALE_MAX =SIMP(statut='f',typ='R' ), + PAS =SIMP(statut='f',typ='R' ), + ), + GAUSS =FACT(statut='f',max='**', + fr="Densité de probabilité de pic positif, loi normale adaptée à des signaux large bande", + regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),), + VALE_MIN =SIMP(statut='f',typ='R' ), + VALE_MAX =SIMP(statut='f',typ='R' ), + PAS =SIMP(statut='f',typ='R' ), + ), + VANMARCKE =FACT(statut='f',max='**', + 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 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +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", + reentrant='n', + UIinfo={"groupes":("Post traitements",)}, + regles=(UN_PARMI('CHOC','RELA_EFFO_DEPL', ),), + RESU_GENE =SIMP(statut='o',typ=tran_gene ), + CHOC =FACT(statut='f',max='**', + fr="Analyse des non linéarités de choc", + INST_INIT =SIMP(statut='f',typ='R',defaut= -1. ), + INST_FIN =SIMP(statut='f',typ='R',defaut= 999. ), + NB_BLOC =SIMP(statut='f',typ='I',defaut= 1 ), + SEUIL_FORCE =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + DUREE_REPOS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + OPTION =SIMP(statut='f',typ='TXM',defaut="USURE",into=("IMPACT","USURE") ), + NB_CLASSE =SIMP(statut='f',typ='I',defaut= 10 ), + ), + RELA_EFFO_DEPL =FACT(statut='f', + fr="Analyse des relationsnon linéaires effort-déplacement", + NOEUD =SIMP(statut='o',typ=no), + NOM_CMP =SIMP(statut='o',typ='TXM' ), + ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), + TITRE =SIMP(statut='f',typ='TXM',max='**' ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE 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_sdaster non prevu") + +POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=post_elem_prod,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',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), + TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), + MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + ORIG_INER = SIMP(statut='f',typ='R',min=3,max=3 ), + ), + b_mass_iner = BLOC(condition = "( MASS_INER != None )", + fr="calcul de la masse, les inerties et le centre de gravité", + regles=(EXCLUS('CHAM_GD','RESULTAT'), + EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', + 'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),), + MODELE = SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER = SIMP(statut='f',typ=cham_mater), + CARA_ELEM = SIMP(statut='f',typ=cara_elem), + CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), + NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), + NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), + MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), + GEOMETRIE = SIMP(statut='f',typ='TXM',defaut="INITIALE",into=("INITIALE","DEFORMEE")), + CHAM_GD = SIMP(statut='f',typ=(cham_no_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',), + LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), + INST = SIMP(statut='f',typ='R',), + LIST_INST = SIMP(statut='f',typ=listr8_sdaster), + FREQ = SIMP(statut='f',typ='R',), + LIST_FREQ = SIMP(statut='f',typ=listr8_sdaster), + NUME_MODE = SIMP(statut='f',typ='I',), + NOEUD_CMP = SIMP(statut='f',typ='TXM',min=2,validators=NoRepeat(),max=2), + NOM_CAS = SIMP(statut='f',typ='TXM',), + ), + + ENER_POT = FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), + TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), + MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + ), + b_ener_pot = BLOC(condition = "( ENER_POT != None )", + fr="calcul de l'énergie potentielle de déformation", + regles=(UN_PARMI('CHAM_GD','RESULTAT'), + EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', + 'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),), + MODELE = SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER = SIMP(statut='f',typ=cham_mater), + CARA_ELEM = SIMP(statut='f',typ=cara_elem), + CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), + NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), + NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), + ANGLE = SIMP(statut='f',typ='I',defaut=0), + MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), + CHAM_GD = SIMP(statut='f',typ=(cham_no_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,mult_elas) ), + PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), + CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), + TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), + INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST = SIMP(statut='f',typ=listr8_sdaster), + FREQ = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_FREQ = SIMP(statut='f',typ=listr8_sdaster), + NUME_MODE = SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'), + NOEUD_CMP = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), + NOM_CAS = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), + ), + + ENER_CIN = FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), + OPTION = SIMP(statut='f',typ='TXM', + into=("MASS_MECA","MASS_MECA_DIAG"), + defaut="MASS_MECA" ), + TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), + MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + ), + b_ener_cin = BLOC(condition = "( ENER_CIN != None )", + fr="calcul de l'énergie cinétique", + regles=(UN_PARMI('CHAM_GD','RESULTAT'), + EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', + 'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),), + MODELE = SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER = SIMP(statut='f',typ=cham_mater), + CARA_ELEM = SIMP(statut='f',typ=cara_elem), + CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), + NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), + NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), + ANGLE = SIMP(statut='f',typ='I',defaut=0), + MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), + CHAM_GD = SIMP(statut='f',typ=(cham_no_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',validators=NoRepeat(),max='**'), + LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), + INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST = SIMP(statut='f',typ=listr8_sdaster), + FREQ = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_FREQ = SIMP(statut='f',typ=listr8_sdaster), + NUME_MODE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + NOEUD_CMP = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), + NOM_CAS = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), + ), + + ENER_ELAS = FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), + TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), + MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + ), + b_ener_elas = BLOC(condition = "( ENER_ELAS != None )", + fr="calcul de l'énergie de déformation élastique", + MODELE = SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER = SIMP(statut='f',typ=cham_mater), + CARA_ELEM = SIMP(statut='f',typ=cara_elem), + CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), + NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), + NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), + MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), + RESULTAT = SIMP(statut='o',typ=(evol_noli) ), + regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), + PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), + CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), + TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), + INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST = SIMP(statut='f',typ=listr8_sdaster), + ), + + ENER_TOTALE = FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), + TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), + MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + ), + b_ener_totale = BLOC(condition = "( ENER_TOTALE != None )", + fr="calcul de l'énergie de déformation totale", + MODELE = SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER = SIMP(statut='f',typ=cham_mater), + CARA_ELEM = SIMP(statut='f',typ=cara_elem), + CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), + NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), + NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), + MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), + RESULTAT = SIMP(statut='o',typ=(evol_noli) ), + regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), + PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), + CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), + TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), + INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST = SIMP(statut='f',typ=listr8_sdaster), + ), + + WEIBULL = FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), + TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), + MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + OPTION = SIMP(statut='f',typ='TXM', + into=("SIGM_ELGA","SIGM_ELMOY"), + defaut="SIGM_ELGA"), + CORR_PLAST = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), + COEF_MULT = SIMP(statut='f',typ='R',defaut=1.), + ), + b_weibull = BLOC(condition = "( WEIBULL != None )", + fr="calcul du champ élémentaire de la puissance m-ième de la contrainte de Weibull", + regles=(UN_PARMI('CHAM_GD','RESULTAT'), + EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), + MODELE = SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER = SIMP(statut='f',typ=cham_mater), + CARA_ELEM = SIMP(statut='f',typ=cara_elem), + CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), + NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), + NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), + MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), + CHAM_GD = SIMP(statut='f',typ=(cham_no_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',validators=NoRepeat(),max='**'), + LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), + INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST = SIMP(statut='f',typ=listr8_sdaster), + ), + + RICE_TRACEY = FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), + TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), + MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + OPTION = SIMP(statut='f',typ='TXM', + into=("SIGM_ELGA","SIGM_ELMOY"), + defaut="SIGM_ELGA"), + LOCAL = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), + ), + b_rice_tracey = BLOC(condition = "( RICE_TRACEY != None )", + fr="calcul du taux de croissance d'une cavité sphérique par rapport à un domaine", + regles=(UN_PARMI('CHAM_GD','RESULTAT'), + EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), + MODELE = SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER = SIMP(statut='f',typ=cham_mater), + CARA_ELEM = SIMP(statut='f',typ=cara_elem), + CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), + NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), + NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), + MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), + CHAM_GD = SIMP(statut='f',typ=(cham_no_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',validators=NoRepeat(),max='**'), + LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), + INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST = SIMP(statut='f',typ=listr8_sdaster), + ), + + INDIC_ENER = FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), + TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), + MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + ), + b_indic_ener = BLOC(condition = "( INDIC_ENER != None )", + fr="calcul un indicateur global de perte de proportionnalité du chargement", + MODELE = SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER = SIMP(statut='f',typ=cham_mater), + CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), + MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), + RESULTAT = SIMP(statut='o',typ=(evol_noli) ), + regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), + PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), + CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), + TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), + INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST = SIMP(statut='f',typ=listr8_sdaster), + ), + + INDIC_SEUIL = FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), + TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), + MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + ), + b_indic_seuil = BLOC(condition = "( INDIC_SEUIL != None )", + fr="calcul un indicateur global de perte de proportionnalité du chargement", + MODELE = SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER = SIMP(statut='f',typ=cham_mater), + CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), + MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), + RESULTAT = SIMP(statut='o',typ=(evol_noli) ), + regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), + PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), + CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), + TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), + INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST = SIMP(statut='f',typ=listr8_sdaster), + ), + + CHAR_LIMITE = FACT(statut='f',min=0, + CHAR_CSTE = SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON") + ), + b_char_limite = BLOC(condition = "( CHAR_LIMITE != None )", + fr="post-traitement du calcul de la charge limite", + MODELE = SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER = SIMP(statut='f',typ=cham_mater), + CARA_ELEM = SIMP(statut='f',typ=cara_elem), + CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), + MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), + RESULTAT = SIMP(statut='o',typ=(evol_noli) ), + regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), + PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), + CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), + TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), + INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST = SIMP(statut='f',typ=listr8_sdaster), + ), + + CARA_GEOM = FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), + TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), + MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + SYME_X = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + SYME_Y = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + ORIG_INER = SIMP(statut='f',typ='R',min=2,max=2), + ), + b_cara_geom = BLOC(condition = "( CARA_GEOM != None )", + fr="calcul des caractéristiques géométriques d'un section de poutre", + MODELE = SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER = SIMP(statut='f',typ=cham_mater), + CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), + MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), + ), + + CARA_POUTRE = FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA'), + ENSEMBLE('LONGUEUR','LIAISON','MATERIAU'),), + TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_MA_INTE = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + CARA_GEOM = SIMP(statut='f',typ=tabl_cara_geom), + RT = SIMP(statut='f',typ='R'), + LAPL_PHI = SIMP(statut='f',typ=evol_ther), + LAPL_PHI_Y = SIMP(statut='f',typ=evol_ther), + LAPL_PHI_Z = SIMP(statut='f',typ=evol_ther), + LIAISON = SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT")), + LONGUEUR = SIMP(statut='f',typ='R'), + MATERIAU = SIMP(statut='f',typ=mater_sdaster), + OPTION = SIMP(statut='f',typ='TXM', + into=("CARA_TORSION","CARA_CISAILLEMENT","CARA_GAUCHI") ), + ), + b_cara_poutre = BLOC(condition = "( CARA_POUTRE != None )", + fr="calcul des caractéristiques mécaniques d'un section de poutre", + MODELE = SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER = SIMP(statut='f',typ=cham_mater), + CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), + MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), + ), + + AIRE_INTERNE = FACT(statut='f',max='**', + GROUP_MA_BORD = SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), + ), + b_aire_interne = BLOC(condition = "( AIRE_INTERNE != None )", + fr="calcul de l'aire d'un trou dans un maillage 2D", + MODELE = SIMP(statut='f',typ=modele_sdaster), + ), + + TRAV_EXT = FACT(statut='f',), + b_trav_ext = BLOC(condition = "( TRAV_EXT != None )", + fr="calcul du travail des efforts extérieurs", + RESULTAT = SIMP(statut='o',typ=(evol_elas,evol_noli,dyna_trans) ), + PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), + CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), + TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), + ), + + TITRE =SIMP(statut='f',typ='TXM',max='**' ), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), + + ) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +POST_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=tabl_post_f_alea,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_sdaster), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 30/06/2004 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. +# ====================================================================== +POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=tabl_post_fatig,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', + regles=(UN_PARMI('SIGM','EPSI'),), + SIGM = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + EPSI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),), + COMPTAGE = SIMP(statut='o',typ='TXM',into=("RAINFLOW","RCCM","NATUREL")), + DELTA_OSCI = SIMP(statut='f',typ='R',defaut= 0.0E+0), + COEF_MULT = FACT(statut='f', + KT = SIMP(statut='o',typ='R'),), + CORR_KE = SIMP(statut='f',typ='TXM',into=("RCCM",)), + DOMMAGE = SIMP(statut='f',typ='TXM',into=("WOHLER","MANSON_COFFIN", + "TAHERI_MANSON","TAHERI_MIXTE")), + MATER = SIMP(statut='f',typ=mater_sdaster), + CORR_SIGM_MOYE = SIMP(statut='f',typ='TXM',into=("GOODMAN","GERBER")), + TAHERI_NAPPE = SIMP(statut='f',typ=(nappe_sdaster,formule)), + TAHERI_FONC = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CUMUL = SIMP(statut='f',typ='TXM',into=("LINEAIRE",)), + ), + + b_periodique = BLOC( condition = "CHARGEMENT=='PERIODIQUE'", + HISTOIRE = FACT(statut='o', + SIGM_XX = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_YY = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_ZZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_XY = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_XZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_YZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),), + CRITERE = SIMP(statut='o',typ='TXM',into=("CROSSLAND","PAPADOPOULOS")), + DOMMAGE = SIMP(statut='f',typ='TXM',into=("WOHLER",)), + MATER = SIMP(statut='o',typ=mater_sdaster), + COEF_CORR = SIMP(statut='f',typ='R'), + ), + + b_quelconque = BLOC( condition = "CHARGEMENT=='QUELCONQUE'", + HISTOIRE = FACT(statut='o', + SIGM_XX = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_YY = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_ZZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_XY = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_XZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_YZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + EPSP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),), + DOMMAGE = SIMP(statut='f',typ='TXM',into=("LEMAITRE",),), + MATER = SIMP(statut='o',typ=mater_sdaster), + CUMUL = SIMP(statut='f',typ='TXM',into=("LINEAIRE",)), + ), + + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 03/02/2005 AUTEUR GALENNE E.GALENNE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE GALENNE E.GALENNE + +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", + reentrant='n', + UIinfo={"groupes":("Post traitements",)}, + + regles=(UN_PARMI('RESULTAT','TABL_DEPL_SUP'), + PRESENT_PRESENT('RESULTAT','FOND_FISS'),), + + MODELISATION =SIMP(statut='o',typ='TXM', + into=("3D","AXIS","D_PLAN","C_PLAN"), + fr="Modélisation cohérente avec celle utilisée pour le calcul des déplacements"), + FOND_FISS =SIMP(statut='f',typ=fond_fiss), + b_fond_fiss =BLOC (condition="(FOND_FISS!= None)", + MAILLAGE = SIMP(statut='o',typ=maillage_sdaster), + NOEUD = SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + SANS_NOEUD = SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ) + ), + MATER =SIMP(statut='o',typ=mater_sdaster, + fr="Matériau homogène et isotrope cohérent avec celui utilisé pour le calcul des déplacements"), + RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli), + fr="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',validators=NoRepeat(),max='**'), + LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)", + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + ), + SYME_CHAR =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","SANS") ), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), + VECT_K1 =SIMP(statut='o',typ='R',max=3, + fr="Vecteur normal au plan de fissure, orienté de la lèvre inférieure vers la lèvre supérieure"), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# +# +# ====================================================================== +# +POST_K_BETA=OPER(nom="POST_K_BETA",op=198,sd_prod=tabl_post_beta, + fr="Calcul des FIC par la méthode K_BETA", + reentrant='n', + UIinfo={"groupes":("Post traitements",)}, + MAILLAGE = SIMP(statut='o',typ=maillage_sdaster), + MATER_REV = SIMP(statut='o',typ=mater_sdaster), + EPAIS_REV = SIMP(statut='o',typ='R'), + FISSURE = FACT(statut='o', + DECALAGE = SIMP(statut='f',typ='R',defaut=-2.e-04), + PROFONDEUR = SIMP(statut='o',typ='R'), + LONGUEUR = SIMP(statut='o',typ='R'), + ORIENTATION = SIMP(statut='o',typ='TXM', + into=("CIRC","LONGI"),), + ), + K1D = FACT(statut='o',max='**', + TABL_MECA_REV = SIMP(statut='o',typ=(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' ), + ), + TITRE = SIMP(statut='f',typ='TXM',max='**'), +); +#& MODIF COMMANDE DATE 01/04/2005 AUTEUR CIBHHLV L.VIVAN +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A 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)", + reentrant='n', + UIinfo={"groupes":("Post traitements",)}, + TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="VALE_MAX",into=("VALE_MAX","DETAILS") ), + INFO =SIMP(statut='f',typ='I',into=(1,2) ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + TYPE_RESU_MECA =SIMP(statut='o',typ='TXM',into=("EVOLUTION","UNITAIRE","TUYAUTERIE") ), + +# ====================================================================== + b_evolution =BLOC(condition="(TYPE_RESU_MECA == 'EVOLUTION')", + + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=("PM_PB","SN","FATIGUE_ZH210") ), + MATER =SIMP(statut='o',typ=mater_sdaster ), + MAILLAGE =SIMP(statut='f',typ=maillage_sdaster), + SEGMENT =FACT(statut='o',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_sdaster,surface_sdaster),), + NOEUD =SIMP(statut='f',typ=no,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno), + b_acce_noeud =BLOC(condition="(NOEUD != None)or(GROUP_NO != None)", + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + ), + ), + TRANSITOIRE =FACT(statut='o',max='**',fr="transitoire à dépouiller", + regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),), + RESULTAT =SIMP(statut='o',typ=(evol_elas,evol_noli) ), + RESU_SIGM_THER =SIMP(statut='f',typ=(evol_elas,evol_noli),fr="résultat sous chargement thermique seul" ), + NB_OCCUR =SIMP(statut='f',typ='I',defaut= 1,fr="nombre d occurences réelles de ce transitoire" ), + NOM_CHAM =SIMP(statut='o',typ='TXM',into=("SIEF_ELNO_ELGA","SIGM_ELNO_DEPL") ), + TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster ), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), + b_inst =BLOC(condition = "(INST != None) or (LIST_INST != None)" , + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ), + ), + ), + ), + +# ====================================================================== + b_unitaire =BLOC(condition="(TYPE_RESU_MECA == 'UNITAIRE')", + + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=("PM_PB","SN","FATIGUE") ), + MATER =SIMP(statut='o',typ=mater_sdaster ), + TYPE_KE =SIMP(statut='f',typ='TXM',defaut="KE_MECA",into=("KE_MECA","KE_MIXTE"), + fr="Ke meca seul ou partition mecanique + thermique" ), + CHAR_MECA =FACT(statut='o',max='**',fr="Chargements mécaniques", + NUME_CHAR =SIMP(statut='o',typ='I',fr="numéro du chargement" ), + NOM_CHAR =SIMP(statut='f',typ='TXM',fr="nom du chargement" ), + TYPE_CHAR =SIMP(statut='f',typ='TXM',fr="nature du chargement",into=( "SEISME","AUTRE"),defaut="AUTRE",), + FX =SIMP(statut='f',typ='R',fr="effort suivant x", ), + FY =SIMP(statut='f',typ='R',fr="effort suivant y", ), + FZ =SIMP(statut='f',typ='R',fr="effort suivant z", ), + MX =SIMP(statut='o',typ='R',fr="moment suivant x", ), + MY =SIMP(statut='o',typ='R',fr="moment suivant y", ), + MZ =SIMP(statut='o',typ='R',fr="moment suivant z", ), + ), + RESU_MECA_UNIT =FACT(statut='o',fr="resultats mécaniques unitaires", + TABL_FX =SIMP(statut='f',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire FX"), + TABL_FY =SIMP(statut='f',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire FY"), + TABL_FZ =SIMP(statut='f',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire FZ"), + TABL_MX =SIMP(statut='o',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire MX"), + TABL_MY =SIMP(statut='o',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire MY"), + TABL_MZ =SIMP(statut='o',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire MZ"), + TABL_PRES =SIMP(statut='o',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire de pression"), + ), + RESU_THER =FACT(statut='f',max='**',fr="resultats thermiques", + NUME_RESU_THER =SIMP(statut='o',typ='I',fr="numéro de la table de résultat thermique" ), + TABL_RESU_THER =SIMP(statut='o',typ=table_sdaster, + fr="table relevé des contraintes sous chargement thermique seul" ), + ), + SITUATION =FACT(statut='o',max='**',fr="Situation",ang="situation_ang", + NB_OCCUR =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ), + NB_CYCL_SEISME =SIMP(statut='f',typ='I',fr="nombre de cycles associé au séisme" ), + NUME_SITU =SIMP(statut='o',typ='I',fr="numéro de la situation" ), + NOM_SITU =SIMP(statut='f',typ='TXM',fr="nom de la situation" ), + COMBINABLE =SIMP(statut='f',typ='TXM',defaut= "OUI",into=("OUI","NON"),fr="non = sous-cycle" ), + NUME_GROUPE =SIMP(statut='o',typ='I',fr="numéro du groupe de la situation" ), + NUME_PASSAGE =SIMP(statut='f',typ='I',max=2,fr="numéro des deux groupes en relation" ), + NUME_RESU_THER =SIMP(statut='f',typ='I',max='**',fr="numeros de transitoires thermiques" ), + CHAR_ETAT_A =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ), + CHAR_ETAT_B =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat B" ), + PRES_A =SIMP(statut='o',typ='R',fr="pression etat A"), + PRES_B =SIMP(statut='o',typ='R',fr="pression etat B"), + TEMP_REF_A =SIMP(statut='f',typ='R',fr="temperature référence etat A"), + TEMP_REF_B =SIMP(statut='f',typ='R',fr="temperature référence etat B"), + ), + ), +# ====================================================================== + b_tuyauterie =BLOC(condition="(TYPE_RESU_MECA == 'TUYAUTERIE')", + + OPTION =SIMP(statut='o',typ='TXM',into=("FATIGUE",) ), + CHAM_MATER =SIMP(statut='o',typ=cham_mater ), + TYPE_KE =SIMP(statut='f',typ='TXM',defaut="KE_MECA",into=("KE_MECA","KE_MIXTE"), + fr="Ke meca seul ou partition mecanique + thermique" ), + MODELE =SIMP(statut='o',typ=modele_sdaster), + CARA_ELEM =SIMP(statut='o',typ=cara_elem), + ZONE_ANALYSE =FACT(statut='o',fr="liste des mailles ou des noeuds analysés", + regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + ), + RESU_MECA =FACT(statut='o',max='**',fr="Chargements mécaniques", + regles=(UN_PARMI('CHAM_GD','RESULTAT'),), + NUME_CHAR =SIMP(statut='o',typ='I',fr="numéro du chargement" ), + NOM_CHAR =SIMP(statut='f',typ='TXM',fr="nom du chargement" ), + TYPE_CHAR =SIMP(statut='f',typ='TXM',fr="nature du chargement",into=( "SEISME","AUTRE"),defaut="AUTRE",), + CHAM_GD =SIMP(statut='f',typ=cham_gd_sdaster), + RESULTAT =SIMP(statut='f',typ=resultat_sdaster), + b_extrac =BLOC(condition="RESULTAT != None", + fr="extraction d un champ de grandeur", + regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','INST','NOEUD_CMP'),), + NOM_CHAM =SIMP(statut='o',typ='TXM',into=("EFGE_ELNO_DEPL","SIEF_ELNO_ELGA"),), + TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_ORDRE =SIMP(statut='f',typ='I',), + INST =SIMP(statut='f',typ='R',), + NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), + b_acce_reel =BLOC(condition="(INST != None)", + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), ), + ), + ), + ), + INDI_SIGM =FACT(statut='o',max='**',fr="indices de contraintes", + regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), + C1 =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes C1 du RCCM"), + K1 =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes K1 du RCCM"), + C2 =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes C2 du RCCM"), + K2 =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes K2 du RCCM"), + C3 =SIMP(statut='f',typ='R',defaut=0.5,fr="indice de contraintes C3 du RCCM"), + K3 =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes K3 du RCCM"), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",),), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', + fr="groupe(s) de mailles ou sont affectés les indices de contraintes"), + MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**', + fr="liste des mailles ou sont affectés les indices de contraintes"), + b_grma =BLOC(condition="(GROUP_MA != None)or(MAILLE != None)", + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + ), + TYPE_ELEM_STANDARD =SIMP(statut='f',typ='TXM',into=("DRO","COU","TRN","TEE"), + fr="type d'élément de tuyauterie ou sont affectés les indices de contraintes"), + ), + RESU_THER =FACT(statut='f',max='**',fr="resultats thermiques", + regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), + NUME_RESU_THER =SIMP(statut='o',typ='I',fr="numéro de la table de résultat thermique" ), + TABL_RESU_THER =SIMP(statut='o',typ=table_sdaster, + fr="table relevé des températures sur la section"), + TABL_MOYE_THER =SIMP(statut='o',typ=table_sdaster, + fr="table relevé des moyennes sur la section"), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + b_grma =BLOC(condition="(GROUP_MA != None)or(MAILLE != None)", + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + ), + ), + SITUATION =FACT(statut='o',max='**',fr="Situation",ang="situation_ang", + NB_OCCUR =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ), + NB_CYCL_SEISME =SIMP(statut='f',typ='I',fr="nombre de cycles associé au séisme" ), + NUME_SITU =SIMP(statut='o',typ='I',fr="numéro de la situation" ), + NOM_SITU =SIMP(statut='f',typ='TXM',fr="nom de la situation" ), + COMBINABLE =SIMP(statut='f',typ='TXM',defaut= "OUI",into=("OUI","NON"),fr="non = sous-cycle" ), + NUME_GROUPE =SIMP(statut='o',typ='I',fr="numéro du groupe de la situation" ), + NUME_PASSAGE =SIMP(statut='f',typ='I',max=2,fr="numéro des deux groupes en relation" ), + NUME_RESU_THER =SIMP(statut='f',typ='I',max='**',fr="numeros de transitoires thermiques" ), + CHAR_ETAT_A =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ), + CHAR_ETAT_B =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat B" ), + PRES_A =SIMP(statut='o',typ='R',fr="pression etat A"), + PRES_B =SIMP(statut='o',typ='R',fr="pression etat B"), + TEMP_REF_A =SIMP(statut='f',typ='R',fr="temperature référence etat A"), + TEMP_REF_B =SIMP(statut='f',typ='R',fr="temperature référence etat B"), + ), + ), +) ; +#& MODIF COMMANDE DATE 07/10/2004 AUTEUR GNICOLAS G.NICOLAS +# ====================================================================== +# CONFIGURATION MANAGEMENT OF EDF VERSION +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE G8BHHXD X.DESROCHES +POST_RELEVE_T=OPER(nom="POST_RELEVE_T",op=51,sd_prod=tabl_post_rele,reentrant='f', + UIinfo={"groupes":("Post traitements",)}, + ACTION =FACT(statut='o',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'), + ENSEMBLE('MOMENT','POINT'), + PRESENT_PRESENT('MOMENT','RESULTANTE'), + PRESENT_ABSENT('TOUT_CMP','TRAC_DIR','TRAC_NOR'), + EXCLUS('TRAC_DIR','TRAC_NOR'), + PRESENT_PRESENT('ORIGINE','AXE_Z'),), + INTITULE =SIMP(statut='o',typ='TXM'), + CHEMIN =SIMP(statut='f',typ=(courbe_sdaster,surface_sdaster) ), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + 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,cham_no_facy_r)), + 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),validators=NoRepeat(),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',validators=NoRepeat(),max='**'), + LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), + NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + LIST_MODE =SIMP(statut='f',typ=listis_sdaster), + NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), + NOM_CAS =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), + FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), + ), + TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",)), + NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), + INVARIANT =SIMP(statut='f',typ='TXM',into=("OUI",)), + ELEM_PRINCIPAUX =SIMP(statut='f',typ='TXM',into=("OUI",) ), + RESULTANTE =SIMP(statut='f',typ='TXM',max='**'), + MOMENT =SIMP(statut='f',typ='TXM',max='**'), + POINT =SIMP(statut='f',typ='R',max='**'), + + REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL", + into=("GLOBAL","LOCAL","POLAIRE","UTILISATEUR","CYLINDRIQUE"),), + ANGL_NAUT =SIMP(statut='f',typ='R',min=3,max=3), + ORIGINE =SIMP(statut='f',typ='R',min=3,max=3), + AXE_Z =SIMP(statut='f',typ='R',min=3,max=3), + + TRAC_NOR =SIMP(statut='f',typ='TXM',into=("OUI",)), + TRAC_DIR =SIMP(statut='f',typ='TXM',into=("OUI",)), + DIRECTION =SIMP(statut='f',typ='R',max='**'), + + VECT_Y =SIMP(statut='f',typ='R',max='**'), + MOYE_NOEUD =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), + OPERATION =SIMP(statut='o',typ='TXM',into=("EXTRACTION","MOYENNE"),validators=NoRepeat(),max=2), + ), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +POST_SIMPLIFIE=OPER(nom="POST_SIMPLIFIE",op=185,sd_prod=tabl_post_simpli, + fr=" ",reentrant='n', + UIinfo={"groupes":("Outils métier",)}, + MATER =SIMP(statut='o',typ=(mater_sdaster) ), + DEF_EQUI =FACT(statut='f', + METHODE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),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 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +POST_USURE=OPER(nom="POST_USURE",op=153,sd_prod=tabl_post_usur,reentrant='f', + UIinfo={"groupes":("Post traitements",)}, + fr="Calcul des volumes d'usure et des profondeurs d'usure", + regles=(UN_PARMI('TUBE_NEUF','RESU_GENE','PUIS_USURE'), + PRESENT_PRESENT('RESU_GENE','NOEUD','LOI_USURE'), + PRESENT_PRESENT('PUIS_USURE','LOI_USURE'),), + TUBE_NEUF =SIMP(statut='f',typ='TXM',into=("OUI",) ), + ETAT_INIT =FACT(statut='f', + TABL_USURE =SIMP(statut='f',typ=tabl_post_usur), + INST_INIT =SIMP(statut='f',typ='R'), + ), + RESU_GENE =SIMP(statut='f',typ=tran_gene), + NOEUD =SIMP(statut='f',typ=no,), + INST_INIT =SIMP(statut='f',typ='R',defaut=-1.0E+0), + INST_FIN =SIMP(statut='f',typ='R'), + NB_BLOC =SIMP(statut='f',typ='I',defaut= 1 ), + PUIS_USURE =SIMP(statut='f',typ='R'), + LOI_USURE =SIMP(statut='f',typ='TXM',into=("ARCHARD","KWU_EPRI","EDF_MZ")), + b_archard =BLOC(condition = "LOI_USURE == 'ARCHARD'", + regles=(UN_PARMI('MOBILE','MATER_USURE','SECTEUR'), + EXCLUS('MATER_USURE','OBSTACLE'), + EXCLUS('MOBILE','USURE_OBST'),), + MOBILE =FACT(statut='f', + COEF_USURE =SIMP(statut='o',typ='R'), + ), + OBSTACLE =FACT(statut='f', + COEF_USURE =SIMP(statut='o',typ='R'), + ), + SECTEUR =FACT(statut='f',max='**', + CONTACT =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO", + "GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE", + "GRAPPE_1_ENCO","GRAPPE_2_ENCO")), + COEF_USUR_MOBILE=SIMP(statut='f',typ='R'), + COEF_USUR_OBST =SIMP(statut='f',typ='R'), + ANGL_INIT =SIMP(statut='f',typ='R'), + ANGL_FIN =SIMP(statut='f',typ='R'), + ), + MATER_USURE =SIMP(statut='f',typ='TXM'), + USURE_OBST =SIMP(statut='f',typ='TXM',into=("OUI",)), + ), + b_kwu_epri =BLOC(condition = "LOI_USURE == 'KWU_EPRI'", + regles=(UN_PARMI('MOBILE','MATER_USURE'), + EXCLUS('MATER_USURE','OBSTACLE'), + EXCLUS('MOBILE','USURE_OBST'),), + MOBILE =FACT(statut='f', + COEF_FNOR =SIMP(statut='f',typ='R'), + COEF_VTAN =SIMP(statut='f',typ='R'), + COEF_USURE =SIMP(statut='f',typ='R'), + COEF_K =SIMP(statut='f',typ='R',defaut=5.0E+0), + COEF_C =SIMP(statut='f',typ='R',defaut=10.0E+0), + ), + OBSTACLE =FACT(statut='f', + COEF_FNOR =SIMP(statut='f',typ='R' ), + COEF_VTAN =SIMP(statut='f',typ='R' ), + COEF_USURE =SIMP(statut='o',typ='R'), + COEF_K =SIMP(statut='f',typ='R',defaut=5.0E+0), + COEF_C =SIMP(statut='f',typ='R',defaut=10.0E+0), + ), + MATER_USURE =SIMP(statut='f',typ='TXM'), + USURE_OBST =SIMP(statut='f',typ='TXM',into=("OUI",)), + FNOR_MAXI =SIMP(statut='f',typ='R' ), + VTAN_MAXI =SIMP(statut='f',typ='R' ), + ), + b_edf_mz =BLOC(condition = "LOI_USURE == 'EDF_MZ'", + regles=(UN_PARMI('MOBILE','MATER_USURE'), + EXCLUS('MATER_USURE','OBSTACLE'), + EXCLUS('MOBILE','USURE_OBST'),), + MOBILE =FACT(statut='f', + COEF_USURE =SIMP(statut='f',typ='R',defaut=1.0E-13), + COEF_B =SIMP(statut='f',typ='R',defaut=1.2E+0), + COEF_N =SIMP(statut='f',typ='R',defaut=2.44E-8), + COEF_S =SIMP(statut='f',typ='R',defaut=1.14E-16), + ), + OBSTACLE =FACT(statut='f', + COEF_USURE =SIMP(statut='o',typ='R',defaut=1.0E-13), + COEF_B =SIMP(statut='f',typ='R',defaut=1.2E+0), + COEF_N =SIMP(statut='f',typ='R',defaut=2.44E-8), + COEF_S =SIMP(statut='f',typ='R',defaut=1.14E-16), + ), + MATER_USURE =SIMP(statut='f',typ='TXM'), + USURE_OBST =SIMP(statut='f',typ='TXM',into=("OUI",)), + ), + b_tube_neuf =BLOC(condition = "TUBE_NEUF == 'OUI'", + TABL_USURE =SIMP(statut='o',typ=tabl_post_usur), + INST =SIMP(statut='f',typ='R'), + ), + CONTACT =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO", + "GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE", + "GRAPPE_1_ENCO","GRAPPE_2_ENCO")), + RAYON_MOBILE =SIMP(statut='f',typ='R'), + RAYON_OBST =SIMP(statut='f',typ='R'), + LARGEUR_OBST =SIMP(statut='f',typ='R'), + ANGL_INCLI =SIMP(statut='f',typ='R'), + ANGL_ISTHME =SIMP(statut='f',typ='R'), + ANGL_IMPACT =SIMP(statut='f',typ='R'), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + COEF_INST =SIMP(statut='f',typ='R',defaut=1.0E+0), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), + TITRE =SIMP(statut='f',typ='TXM',max='**' ), +) ; +#& MODIF COMMANDE DATE 30/06/2004 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. +# ====================================================================== +POST_ZAC=OPER(nom="POST_ZAC",op= 175,sd_prod=mult_elas,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_sdaster), + CHAM_MATER =SIMP(statut='o',typ=cham_mater), + EXCIT =FACT(statut='o',max='**', + CHARGE =SIMP(statut='o',typ=char_meca), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",into=("FIXE_CSTE",)), + ), + EVOL_ELAS =SIMP(statut='o',typ=evol_elas), + b_evol_elas =BLOC(condition="EVOL_ELAS != None", + regles=(UN_PARMI('NUME_ORDRE','LIST_INST','INST'),), + NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + ), + TEMP_ZAC =SIMP(statut='f',typ='R',defaut=0.0E+0), + EVOL_NOLI =SIMP(statut='f',typ=evol_noli), + b_evol_noli =BLOC(condition="EVOL_NOLI != None", + INST_MAX =SIMP(statut='o',typ='R'), + ), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), + +) ; +#& MODIF COMMANDE DATE 30/01/2006 AUTEUR D6BHHJP J.P.LEFEBVRE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +POURSUITE=MACRO(nom="POURSUITE",op=ops.build_poursuite,repetable='n',fr="Poursuite d une étude", + sd_prod = ops.POURSUITE, + UIinfo={"groupes":("Gestion du travail",)}, + op_init = ops.POURSUITE_context,fichier_ini = 1, + FORMAT_HDF =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f', + typ='TXM',defaut="NON",into=("OUI","NON",) ), + PAR_LOT =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM', + into=("OUI","NON"),defaut="OUI"), + 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=('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' ), + ), + 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 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +PRE_GIBI=PROC(nom="PRE_GIBI",op=49, + 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 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +PRE_GMSH=PROC(nom="PRE_GMSH",op=47, + 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 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +PRE_IDEAS=PROC(nom="PRE_IDEAS",op=47, + UIinfo={"groupes":("Gestion du travail",)}, + fr="Conversion d un fichier universel IDEAS-SUPERTAB au format Aster", + UNITE_IDEAS =SIMP(statut='f',typ='I',defaut=19), + UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=20), + CREA_GROUP_COUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +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", + 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 29/09/2004 AUTEUR MJBHHPE J.L.FLEJOU +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE 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,reentrant='f', + 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="ELEM", + into=("NUAGE_DEG_0","NUAGE_DEG_1","ELEM",) ), + b_nuage =BLOC(condition="(METHODE=='NUAGE_DEG_1') or (METHODE=='NUAGE_DEG_0')", + fr="Lissage d'un nuage de points", + CHAM_NO =SIMP(statut='o',typ=(cham_no_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) ), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des paramètres de sensibilité.", + ang="List of sensitivity parameters",), + MODELE_1 =SIMP(statut='o',typ=modele_sdaster), + MODELE_2 =SIMP(statut='o',typ=modele_sdaster), + + TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), + + TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ), + LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), + LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), + DISTANCE_MAX =SIMP(statut='f',typ='R',max=1, + fr="Distance maximale entre le noeud et l'élément le plus proche, lorsque le noeud n'est dans aucun élément."), + ), + + VIS_A_VIS =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT_1','GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), + AU_MOINS_UN('TOUT_2','GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),), + TOUT_1 =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + TOUT_2 =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + ), + + TITRE =SIMP(statut='f',typ='TXM',max='**' ), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +def matr_asse_gene_prod(MATR_ASSE,MATR_ASSE_GENE,**args): + if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_gene_r + if AsType(MATR_ASSE_GENE) == matr_asse_gene_r : return matr_asse_gene_r + if AsType(MATR_ASSE) == matr_asse_depl_c : return matr_asse_gene_c + if AsType(MATR_ASSE_GENE) == matr_asse_gene_c : return matr_asse_gene_c + raise AsException("type de concept resultat non prevu") + +PROJ_MATR_BASE=OPER(nom="PROJ_MATR_BASE",op= 71,sd_prod=matr_asse_gene_prod, + fr="Projection d une matrice assemblée sur une base (modale ou de RITZ)", + reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + regles=(UN_PARMI('MATR_ASSE','MATR_ASSE_GENE'),), + BASE =SIMP(statut='o',typ=(mode_meca,base_modale,mode_gene,mode_stat ) ), + NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), + MATR_ASSE =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c) ), + MATR_ASSE_GENE =SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_gene_c) ), +) ; + +#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +def 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, + 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', + MODELE =SIMP(statut='o',typ=(modele_sdaster) ), + BASE =SIMP(statut='o',typ=(mode_meca,base_modale,) ), + ), + MODELE_MESURE =FACT(statut='o', + MODELE =SIMP(statut='o',typ=(modele_sdaster) ), + MESURE =SIMP(statut='o',typ=(dyna_trans,dyna_harmo,base_modale,) ), + NOM_PARA =SIMP(statut='f',typ='TXM',defaut="INST",into=("INST","FREQ","DEFORMEE",),), + NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE","SIEF_NOEU","EPSI_NOEU_DEPL",) ), + ), + CORR_MANU =FACT(statut='f',max='**', + 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', + METHODE =SIMP(statut='f',typ='TXM',defaut="LU",into=("LU","SVD",) ), + b_svd =BLOC(condition="METHODE=='SVD'", + EPS=SIMP(statut='f',typ='R',defaut=0. ), + ), + REGUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","NORM_MIN","TIK_RELA",) ), + b_regul =BLOC(condition="REGUL!='NON'", + regles=(PRESENT_ABSENT('COEF_PONDER','COEF_PONDER_F', ),), + COEF_PONDER =SIMP(statut='f',typ='R',defaut=0. ,max='**' ), + COEF_PONDER_F =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ), + ), + ), + + ); +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=tabl_intsp,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_sdaster,validators=NoRepeat(),max='**' ), + BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu_sdaster ), + MODE_MECA =SIMP(statut='f',typ=mode_meca ), + CHAM_NO =SIMP(statut='f',typ=cham_no_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_sdaster), + VECT_X =SIMP(statut='f',typ='R',min=3,max=3 ), + VECT_Y =SIMP(statut='f',typ='R',min=3,max=3 ), + ORIG_AXE =SIMP(statut='f',typ='R',min=3,max=3 ), + TITRE =SIMP(statut='f',typ='TXM',max='**' ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +PROJ_VECT_BASE=OPER(nom="PROJ_VECT_BASE",op= 72,sd_prod=vect_asse_gene, + fr="Projection d un vecteur assemblé sur une base (modale ou de RITZ)", + reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + regles=(UN_PARMI('VECT_ASSE','VECT_ASSE_GENE'),), + BASE =SIMP(statut='o',typ=(mode_meca,base_modale,mode_gene,mode_stat ) ), + NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), + TYPE_VECT =SIMP(statut='f',typ='TXM',defaut="FORC"), + VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r ), + VECT_ASSE_GENE =SIMP(statut='f',typ=vect_asse_gene ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +RECA_WEIBULL=OPER(nom="RECA_WEIBULL",op= 197,sd_prod=tabl_reca_weib, + fr=" ",reentrant='n', + UIinfo={"groupes":("Post traitements",)}, + LIST_PARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=2,into=("SIGM_REFE","M",) ), + RESU =FACT(statut='o',max='**', + regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST',), + AU_MOINS_UN('TOUT','GROUP_MA','MAILLE', ),), + EVOL_NOLI =SIMP(statut='o',typ=(evol_noli) ), + MODELE =SIMP(statut='o',typ=(modele_sdaster) ), + CHAM_MATER =SIMP(statut='o',typ=(cham_mater) ), + TEMPE =SIMP(statut='f',typ='R' ), + LIST_INST_RUPT =SIMP(statut='o',typ='R',validators=NoRepeat(),max='**' ), + TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), + LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + COEF_MULT =SIMP(statut='f',typ='R',defaut= 1.E0 ), + ), + OPTION =SIMP(statut='f',typ='TXM',defaut="SIGM_ELGA",into=("SIGM_ELGA","SIGM_ELMOY",) ), + CORR_PLAST =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), + METHODE =SIMP(statut='f',typ='TXM',defaut="MAXI_VRAI",into=("MAXI_VRAI","REGR_LINE",) ), + INCO_GLOB_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), + ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ), + ) ; +#& MODIF COMMANDE DATE 10/10/2005 AUTEUR MCOURTOI M.COURTOIS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE MCOURTOI M.COURTOIS +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_sdaster + else: + return fonction_sdaster + if RESU_GENE != None : return fonction_sdaster + if BASE_ELAS_FLUI != None : return fonction_sdaster + if RESULTAT != None : return fonction_sdaster + if CHAM_GD != None : return fonction_sdaster + if OBSTACLE != None : return fonction_sdaster + 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", + 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,) ), + 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_sdaster), + BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu_sdaster), + OBSTACLE =SIMP(statut='f',typ=obstacle_sdaster), + + 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_sdaster,formule)), + 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_sdaster ), + 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',validators=NoRepeat(),max='**'), + NUME_MODE =SIMP(statut='o',typ='I' ), + PARA_X =SIMP(statut='o',typ='TXM',into=("VITE_FLU",) ), + PARA_Y =SIMP(statut='o',typ='TXM',into=("FREQ","AMOR") ), + ), + 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',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',into=C_NOM_CHAM_INTO()), + NOM_PARA_RESU =SIMP(statut='f',typ='TXM' ), + TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster ), + TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), + FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), + b_prec = BLOC ( condition = "(INST != None) or (LIST_INST != None) or (FREQ != None) or (LIST_FREQ != None)", + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + INTERP_NUME =SIMP(statut='f',typ='TXM',into=("NON","LIN") ), + ), + 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',validators=NoRepeat(),max='**'), + LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster ), + TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), + FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), + b_prec = BLOC ( condition = "(INST != None) or (LIST_INST != None) or (FREQ != None) or (LIST_FREQ != None)", + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + INTERP_NUME =SIMP(statut='f',typ='TXM',into=("NON","LIN") ), + ), + 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), + ), + b_obstacle = BLOC ( condition = "OBSTACLE != None", + fr="Choix du repère", + REPERE =SIMP(statut='f',typ='TXM',into=("POLAIRE","GLOBAL") ), + ), +### + NOM_PARA =SIMP(statut='f',typ='TXM',), + 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/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +RECU_GENE=OPER(nom="RECU_GENE",op= 76,sd_prod=vect_asse_gene,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 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE VABHHTS J.PELLET +RECU_TABLE=OPER(nom="RECU_TABLE",op= 174,sd_prod=table_sdaster, + fr=" ",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 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +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é", + 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 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE 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é", + 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 30/06/2004 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 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", + 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',validators=NoRepeat(),max='**' ), + TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), + FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), + LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ), + MULT_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), + CORR_STAT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=8,defaut="ACCE", + into=("DEPL","VITE","ACCE","ACCE_ABSOLU","EFGE_ELNO_DEPL","SIPO_ELNO_DEPL", + "SIGM_ELNO_DEPL","FORC_NODA",) ), + TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + + ACCE_MONO_APPUI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + DIRECTION =SIMP(statut='f',typ='R',min=3,max=3 ), + + SQUELETTE =SIMP(statut='f',typ=squelette ), + SOUS_STRUC =SIMP(statut='f',typ='TXM' ), + SECTEUR =SIMP(statut='f',typ='I',defaut= 1 ), + TITRE =SIMP(statut='f',typ='TXM',max='**' ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +REST_SPEC_PHYS=OPER(nom="REST_SPEC_PHYS",op= 148,sd_prod=tabl_intsp, + reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + regles=(AU_MOINS_UN('BASE_ELAS_FLUI','MODE_MECA'),), + BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu_sdaster ), + MODE_MECA =SIMP(statut='f',typ=mode_meca ), + BANDE =SIMP(statut='f',typ='R',min=2,validators=NoRepeat(),max=2 ), + NUME_ORDRE =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**' ), + INTE_SPEC_GENE =SIMP(statut='o',typ=tabl_intsp ), + NOEUD =SIMP(statut='o',typ=no ,max='**'), + MAILLE =SIMP(statut='f',typ=ma ,max='**'), + NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=7, + into=("DEPL","VITE","ACCE","EFGE_ELNO_DEPL", + "SIPO_ELNO_DEPL","SIGM_ELNO_DEPL","FORC_NODA") ), + MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc), ), + EXCIT =FACT(statut='f', + NOEUD =SIMP(statut='o',typ=no ,max='**'), + NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), + ), + MOUVEMENT =SIMP(statut='f',typ='TXM',defaut="ABSOLU",into=("RELATIF","ABSOLU","DIFFERENTIEL") ), + OPTION =SIMP(statut='f',typ='TXM',defaut="DIAG_DIAG", + into=("DIAG_TOUT","DIAG_DIAG","TOUT_TOUT","TOUT_DIAG") ), + TITRE =SIMP(statut='f',typ='TXM',max='**' ), +) ; +#& MODIF COMMANDE DATE 09/11/2005 AUTEUR ASSIRE A.ASSIRE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +from Macro.stanley_ops import stanley_ops + +STANLEY=MACRO(nom="STANLEY",op=stanley_ops,sd_prod=None, + reentrant='n', + UIinfo={"groupes":("Outils métier",)}, + fr="Outil de post-traitement interactif Stanley ", + RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther) ), + MODELE =SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER =SIMP(statut='f',typ=cham_mater), + CARA_ELEM =SIMP(statut='f',typ=cara_elem), + DISPLAY =SIMP(statut='f',typ='TXM'), +) ; +#& MODIF COMMANDE DATE 09/11/2004 AUTEUR NICOLAS O.NICOLAS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE PBADEL P.BADEL +STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli, + fr="Analyse mécanique statique non linéaire", + reentrant='f', + UIinfo={"groupes":("Résolution",)}, + regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS'),), + MODELE =SIMP(statut='o',typ=modele_sdaster), + CHAM_MATER =SIMP(statut='o',typ=cham_mater), + CARA_ELEM =SIMP(statut='f',typ=cara_elem), + EXCIT =FACT(statut='o',max='**', + CHARGE =SIMP(statut='o',typ=char_meca), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE", + into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")), + ), + SOUS_STRUC =FACT(statut='f',min=01,max='**', + regles=(UN_PARMI('TOUT','MAILLE'),), + CAS_CHARGE =SIMP(statut='o',typ='TXM' ), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',), + ), + VARI_COMM =FACT(statut='f', + regles=(AU_MOINS_UN('IRRA','CORROSION'),), + IRRA =SIMP(statut='f',typ=evol_varc), + CORROSION =SIMP(statut='f',typ=carte_corr_r), + ), + COMP_INCR =C_COMP_INCR(), + COMP_ELAS =FACT(statut='f',max='**', + RELATION =SIMP(statut='o',typ='TXM',defaut="ELAS", + into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC", + "ELAS_POUTRE_GR","CABLE")), + ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), + ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut=1,into=(1,)), + ELAS_VMIS_LINE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), + ELAS_POUTRE_GR =SIMP(statut='c',typ='I',defaut=3,into=(3,)), + CABLE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), + DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ), + regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + ), + b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : ETAT_INIT obligatoire", + ETAT_INIT =FACT(statut='o', + regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',), + EXCLUS('EVOL_NOLI','DEPL',), + EXCLUS('EVOL_NOLI','SIGM',), + EXCLUS('EVOL_NOLI','VARI',), + EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), + EXCLUS('NUME_ORDRE','INST'), ), + DEPL =SIMP(statut='f',typ=cham_no_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'), + ),), + b_not_reuse =BLOC(condition = "not reuse",fr="en mode concept non reentrant : ETAT_INIT facultatif", + ETAT_INIT =FACT(statut='f', + regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',), + EXCLUS('EVOL_NOLI','DEPL',), + EXCLUS('EVOL_NOLI','SIGM',), + EXCLUS('EVOL_NOLI','VARI',), + EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), + EXCLUS('NUME_ORDRE','INST'), ), + DEPL =SIMP(statut='f',typ=cham_no_depl_r), + SIGM =SIMP(statut='f',typ=(cham_elem_sief_r,carte_sief_r)), + VARI =SIMP(statut='f',typ=cham_elem_vari_r), + VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_vanl_r), + EVOL_NOLI =SIMP(statut='f',typ=evol_noli), + NUME_ORDRE =SIMP(statut='f',typ='I'), + INST =SIMP(statut='f',typ='R'), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + NUME_DIDI =SIMP(statut='f',typ='I'), + INST_ETAT_INIT =SIMP(statut='f',typ='R'), + ),), + INCREMENT =FACT(statut='o', + regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), + EXCLUS('NUME_INST_FIN','INST_FIN'),), + LIST_INST =SIMP(statut='o',typ=listr8_sdaster), + EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE", + into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ), + NUME_INST_INIT =SIMP(statut='f',typ='I'), + INST_INIT =SIMP(statut='f',typ='R'), + NUME_INST_FIN =SIMP(statut='f',typ='I'), + INST_FIN =SIMP(statut='f',typ='R'), + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), + SUBD_PAS =SIMP(statut='f',typ='I',defaut=1), + SUBD_PAS_MINI =SIMP(statut='f',typ='R'), + COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0), + OPTI_LIST_INST =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),), + NOM_CHAM =SIMP(statut='f',typ='TXM',), + NOM_CMP =SIMP(statut='f',typ='TXM',), + VALE =SIMP(statut='f',typ='R'), + ), + NEWTON =FACT(statut='d', + REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), + PREDICTION =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ), + MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ), + PAS_MINI_ELAS =SIMP(statut='f',typ='R',defaut=0.0E+0), + REAC_ITER =SIMP(statut='f',typ='I',defaut=0), + REAC_ITER_ELAS =SIMP(statut='f',typ='I',defaut=0), + EVOL_NOLI =SIMP(statut='f',typ=evol_noli), + ), + RECH_LINEAIRE =FACT(statut='f', + RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-1 ), + ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3), + ITER_LINE_CRIT =SIMP(statut='f',typ='I',defaut= 20), + PAS_MINI_CRIT =SIMP(statut='f',typ='R',defaut=0.0E+0), + RHO_MIN =SIMP(statut='f',typ='R',defaut=1.0E-2), + RHO_MAX =SIMP(statut='f',typ='R',defaut=1.0E+1), + RHO_EXCL =SIMP(statut='f',typ='R',defaut=0.9E-2), + ), + PILOTAGE =FACT(statut='f', + regles=(EXCLUS('NOEUD','GROUP_NO'),PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), + TYPE =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS","PRED_ELAS_INCR","DEFORMATION","ANA_LIM") ), + COEF_MULT =SIMP(statut='f',typ='R',defaut= 1.0E+0), + ETA_PILO_MAX =SIMP(statut='f',typ='R'), + ETA_PILO_MIN =SIMP(statut='f',typ='R'), + ETA_PILO_R_MAX =SIMP(statut='f',typ='R'), + ETA_PILO_R_MIN =SIMP(statut='f',typ='R'), + PROJ_BORNES =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), + SELECTION =SIMP(statut='f',typ='TXM',defaut="NORM_INCR_DEPL", into=("RESIDU","ANGL_INCR_DEPL","NORM_INCR_DEPL") ), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), + NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), + ), + CONVERGENCE =FACT(statut='d', + regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),), + SIGM_REFE =SIMP(statut='f',typ='R'), + EPSI_REFE =SIMP(statut='f',typ='R'), + FLUX_THER_REFE =SIMP(statut='f',typ='R'), + FLUX_HYD1_REFE =SIMP(statut='f',typ='R'), + FLUX_HYD2_REFE =SIMP(statut='f',typ='R'), + RESI_REFE_RELA =SIMP(statut='f',typ='R'), + RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), + RESI_GLOB_RELA =SIMP(statut='f',typ='R'), + ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), + ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25), + ARRET =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), + RESI_INTE_RELA =SIMP(statut='f',typ='R' + ,defaut= 1.0E-6), + ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), + ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), + RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", + into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), + ), + PARM_THETA =SIMP(statut='f',typ='R' + ,defaut= 1. ), + SOLVEUR =FACT(statut='d', + METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), + b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", + RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), + ), + b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), + ), + b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", + fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", + NPREC =SIMP(statut='f',typ='I',defaut= 8 ), + STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ), + ), + b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", + PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), + NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), + RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), + NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), + ), + SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + ), + ARCHIVAGE =FACT(statut='f', + regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'), + EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ), + LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), + PAS_ARCH =SIMP(statut='f',typ='I' ), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), + ARCH_ETAT_INIT =SIMP(statut='f',typ='TXM',into=("OUI",)), + NUME_INIT =SIMP(statut='f',typ='I'), + DETR_NUME_SUIV =SIMP(statut='f',typ='TXM',into=("OUI",)), + CHAM_EXCLU =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","SIEF_ELGA","VARI_ELGA", + "VARI_NON_LOCAL","LANL_ELGA")), + ), + OBSERVATION =FACT(statut='f',max='**', + regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'), + PRESENT_PRESENT('MAILLE','POINT'),), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","VITE","ACCE","SIEF_ELGA", + "VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU")), + NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ), + LIST_ARCH =SIMP(statut='f',typ=listis_sdaster), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + PAS_OBSE =SIMP(statut='f',typ='I'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + POINT =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'), + ), + CRIT_FLAMB =FACT(statut='f',min=1,max=1, + NB_FREQ =SIMP(statut='f',typ='I',max=1,defaut=3), + CHAR_CRIT =SIMP(statut='f',typ='R',min=2,max=2,defaut=(-10.0,10), + fr="Valeur des deux charges critiques délimitant la bande de recherche en HPP"), + ), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des paramètres de sensibilité", + ang="List of sensitivity parameters"), + SOLV_NON_LOCAL =FACT(statut='f', + METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), + b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", + RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), + ), + b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), + ), + b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", + fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", + NPREC =SIMP(statut='f',typ='I',defaut= 8 ), + STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", + PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), + NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), + RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), + NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), + ), + EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ), + LAGR_NON_LOCAL =FACT(statut='f', + ITER_DUAL_MAXI =SIMP(statut='f',typ='I',defaut= 50), + RESI_DUAL_ABSO =SIMP(statut='o',typ='R'), + RESI_PRIM_ABSO =SIMP(statut='o',typ='R'), + R =SIMP(statut='f',typ='R',defaut= 1000.), + ITER_PRIM_MAXI =SIMP(statut='f',typ='I',defaut= 10), + ), + INFO =SIMP(statut='f',typ='I',into=(1,2) ), + TITRE =SIMP(statut='f',typ='TXM',max='**' ), + ) ; +#& MODIF COMMANDE DATE 24/05/2006 AUTEUR CIBHHLV L.VIVAN +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +# RESPONSABLE MCOURTOI M.COURTOIS + +from Macro.test_fichier_ops import test_fichier_ops + +TEST_FICHIER=MACRO(nom="TEST_FICHIER", op=test_fichier_ops, + UIinfo={"groupes":("Impression",)}, + + UNITE =SIMP(statut='f',typ='I',defaut=8), + FICHIER =SIMP(statut='o',typ='TXM',validators=LongStr(1,255)), + NB_CHIFFRE =SIMP(statut='o',typ='I',), # defaut=6 pas de defaut, il faut + EPSILON =SIMP(statut='o',typ='R',), # defaut=1.E-12 se poser la question ! + EXPR_IGNORE =SIMP(statut='f',typ='TXM',max='**', + fr="Liste d'expressions régulières permettant d'ignorer certaines lignes"), + VALE_K =SIMP(statut='o',typ='TXM' ), + REFERENCE =SIMP(statut='f',typ='TXM', + into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ), + + b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", + VERSION =SIMP(statut='f',typ='TXM' ), + ), + + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), +) +#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# 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", + UIinfo={"groupes":("Impression",)}, + UNITE =SIMP(statut='f',typ='I',defaut=8), + TEST_NOOK =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + VALEUR =FACT(statut='f',max='**', + fr="Tester la valeur d une fonction ou d une nappe", + regles=(UN_PARMI('VALE_REFE','VALE_REFE_C', ),), + FONCTION =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster,formule) ), + NOM_PARA =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2), + VALE_PARA =SIMP(statut='o',typ='R' ,validators=NoRepeat(),max=2), + VALE_REFE =SIMP(statut='f',typ='R' ), + 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',max='**', + fr="Tester la valeur d un attribut d une fonction ou d''une nappe", + FONCTION =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster,formule) ), + PARA =SIMP(statut='f',typ='R' ), + CRIT_PARA =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + PREC_PARA =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + ATTR =SIMP(statut='o',typ='TXM', + into=("NOM_PARA","NOM_RESU","PROL_DROITE","PROL_GAUCHE","INTERPOL", + "PROL_GAUCHE_FONC","PROL_DROITE_FONC","INTERPOL_FONC","NOM_PARA_FONC") ), + ATTR_REFE =SIMP(statut='o',typ='TXM' ), + REFERENCE =SIMP(statut='f',typ='TXM', + into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ), + b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", + VERSION =SIMP(statut='f',typ='TXM' ), + ), + ), + TABL_INTSP =FACT(statut='f',max='**', + fr="Tester la valeur d une fonction contenue dans une table interspectrale", + regles=(UN_PARMI('NUME_ORDRE_I','NOEUD_I'),), + INTE_SPEC =SIMP(statut='o',typ=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 23/08/2004 AUTEUR CIBHHLV L.VIVAN +# RESPONSABLE VABHHTS J.PELLET +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# +# +# ====================================================================== +TEST_RESU=PROC(nom="TEST_RESU",op=23, + UIinfo={"groupes":("Impression",)}, + fr="Extraction d une valeur et comparaison à une valeur de référence", + regles=(AU_MOINS_UN('CHAM_NO','CHAM_ELEM','RESU','OBJET')), + UNITE =SIMP(statut='f',typ='I',defaut=8), + + CHAM_NO =FACT(statut='f',max='**', + regles=(UN_PARMI('NOEUD','GROUP_NO','TYPE_TEST'), + EXCLUS('NOEUD','GROUP_NO'), + PRESENT_PRESENT('NOEUD','NOM_CMP'), + PRESENT_PRESENT( 'GROUP_NO','NOM_CMP'), + UN_PARMI('VALE','VALE_I','VALE_C'),), + CHAM_GD =SIMP(statut='o',typ=cham_no_sdaster), + NOEUD =SIMP(statut='f',typ=no ), + GROUP_NO =SIMP(statut='f',typ=grno ), + NOM_CMP =SIMP(statut='f',typ='TXM'), + TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN")), + VALE =SIMP(statut='f',typ='R'), + 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',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_sdaster), + MAILLE =SIMP(statut='f',typ=ma), + POINT =SIMP(statut='f',typ='I' ), + SOUS_POINT =SIMP(statut='f',typ='I'), + NOEUD =SIMP(statut='f',typ=no), + GROUP_NO =SIMP(statut='f',typ=grno), + NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), + TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ), + VALE =SIMP(statut='f',typ='R' ), + 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',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_sdaster), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom), + fr="Paramètre de sensibilité.", + ang="Sensitivity parameter"), + NUME_ORDRE =SIMP(statut='f',typ='I'), + INST =SIMP(statut='f',typ='R'), + FREQ =SIMP(statut='f',typ='R'), + NUME_MODE =SIMP(statut='f',typ='I'), + NOEUD_CMP =SIMP(statut='f',typ='TXM',max='**'), + NOM_CAS =SIMP(statut='f',typ='TXM'), + ANGL =SIMP(statut='f',typ='R'), + PARA =SIMP(statut='f',typ='TXM'), + NOM_CHAM =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()), + NOM_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('S_I','S_R','RESUME',), + UN_PARMI('VALE','VALE_I','VALE_C','RESUME','S_R','S_I'),), + NOM =SIMP(statut='o',typ='TXM'), + S_R =SIMP(statut='f',typ='R'), + S_I =SIMP(statut='f',typ='I'), + RESUME =SIMP(statut='f',typ='I'), + VALE =SIMP(statut='f',typ='R'), + VALE_I =SIMP(statut='f',typ='I'), + VALE_C =SIMP(statut='f',typ='C'), + 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 23/08/2004 AUTEUR CIBHHLV L.VIVAN +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE VABHHTS J.PELLET +TEST_TABLE=PROC(nom="TEST_TABLE",op= 177, + UIinfo={"groupes":("Impression",)}, + regles=(UN_PARMI('VALE','VALE_I','VALE_C', ),), + UNITE =SIMP(statut='f',typ='I',defaut=8), +# concept table_sdaster à tester + TABLE =SIMP(statut='o',typ=table_sdaster), + + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom), + fr="Paramètre de sensibilité.", + ang="Sensitivity parameter"), + FILTRE =FACT(statut='f',max='**', + NOM_PARA =SIMP(statut='o',typ='TXM' ), + CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ", + into=("EQ","LT","GT","NE","LE","GE","VIDE", + "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ), + b_vale =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))", + regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),), + VALE =SIMP(statut='f',typ='R' ), + VALE_I =SIMP(statut='f',typ='I' ), + VALE_C =SIMP(statut='f',typ='C' ), + VALE_K =SIMP(statut='f',typ='TXM' ),), + + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + ), + TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ), + NOM_PARA =SIMP(statut='o',typ='TXM' ), + VALE =SIMP(statut='f',typ='R' ), + 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' ), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), + ), +) ; +#& MODIF COMMANDE DATE 30/06/2004 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. +# ====================================================================== +THER_LINEAIRE=OPER(nom="THER_LINEAIRE",op=25,sd_prod=evol_ther,reentrant='f', + UIinfo={"groupes":("Résolution",)}, + fr="Analyse thermique linéaire stationnaire ou transitoire", + MODELE =SIMP(statut='o',typ=modele_sdaster), + CHAM_MATER =SIMP(statut='o',typ=cham_mater), + CARA_ELEM =SIMP(statut='f',typ=cara_elem), + EXCIT =FACT(statut='o',max='**', + CHARGE =SIMP(statut='o',typ=(char_ther,char_cine_ther)), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ), + INCREMENT =FACT(statut='f', + LIST_INST =SIMP(statut='o',typ=listr8_sdaster ), + NUME_INIT =SIMP(statut='f',typ='I'), + NUME_FIN =SIMP(statut='f',typ='I'), + ), + TEMP_INIT =FACT(statut='f', + regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),), + STATIONNAIRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), + EVOL_THER =SIMP(statut='f',typ=evol_ther), + CHAM_NO =SIMP(statut='f',typ=cham_no_temp_r), + VALE =SIMP(statut='f',typ='R'), + NUME_INIT =SIMP(statut='f',typ='I'), + ), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des paramètres de sensibilité.", + ang="List of sensitivity parameters", + ), + SENS_INIT =FACT(statut='f', + regles=(EXCLUS('STATIONNAIRE','EVOL_THER', ),), + STATIONNAIRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), + EVOL_THER =SIMP(statut='f',typ=evol_ther), + NUME_INIT =SIMP(statut='f',typ='I'), + ), + SOLVEUR =FACT(statut='d', + METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), + b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", + RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), + ), + b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), + ), + b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", + fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", + NPREC =SIMP(statut='f',typ='I',defaut= 8 ), + STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", + PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), + NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), + RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), + NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), + ), + ), + PARM_THETA =SIMP(statut='f',typ='R',defaut= 0.57), + ARCHIVAGE =FACT(statut='f', + regles=(UN_PARMI('LIST_ARCH','PAS_ARCH','LIST_INST','INST'),), + LIST_ARCH =SIMP(statut='f',typ=listis_sdaster), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", + into=("RELATIF","ABSOLU")), + PAS_ARCH =SIMP(statut='f',typ='I'), + CHAM_EXCLU =SIMP(statut='f',typ='TXM',into=("VARI",)), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',into=(1,2)), +) ; +#& MODIF COMMANDE DATE 30/06/2004 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. +# ====================================================================== +THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,reentrant='f', + UIinfo={"groupes":("Résolution",)}, + fr="Analyse thermique non linéaire stationnaire ou transitoire" , + MODELE =SIMP(statut='o',typ=(modele_sdaster) ), + CHAM_MATER =SIMP(statut='o',typ=(cham_mater) ), + CARA_ELEM =SIMP(statut='c',typ=(cara_elem) ), + COMP_THER_NL =FACT(statut='d',max='**', + RELATION =SIMP(statut='f',typ='TXM',defaut="THER_NL", + into=("THER_NL", + "THER_HYDR", + "SECH_GRANGER", + "SECH_MENSI", + "SECH_BAZANT", + "SECH_NAPPE" + ) ), + regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + ), + EVOL_THER_SECH =SIMP(statut='f',typ=evol_ther), + EXCIT =FACT(statut='o',max='**', + CHARGE =SIMP(statut='o',typ=char_ther), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ), + INCREMENT =FACT(statut='f', + LIST_INST =SIMP(statut='o',typ=listr8_sdaster), + NUME_INIT =SIMP(statut='f',typ='I'), + NUME_FIN =SIMP(statut='f',typ='I'), + ), + TEMP_INIT =FACT(statut='f', + regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),), + STATIONNAIRE =SIMP(statut='f',typ='TXM',into=("OUI",)), + EVOL_THER =SIMP(statut='f',typ=evol_ther), + CHAM_NO =SIMP(statut='f',typ=cham_no_temp_r), + VALE =SIMP(statut='f',typ='R'), + NUME_INIT =SIMP(statut='f',typ='I'), + ), + NEWTON =FACT(statut='d', + REAC_ITER =SIMP(statut='f',typ='I',defaut= 0 ), + RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), + ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 0 ), + ), + CONVERGENCE =FACT(statut='d', + RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), + RESI_GLOB_RELA =SIMP(statut='f',typ='R'), + ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), + ), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des paramètres de sensibilité.", + ang="List of sensitivity parameters", + ), + SOLVEUR =FACT(statut='d', + METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), + b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Parametres de la méthode multi frontale", + RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), + ), + b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Parametres de la méthode LDLT", + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), + ), + b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", + fr="Parametres relatifs a la non inversibilité de la matrice a factorise", + NPREC =SIMP(statut='f',typ='I',defaut= 8 ), + STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Parametres de la méthode du gradient conjugué", + PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), + NIVE_REMPLISSAGE=SIMP(statut='f',typ='I' ,defaut= 0 ), + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), + RESI_RELA =SIMP(statut='f',typ='R' ,defaut= 1.E-6 ), + NMAX_ITER =SIMP(statut='f',typ='I' ,defaut= 0 ), + ), + SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), + ), + PARM_THETA =SIMP(statut='f',typ='R',defaut= 0.57 ), + ARCHIVAGE =FACT(statut='f', + regles=(UN_PARMI('LIST_ARCH','PAS_ARCH','LIST_INST','INST', ),), + LIST_ARCH =SIMP(statut='f',typ=(listis_sdaster) ), + LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), + PAS_ARCH =SIMP(statut='f',typ='I'), + CHAM_EXCLU =SIMP(statut='f',typ='TXM',into=("VARI",)), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + OPTION =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2, + into=("FLUX_ELGA_TEMP","FLUX_ELNO_TEMP") ), + INFO =SIMP(statut='f',typ='I',into=(1,2) ), + +) ; +#& MODIF COMMANDE DATE 30/06/2004 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. +# ====================================================================== +THER_NON_LINE_MO=OPER(nom="THER_NON_LINE_MO",op= 171,sd_prod=evol_ther, + fr="Thermique non lineaire en repere mobile", + reentrant='n', + UIinfo={"groupes":("Résolution",)}, + MODELE =SIMP(statut='o',typ=modele_sdaster ), + CHAM_MATER =SIMP(statut='o',typ=cham_mater ), + CARA_ELEM =SIMP(statut='c',typ=cara_elem ), + EXCIT =FACT(statut='o',max='**', + CHARGE =SIMP(statut='o',typ=char_ther ), + FONC_MULT =SIMP(statut='c',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + TEMP_INIT =FACT(statut='f', + EVOL_THER =SIMP(statut='f',typ=evol_ther ), + NUME_INIT =SIMP(statut='f',typ='I',defaut= 0 ), + ), + CONVERGENCE =FACT(statut='d', + CRIT_TEMP_RELA =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + CRIT_ENTH_RELA =SIMP(statut='f',typ='R',defaut= 1.E-2 ), + ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), + ARRET =SIMP(statut='c',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + SOLVEUR =FACT(statut='d', + METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), + b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", + RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), + ), + b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), + ), + b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", + fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", + NPREC =SIMP(statut='f',typ='I',defaut= 8 ), + STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", + PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), + NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), + RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), + NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), + ), + SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**' ), + INFO =SIMP(statut='f',typ='I',into=(1,2) ), +) ; + + + diff --git a/Aster/Cata/cataSTA7/ops.py b/Aster/Cata/cataSTA7/ops.py new file mode 100644 index 00000000..50a805dd --- /dev/null +++ b/Aster/Cata/cataSTA7/ops.py @@ -0,0 +1,438 @@ +#@ MODIF ops Cata DATE 24/05/2005 AUTEUR DURAND C.DURAND +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + + +# Modules Python +import types +import string,linecache,os,traceback,re +import pickle + +# Modules Eficas +import Accas +from Accas import ASSD +from Utilitai.Utmess import UTMESS + +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,CODE,**args): + """ + Fonction sdprod de la macro DEBUT + """ + # La commande DEBUT ne peut exister qu'au niveau jdc + if self.jdc is not self.parent : + raise Accas.AsException("La commande DEBUT ne peut exister qu'au niveau jdc") + + self.jdc.set_par_lot(PAR_LOT) + if CODE!=None : + self.jdc.fico=CODE['NOM'] + else: + self.jdc.fico=None + +def build_debut(self,**args): + """ + Fonction ops pour la macro DEBUT + """ + self.jdc.UserError=self.codex.error + + if self.jdc.par_lot == 'NON' : + self.jdc._Build() + # On execute la fonction debut pour initialiser les bases + # Cette execution est indispensable avant toute autre action sur ASTER + # op doit etre un entier car la fonction debut appelle GCECDU qui demande + # le numero de l'operateur associé (getoper) + self.definition.op=0 + self.set_icmd(1) + lot,ier=self.codex.debut(self,1) + # On remet op a None juste apres pour eviter que la commande DEBUT + # ne soit executée dans la phase d'execution + self.definition.op=None + return ier + +def POURSUITE(self,PAR_LOT,CODE,**args): + """ + Fonction sdprod de la macro POURSUITE + """ + # La commande POURSUITE ne peut exister qu'au niveau jdc + if self.jdc is not self.parent : + raise Accas.AsException("La commande POURSUITE ne peut exister qu'au niveau jdc") + + self.jdc.set_par_lot(PAR_LOT) + if CODE!=None : + self.jdc.fico=CODE['NOM'] + else: + self.jdc.fico=None + if (self.codex and os.path.isfile("glob.1") or os.path.isfile("bhdf.1")): + # Le module d'execution est accessible et glob.1 est present + # Pour eviter de rappeler plusieurs fois la sequence d'initialisation + # on memorise avec l'attribut fichier_init que l'initialisation + # est réalisée + if hasattr(self,'fichier_init'):return + self.fichier_init='glob.1' + self.jdc.initexec() + # le sous programme fortran appelé par self.codex.poursu demande le numero + # de l'operateur (GCECDU->getoper), on lui donne la valeur 0 + self.definition.op=0 + lot,ier,lonuti,concepts=self.codex.poursu(self,1) + # Par la suite pour ne pas executer la commande pendant la phase + # d'execution on le remet à None + self.definition.op=None + # On demande la numerotation de la commande POURSUITE avec l'incrément + # lonuti pour qu'elle soit numérotée à la suite des commandes existantes. + self.set_icmd(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] + print nomres,concep,nomcmd,statut + 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 + + # Il peut exister un contexte python sauvegardé sous forme pickled + # On récupère ces objets après la restauration des concepts pour que + # la récupération des objets pickled soit prioritaire. + # On vérifie que les concepts relus dans glob.1 sont bien tous + # presents sous le meme nom et du meme type dans pick.1 + # Le contexte est ensuite updaté (surcharge) et donc enrichi des + # variables qui ne sont pas des concepts. + # On supprime du pickle_context les concepts valant None, ca peut + # etre le cas des concepts non executés, placés après FIN. + pickle_context=get_pickled_context() + if pickle_context==None : + UTMESS('F','Poursuite',"Erreur a la relecture du fichier pick.1 : aucun objet sauvegardé ne sera récupéré") + return + from Cata.cata import ASSD,entier + from Noyau.N_CO import CO + for elem in pickle_context.keys(): + if type(pickle_context[elem])==types.InstanceType : + pickle_class=pickle_context[elem].__class__ + if elem in self.g_context.keys(): + poursu_class=self.g_context[elem].__class__ + if poursu_class!=pickle_class : + UTMESS('F','Poursuite',"Types incompatibles entre glob.1 et pick.1 pour concept de nom "+elem) + return + elif isinstance(pickle_context[elem],ASSD) and pickle_class not in (CO,entier) : + # on n'a pas trouvé le concept dans la base et sa classe est ASSD : ce n'est pas normal + # sauf dans le cas de CO : il n'a alors pas été typé et c'est normal qu'il soit absent de la base + # meme situation pour le type 'entier' produit uniquement par DEFI_FICHIER + UTMESS('F','Poursuite',"Concept de nom "+elem+" et de type "+str(pickle_class)+" introuvable dans la base globale") + return + if pickle_context[elem]==None : del pickle_context[elem] + self.g_context.update(pickle_context) + return + + else: + # Si le module d'execution n est pas accessible ou glob.1 absent on + # demande un fichier (EFICAS) + # Il faut éviter de réinterpréter le fichier à chaque appel de + # POURSUITE + if hasattr(self,'fichier_init'): + return + self.make_poursuite() + +def get_pickled_context(): + """ + Cette fonction permet de réimporter dans le contexte courant du jdc (jdc.g_context) + les objets python qui auraient été sauvegardés, sous forme pickled, lors d'une + précédente étude. Un fichier pick.1 doit etre présent dans le répertoire de travail + """ + if os.path.isfile("pick.1"): + file="pick.1" + else: return None + + # Le fichier pick.1 est présent. On essaie de récupérer les objets python sauvegardés + context={} + try: + file=open(file,'r') + # Le contexte sauvegardé a été picklé en une seule fois. Il est seulement + # possible de le récupérer en bloc. Si cette opération echoue, on ne récupère + # aucun objet. + context=pickle.load(file) + file.close() + except: + # En cas d'erreur on ignore le contenu du fichier + # traceback.print_exc() + return None + + return context + +def POURSUITE_context(self,d): + """ + Fonction op_init de la macro POURSUITE + """ + # self représente la macro POURSUITE ... + d.update(self.g_context) + # Une commande POURSUITE n'est possible qu'au niveau le plus haut + # On ajoute directement les concepts dans le contexte du jdc + # XXX est ce que les concepts ne sont pas ajoutés plusieurs fois ?? + for v in self.g_context.values(): + if isinstance(v,ASSD) : self.jdc.sds.append(v) + +def build_poursuite(self,**args): + """ + Fonction ops pour la macro POURSUITE + """ + # Pour POURSUITE on ne modifie pas la valeur initialisee dans ops.POURSUITE + # Il n y a pas besoin d executer self.codex.poursu (c'est deja fait dans + # la fonction sdprod de la commande (ops.POURSUITE)) + self.jdc.UserError=self.codex.error + return 0 + +def INCLUDE(self,UNITE,**args): + """ + Fonction sd_prod pour la macro INCLUDE + """ + if not UNITE : return + if hasattr(self,'unite'):return + self.unite=UNITE + + if self.jdc and self.jdc.par_lot == 'NON': + # On est en mode commande par commande, on appelle la methode speciale + self.Execute_alone() + + self.make_include(unite=UNITE) + +def INCLUDE_context(self,d): + """ + Fonction op_init pour macro INCLUDE + """ + for k,v in self.g_context.items(): + d[k]=v + +def build_include(self,**args): + """ + Fonction ops de la macro INCLUDE appelée lors de la phase de Build + """ + # Pour presque toutes les commandes (sauf FORMULE et POURSUITE) + # le numero de la commande n est pas utile en phase de construction + # La macro INCLUDE ne sera pas numérotée (incrément=None) + ier=0 + self.set_icmd(None) + icmd=0 + # On n'execute pas l'ops d'include en phase BUILD car il ne sert a rien. + #ier=self.codex.opsexe(self,icmd,-1,1) + return ier + +def detruire(self,d): + """ + Cette fonction est la fonction op_init de la PROC DETRUIRE + """ + if self["CONCEPT"]!=None: + sd=[] + for mc in self["CONCEPT"]: + mcs=mc["NOM"] + if type(mcs) == types.ListType or type(mcs) == types.TupleType: + for e in mcs: + if isinstance(e,ASSD): + sd.append(e) + e=e.nom + # traitement particulier pour les listes de concepts, on va mettre à None + # le terme de l'indice demandé dans la liste : + # nomconcept_i est supprimé, nomconcept[i]=None + indice=e[e.rfind('_')+1:] + concept_racine=e[:e.rfind('_')] + if indice!='' and d.has_key(concept_racine) and type(d[concept_racine])==types.ListType: + try : + indici=int(indice) + d[concept_racine][indici]=None + except ValueError : pass + # pour tous les concepts : + if d.has_key(e):del d[e] + if self.jdc.sds_dict.has_key(e):del self.jdc.sds_dict[e] + else: + if isinstance(mcs,ASSD): + sd.append(mcs) + mcs=mcs.nom + # traitement particulier pour les listes de concepts, on va mettre à None + # le terme de l'indice demandé dans la liste : + # nomconcept_i est supprimé, nomconcept[i]=None + indice=mcs[mcs.rfind('_')+1:] + concept_racine=mcs[:mcs.rfind('_')] + if indice!='' and d.has_key(concept_racine) and type(d[concept_racine])==types.ListType: + try : + indici=int(indice) + d[concept_racine][indici]=None + except ValueError : pass + # pour tous les concepts : + if d.has_key(mcs):del d[mcs] + if self.jdc.sds_dict.has_key(mcs):del self.jdc.sds_dict[mcs] + for s in sd: + # On signale au parent que le concept s n'existe plus apres l'étape self + self.parent.delete_concept_after_etape(self,s) + +def subst_materiau(text,NOM_MATER,EXTRACTION,UNITE_LONGUEUR): + """ + Cette fonction retourne un texte obtenu à partir du texte passé en argument (text) + en substituant le nom du materiau par NOM_MATER + et en réalisant les extractions spéciifées dans EXTRACTION + """ + lines=string.split(text,'\n') + +##### traitement de UNIT : facteur multiplicatif puissance de 10 + regmcsu=re.compile(r" *(.*) *= *([^ ,]*) *## +([^ ]*) *([^ ]*)") + ll_u=[] + for l in lines: + m=regmcsu.match(l) + if m: + if m.group(3) == "UNIT": + if UNITE_LONGUEUR=='M' : coef = '0' + elif UNITE_LONGUEUR=='MM' : coef = m.group(4) + ll_u.append(m.group(1)+" = "+m.group(2)+coef) + else : ll_u.append(l) + else : ll_u.append(l) + +##### traitement de EXTRACTION + if EXTRACTION: + regmcf=re.compile(r" *(.*) *= *_F\( *## +(.*) +(.*)") + regmcs=re.compile(r" *(.*) *= *([^ ,]*) *, *## +([^ ]*) *([^ ]*)") + regfin=re.compile(r" *\) *") + ll=[] + temps={};lmcf=[] + for e in EXTRACTION: + mcf=e['COMPOR'] + lmcf.append(mcf) + temps[mcf]=e['TEMP_EVAL'] + FLAG=0 + for l in ll_u: + m=regmcf.match(l) + if m: # On a trouve un mot cle facteur "commentarise" + if m.group(2) == "SUBST": # il est de plus substituable + if temps.has_key(m.group(3)): # Il est a substituer + ll.append(" "+m.group(3)+"=_F(") + mcf=m.group(3) + TEMP=temps[mcf] + FLAG=1 # Indique que l'on est en cours de substitution + else: # Il n est pas a substituer car il n est pas dans la liste demandee + ll.append(l) + else: # Mot cle facteur commentarise non substituable + ll.append(l) + else: # La ligne ne contient pas un mot cle facteur commentarise + if FLAG == 0: # On n est pas en cours de substitution + ll.append(l) + else: # On est en cours de substitution. On cherche les mots cles simples commentarises + m=regmcs.match(l) + if m: # On a trouve un mot cle simple commentarise + if m.group(3) == "EVAL": + ll.append(" "+m.group(1)+' = '+m.group(4)+"("+str(TEMP)+'),') + elif m.group(3) == "SUPPR": + pass + else: + ll.append(l) + else: # On cherche la fin du mot cle facteur en cours de substitution + m=regfin.match(l) + if m: # On l a trouve. On le supprime de la liste + FLAG=0 + del temps[mcf] + ll.append(l) + else: + ll=ll_u + + lines=ll + ll=[] + for l in lines: + l=re.sub(" *MAT *= *",NOM_MATER+" = ",l,1) + ll.append(l) + text=string.join(ll,'\n') + return text + +def post_INCLUDE(self): + """ + Cette fonction est executée apres toutes les commandes d'un INCLUDE (RETOUR) + Elle sert principalement pour les INCLUDE_MATERIAU : remise a blanc du prefixe Fortran + """ + self.codex.opsexe(self,0,-1,2) + +def INCLUDE_MATERIAU(self,NOM_AFNOR,TYPE_MODELE,VARIANTE,TYPE_VALE,NOM_MATER, + EXTRACTION,UNITE_LONGUEUR,INFO,**args): + """ + Fonction sd_prod pour la macro INCLUDE_MATERIAU + """ + mat=string.join((NOM_AFNOR,'_',TYPE_MODELE,'_',VARIANTE,'.',TYPE_VALE),'') + if not hasattr(self,'mat') or self.mat != mat or self.nom_mater != NOM_MATER : + # On récupère le répertoire des matériaux dans les arguments + # supplémentaires du JDC + rep_mat=self.jdc.args.get("rep_mat","NOrep_mat") + f=os.path.join(rep_mat,mat) + self.mat=mat + self.nom_mater=NOM_MATER + if not os.path.isfile(f): + del self.mat + self.make_contexte(f,"#Texte sans effet pour reinitialiser le contexte a vide\n") + raise "Erreur sur le fichier materiau: "+f + # Les materiaux sont uniquement disponibles en syntaxe Python + # On lit le fichier et on supprime les éventuels \r + text=string.replace(open(f).read(),'\r\n','\n') + # On effectue les substitutions necessaires + self.prefix=NOM_MATER + self.text= subst_materiau(text,NOM_MATER,EXTRACTION,UNITE_LONGUEUR) + if INFO == 2: + print "INCLUDE_MATERIAU: ", self.mat,' ',NOM_MATER,'\n' + print self.text + # on execute le texte fourni dans le contexte forme par + # le contexte de l etape pere (global au sens Python) + # et le contexte de l etape (local au sens Python) + # Il faut auparavant l'enregistrer aupres du module linecache (utile pour nommage.py) + linecache.cache[f]=0,0,string.split(self.text,'\n'),f + + self.postexec=post_INCLUDE + + if self.jdc.par_lot == 'NON': + # On est en mode commande par commande, on appelle la methode speciale + self.Execute_alone() + + self.make_contexte(f,self.text) + for k,v in self.g_context.items() : + if isinstance(v,ASSD) and k!=v.nom : del self.g_context[k] + +def build_procedure(self,**args): + """ + Fonction ops de la macro PROCEDURE appelée lors de la phase de Build + """ + ier=0 + # Pour presque toutes les commandes (sauf FORMULE et POURSUITE) + # le numero de la commande n est pas utile en phase de construction + # On ne numérote pas une macro PROCEDURE (incrément=None) + self.set_icmd(None) + icmd=0 + #ier=self.codex.opsexe(self,icmd,-1,3) + return ier + +def build_DEFI_FICHIER(self,**args): + """ + Fonction ops de la macro DEFI_FICHIER + """ + ier=0 + self.set_icmd(None) + icmd=0 + ier=self.codex.opsexe(self,icmd,-1,26) + return ier diff --git a/Aster/Cata/cataSTA76/Macro/macr_ascouf_mail_ops.py b/Aster/Cata/cataSTA76/Macro/macr_ascouf_mail_ops.py index f7b95acf..3d035a34 100644 --- a/Aster/Cata/cataSTA76/Macro/macr_ascouf_mail_ops.py +++ b/Aster/Cata/cataSTA76/Macro/macr_ascouf_mail_ops.py @@ -1,4 +1,4 @@ -#@ MODIF macr_ascouf_mail_ops Macro DATE 30/11/2004 AUTEUR MCOURTOI M.COURTOIS +#@ MODIF macr_ascouf_mail_ops Macro DATE 24/05/2006 AUTEUR CIBHHLV L.VIVAN # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -19,7 +19,7 @@ # ====================================================================== - +import os.path from math import sqrt,cos,sin,pi,tan,log,fabs,ceil,fmod,floor # ------------------------------------------------------------------------------ @@ -1458,8 +1458,9 @@ def write_file_dgib_ASCFDO(nomFichierDATG,RM,RC,ALPHA,NBTRAN,EP1,EP2,EPI,TETA1, texte=texte+'nivmag = '+str(NIVMAG) +POIVIR texte=texte+'*\n' texte=texte+'* FIN PARAMETRES UTILISATEUR\n' - texte=texte+'opti donn ' - texte=texte+"'"+loc_datg+'ascouf_fiss_v4.datg'+"';\n" + texte = texte + open(os.path.join(loc_datg, 'ascouf_fiss_v4.datg'), 'r').read() +# texte=texte+'opti donn ' +# texte=texte+"'"+loc_datg+'ascouf_fiss_v4.datg'+"';\n" fdgib=open(nomFichierDATG,'w') fdgib.write(texte) fdgib.close() @@ -1576,8 +1577,9 @@ def write_file_dgib_ASCSQO(nomFichierDATG,TYPELE,RM,RC,ALPHA,NBTRAN,EP1,EP2, texte=texte+" sousep . 1 = 'non'"+POIVIR texte=texte+'*\n' texte=texte+'* FIN PARAMETRES UTILISATEUR \n' - texte=texte+'opti donn ' - texte=texte+"'"+loc_datg+'ascouf_ssep_mono_v1.datg'+"'"+POIVIR + texte = texte + open(os.path.join(loc_datg, 'ascouf_ssep_mono_v1.datg'), 'r').read() +# texte=texte+'opti donn ' +# texte=texte+"'"+loc_datg+'ascouf_ssep_mono_v1.datg'+"'"+POIVIR fdgib=open(nomFichierDATG,'w') fdgib.write(texte) fdgib.close() @@ -1718,8 +1720,9 @@ def write_file_dgib_ASCSP1(nomFichierDATG,TYPELE,MCL_SOUS_EPAIS,NIVMAG,loc_datg) texte=texte+'axisym = table '+POIVIR texte=texte+'sousep = table '+POIVIR texte=texte+'* \n' - texte=texte+'opti donn ' - texte=texte+"'"+loc_datg+'ascouf_ssep_mult_v1.datg'+"';\n" + texte = texte + open(os.path.join(loc_datg, 'ascouf_ssep_mult_v1.datg'), 'r').read() +# texte=texte+'opti donn ' +# texte=texte+"'"+loc_datg+'ascouf_ssep_mult_v1.datg'+"';\n" fdgib=open(nomFichierDATG,'w') fdgib.write(texte) fdgib.close() @@ -1987,8 +1990,9 @@ def write_file_dgib_ASCRDO(nomFichierDATG,TYPELE,NIVMAG,TYPBOL,ALPHA,RC,RM,EP,SU texte=texte+'nzgv = '+str(NZGV) +POIVIR texte=texte+'*\n' texte=texte+'* FIN PARAMETRES UTILISATEUR\n' - texte=texte+'opti donn ' - texte=texte+"'"+loc_datg+'ascouf_regl_v1.datg'+"';\n" + texte = texte + open(os.path.join(loc_datg, 'ascouf_regl_v1.datg'), 'r').read() +# texte=texte+'opti donn ' +# texte=texte+"'"+loc_datg+'ascouf_regl_v1.datg'+"';\n" fdgib=open(nomFichierDATG,'w') fdgib.write(texte) fdgib.close() diff --git a/Aster/Cata/cataSTA76/Macro/macr_aspic_calc_ops.py b/Aster/Cata/cataSTA76/Macro/macr_aspic_calc_ops.py index b6d91b36..5bd34c5e 100644 --- a/Aster/Cata/cataSTA76/Macro/macr_aspic_calc_ops.py +++ b/Aster/Cata/cataSTA76/Macro/macr_aspic_calc_ops.py @@ -1,4 +1,4 @@ -#@ MODIF macr_aspic_calc_ops Macro DATE 22/11/2004 AUTEUR LEBOUVIE F.LEBOUVIER +#@ MODIF macr_aspic_calc_ops Macro DATE 03/05/2006 AUTEUR CIBHHLV L.VIVAN # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -23,7 +23,7 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C FOND_FISS_1,FOND_FISS_2,CHARGE,RESU_THER,AFFE_MATERIAU,EQUILIBRE, PRES_REP,ECHANGE,TORS_CORP,TORS_TUBU,COMP_INCR,COMP_ELAS, THETA_3D,OPTION,SOLVEUR,CONVERGENCE,NEWTON,RECH_LINEAIRE, - INCREMENT,PAS_AZIMUT,IMPRESSION,INFO,TITRE ,**args): + INCREMENT,PAS_AZIMUT,IMPRESSION,INFO,TITRE,BORNES ,**args): """ Ecriture de la macro MACR_ASPIC_CALC """ @@ -734,6 +734,7 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C R_INF = tht3d['R_INF'], R_SUP = tht3d['R_SUP'], TITRE = montit,**motscles) + IMPR_TABLE(TABLE = __glocal, ) # # recherche du g max local # @@ -775,13 +776,13 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C else : ncham=[IMPRESSION['NOM_CHAM'],] if len(ncham)==3 : motscles['NOM_CHAM' ]=('DEPL','EQUI_ELNO_SIGM') elif (len(ncham)==1) and (ncham[0][:4]!='TEMP') : - motscles['NOM_CHAM' ]= ncham[0]['NOM_CHAM'] + motscles['NOM_CHAM' ]= ncham[0] elif (len(ncham)==2) and (ncham[0][:4]!='TEMP') and (ncham[1][:4]!='TEMP') : - motscles['NOM_CHAM' ]=(ncham[0]['NOM_CHAM'],ncham[1]['NOM_CHAM']) + motscles['NOM_CHAM' ]=(ncham[0],ncham[1]) elif (len(ncham)==2) and (ncham[0][:4]=='TEMP') : - motscles['NOM_CHAM' ]= ncham[1]['NOM_CHAM'] + motscles['NOM_CHAM' ]= ncham[1] elif (len(ncham)==2) and (ncham[1][:4]=='TEMP') : - motscles['NOM_CHAM' ]= ncham[0]['NOM_CHAM'] + motscles['NOM_CHAM' ]= ncham[0] if IMPRESSION['TOUT_ORDRE']!=None : motscles['TOUT_ORDRE']= IMPRESSION['TOUT_ORDRE'] elif IMPRESSION['NUME_ORDRE']!=None : @@ -798,11 +799,11 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C if IMPRESSION['FORMAT'] in ('IDEAS','CASTEM') : if len(ncham)==3 : motscles['NOM_CHAM' ]=('TEMP',) elif (len(ncham)==1) and (ncham[0][:4]=='TEMP') : - motscles['NOM_CHAM' ]= ncham[0]['NOM_CHAM'] + motscles['NOM_CHAM' ]= ncham[0] elif (len(ncham)==2) and (ncham[0][:4]=='TEMP') : - motscles['NOM_CHAM' ]= ncham[0]['NOM_CHAM'] + motscles['NOM_CHAM' ]= ncham[0] elif (len(ncham)==2) and (ncham[1][:4]=='TEMP') : - motscles['NOM_CHAM' ]= ncham[1]['NOM_CHAM'] + motscles['NOM_CHAM' ]= ncham[1] if IMPRESSION['TOUT_ORDRE']!=None : motscles['TOUT_ORDRE']= IMPRESSION['TOUT_ORDRE'] elif IMPRESSION['NUME_ORDRE']!=None : @@ -813,7 +814,7 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C motsclei['VERSION' ]= IMPRESSION['VERSION'] if IMPRESSION['FORMAT']=='CASTEM' : motsclei['NIVE_GIBI' ]= IMPRESSION['NIVE_GIBI'] - mcfresu.append(_F(RESULTAT=nomres,**motscles)) + mcfresu.append(_F(RESULTAT=resuth,**motscles)) IMPR_RESU( MODELE = modele, RESU = mcfresu, FORMAT=IMPRESSION['FORMAT'],**motsclei) diff --git a/Aster/Cata/cataSTA76/Macro/macr_aspic_mail_ops.py b/Aster/Cata/cataSTA76/Macro/macr_aspic_mail_ops.py index 296cab1d..d1140f87 100644 --- a/Aster/Cata/cataSTA76/Macro/macr_aspic_mail_ops.py +++ b/Aster/Cata/cataSTA76/Macro/macr_aspic_mail_ops.py @@ -1,4 +1,4 @@ -#@ MODIF macr_aspic_mail_ops Macro DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +#@ MODIF macr_aspic_mail_ops Macro DATE 31/05/2006 AUTEUR CIBHHLV L.VIVAN # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -19,14 +19,15 @@ # ====================================================================== - -from math import sqrt,cos,sin,pi,pow,tan +import os.path +from math import sqrt, cos, sin, pi, pow, tan # Ecriture du fichier GIBI principal (dgib) - ASPID0 def write_file_dgib_ASPID0(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ZMAX, H, ALPHA, JEU, EPC, DEC, XMAX, TYPMAI, THETA, TYPELE, ITYPSO, DPENE, NIVMAG, loc_datg) : + import aster # Ouverture du fichier d'entrée de commandes fdgib=open(nomFichierDATG,'w') POIVIR = ' ; \n' @@ -53,8 +54,7 @@ def write_file_dgib_ASPID0(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, texte=texte+'typ_eque = MOT '+'SAINE' +POIVIR texte=texte+'nivmag = '+str(NIVMAG) +POIVIR texte=texte+'* \n' - texte=texte+'opti donn ' - texte=texte+"'"+loc_datg+'aspic.datg'+"';\n" + texte = texte + open(os.path.join(loc_datg, 'aspic.datg'), 'r').read() print texte fdgib.write(texte) fdgib.close() @@ -65,6 +65,7 @@ def write_file_dgib_ASPID1(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, A,C,EPS, RC0, NS,NC,NT,POSI, NDT,FETIRF,FETIRP, TFISS,ZETA,ITYPSO,DPENE, NIVMAG, loc_datg) : + import aster # Ouverture du fichier d'entrée de commandes fdgib=open(nomFichierDATG,'w') POIVIR = ' ; \n' @@ -103,8 +104,7 @@ def write_file_dgib_ASPID1(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, texte=texte+'typ_eque = MOT '+'FISS_LON' +POIVIR texte=texte+'nivmag = '+str(NIVMAG) +POIVIR texte=texte+'* \n' - texte=texte+'opti donn ' - texte=texte+"'"+loc_datg+'aspic_v2.datg'+"';\n" + texte = texte + open(os.path.join(loc_datg, 'aspic_v2.datg'), 'r').read() print texte fdgib.write(texte) fdgib.close() @@ -116,6 +116,7 @@ def write_file_dgib_ASPID2(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ALP,BETA, NS, NC, NT, POSI ,NDT,NSDT,TFISS, ZETA,ITYPSO,DPENE, NIVMAG, loc_datg) : # + import aster CALPHA = cos(ALPHA*pi/180.) SALPHA = sin(ALPHA*pi/180.) CTHETA = cos(THETA*pi/180.) @@ -172,10 +173,10 @@ def write_file_dgib_ASPID2(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, EPSIL = STHETA * tan(ALPHA*pi/180.0) PHI = (EPSIL * ZA) - YA DELTA = pow(PHI,2) - ((1 + pow(EPSIL,2))*(pow(PHI,2) - (pow((DEC/2.0),2)*pow(EPSIL,2)))) - if (THETA > 0) : + if (STHETA > 0) : YD = ( sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) else : - YD = ( -1.0*sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) + YD = ( -1.0*sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) ZD = sqrt(pow((DEC/2.0),2) - pow(YD,2)) @@ -193,6 +194,14 @@ def write_file_dgib_ASPID2(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ZN0 = ZD0 - A*CALPHA XN = XN0 * CTHETA YN = XN0 * STHETA + DNXY = sqrt(pow(XD,2) + pow(YD,2)) - sqrt(pow(XN,2) + pow(YN,2)) + DNXY0 = XD0 - XN0 + RAPP = DNXY/DNXY0 + # Correction necessaire dans le cas theta et/ou alpha grand + if (RAPP < 0.5) : + DXY = sqrt(pow(XD,2) + pow(YD,2) ) + XN = XN * DXY/XD0 + YN = YN * DXY/XD0 SGAMN = YN / ZN0 ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2)) D0N0 = sqrt( pow((XD0 - XN0),2) + pow((ZD0 - ZN0),2) ) @@ -234,7 +243,7 @@ def write_file_dgib_ASPID2(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, EPSIL = STHETA * TGALP PHI = (EPSIL * ZA) - YA DELTA = pow(PHI,2) - (1.0 + pow(EPSIL,2))*(pow(PHI,2) - pow((DEC/2.0),2)*pow(EPSIL,2)) - if (THETA > 0) : + if (STHETA > 0) : YD = (sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) else : YD = (-1.0*sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) @@ -384,8 +393,7 @@ def write_file_dgib_ASPID2(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, texte=texte+'nivmag = '+str(NIVMAG) +POIVIR texte=texte+'* \n' texte=texte+'list epc ;\n' - texte=texte+'opti donn ' - texte=texte+"'"+loc_datg+'aspic.datg'+"';\n" + texte = texte + open(os.path.join(loc_datg, 'aspic.datg'), 'r').read() print texte fdgib.write(texte) fdgib.close() @@ -841,5 +849,79 @@ def macr_aspic_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,RAFF_MAIL,TUBULURE, IMPR_RESU( RESU = impr_resu, FORMAT = impr['FORMAT'],**motscles ) # +# +# --- Verification profondeur fissure (courte debouchante) --- +# + if FISCOU and not (TFISS=='NON_DEB') : + nomres=DEFI_GROUP( reuse=nomres, + MAILLAGE=nomres, + CREA_GROUP_NO=(_F( GROUP_MA = 'LEVRTUBU',), + _F( NOM = 'FONDORDO', + GROUP_MA = 'FONDFISS', + OPTION = 'NOEUD_ORDO',),),); + + nommail=nomres.nom + coord =aster.getvectjev(nommail.ljust(8)+'.COORDO .VALE') + collgrno=aster.getcolljev(nommail.ljust(8)+'.GROUPENO') + + grfo=collgrno['FONDORDO'] + Nbno = len(grfo) + listx = [None]*Nbno + listy = [None]*Nbno + listz = [None]*Nbno + k = 0 + for node in grfo: + listx[k] = coord[3*(node-1)] + listy[k] = coord[3*(node-1)+1] + listz[k] = coord[3*(node-1)+2] + k = k+1 + + XAB = listx[Nbno-1] - listx[0] + YAB = listy[Nbno-1] - listy[0] + ZAB = listz[Nbno-1] - listz[0] + AB = sqrt(XAB*XAB + YAB*YAB +ZAB*ZAB) + d = 0 + for k in range(0,Nbno) : + XAM = listx[k] - listx[0] + YAM = listy[k] - listy[0] + ZAM = listz[k] - listz[0] + Xvect = YAB*ZAM-ZAB*YAM + Yvect = ZAB*XAM-XAB*ZAM + Zvect = XAB*YAM-YAB*XAM + AM = sqrt(Xvect*Xvect+ Yvect*Yvect +Zvect*Zvect) + dk = AM/AB + if dk > d : + XC = listx[k] + YC = listy[k] + ZC = listz[k] + d = max(dk, d) + + grlev=collgrno['LEVRTUBU'] + Nbnol = len(grlev) + listxl = [None]*Nbnol + listyl = [None]*Nbnol + listzl = [None]*Nbnol + k = 0 + for node in grlev: + listxl[k] = coord[3*(node-1)] + listyl[k] = coord[3*(node-1)+1] + listzl[k] = coord[3*(node-1)+2] + k = k+1 + dist = 0 + for k in range(0,Nbnol) : + XAM = listxl[k] - listx[0] + YAM = listyl[k] - listy[0] + ZAM = listzl[k] - listz[0] + Scal = (XAB*XAM + YAB*YAM + ZAB*ZAM)/(AB*AB) + if (abs(Scal) < 0.51) and (abs(Scal) > 0.49) : + Xk = listxl[k] -XC + Yk = listyl[k] -YC + Zk = listzl[k] -ZC + dk = sqrt(Xk**2+ Yk**2 +Zk**2) + dist = max(dk, dist) + + print '\n PROFONDEUR DE LA FISSURE DANS LE MAILLAGE : ', dist + print ' \n' +# return ier diff --git a/Aster/Cata/cataSTA76/Macro/reca_algo.py b/Aster/Cata/cataSTA76/Macro/reca_algo.py index 319d6d67..7854c628 100644 --- a/Aster/Cata/cataSTA76/Macro/reca_algo.py +++ b/Aster/Cata/cataSTA76/Macro/reca_algo.py @@ -1,4 +1,4 @@ -#@ MODIF reca_algo Macro DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +#@ MODIF reca_algo Macro DATE 31/01/2006 AUTEUR MCOURTOI M.COURTOIS # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -21,7 +21,7 @@ import Numeric -from Numeric import take +from Numeric import take, size import copy,os import LinearAlgebra from Cata.cata import INFO_EXEC_ASTER @@ -175,8 +175,15 @@ def Levenberg_bornes(self,val,Dim,val_init,borne_inf,borne_sup,A,erreur,l,ul_out dval[i]=borne_inf[i]-val[i] s[i]=-1. if (len(I)!=0): - # xi=-Q(I)-1.(d(I)+Q(I,Act).dval(Act)) - xi=-LinearAlgebra.solve_linear_equations(take(take(Q,I),I,1),(take(d,I)+Numeric.dot(take(take(Q,I),Act,1),take(Dim.adim(dval),Act)))) + # xi=-Q(I)-1.(d(I)+Q(I,Act).dval(Act)) + t_QI = take(Q, I) + t_tQI_Act = take(t_QI, Act, 1) + t_adim_Act = take(Dim.adim(dval), Act) + if size(t_tQI_Act) > 0 and size(t_adim_Act) > 0: + smemb = take(d, I) + Numeric.dot(t_tQI_Act, t_adim_Act) + else: + smemb = take(d, I) + xi=-LinearAlgebra.solve_linear_equations(take(t_QI, I, 1), smemb) for i in Numeric.arange(len(I)): dval[I[i]]=xi[i]*val_init[I[i]] if (len(Act)!=0): diff --git a/Aster/Cata/cataSTA76/Macro/test_fichier_ops.py b/Aster/Cata/cataSTA76/Macro/test_fichier_ops.py index 83394368..e5107f5c 100644 --- a/Aster/Cata/cataSTA76/Macro/test_fichier_ops.py +++ b/Aster/Cata/cataSTA76/Macro/test_fichier_ops.py @@ -1,4 +1,4 @@ -#@ MODIF test_fichier_ops Macro DATE 05/07/2005 AUTEUR DURAND C.DURAND +#@ MODIF test_fichier_ops Macro DATE 24/05/2006 AUTEUR CIBHHLV L.VIVAN # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -18,6 +18,13 @@ # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== +import sys +import os.path +import re +from math import floor, log10 +from types import StringType +import md5 + #------------------------------------------------------------------------------- def test_fichier_ops(self, UNITE, FICHIER, NB_CHIFFRE, EPSILON, VALE_K, INFO, **args): """ @@ -25,9 +32,7 @@ def test_fichier_ops(self, UNITE, FICHIER, NB_CHIFFRE, EPSILON, VALE_K, INFO, ** 'a une tolerance' pres pour les nombres reels en calculant le md5sum. """ - import aster - from Accas import _F - ier=0 + ier = 0 # La macro compte pour 1 dans la numerotation des commandes self.set_icmd(1) @@ -37,14 +42,14 @@ def test_fichier_ops(self, UNITE, FICHIER, NB_CHIFFRE, EPSILON, VALE_K, INFO, ** DETRUIRE = self.get_cmd('DETRUIRE') CREA_TABLE = self.get_cmd('CREA_TABLE') TEST_TABLE = self.get_cmd('TEST_TABLE') - - import os.path - import re - from types import StringType + + import aster + from Accas import _F from Macro.test_fichier_ops import md5file + from Utilitai.Utmess import UTMESS # vérifie la syntaxe des expressions régulières fournies - l_regexp=[] + l_regexp = [] if args['EXPR_IGNORE']: if type(args['EXPR_IGNORE']) is StringType: lexp = [args['EXPR_IGNORE']] @@ -52,54 +57,53 @@ def test_fichier_ops(self, UNITE, FICHIER, NB_CHIFFRE, EPSILON, VALE_K, INFO, ** lexp = args['EXPR_IGNORE'] for exp in lexp: try: - obj=re.compile(exp) + obj = re.compile(exp) except re.error, s: - print ' '+str(s)+' pour "'+exp+'"' + UTMESS('F', 'TEST_FICHIER', + ' %s pour %s' % (str(s), repr(exp))) else: l_regexp.append(exp) - if len(l_regexp) < len(lexp): - self.cr.fatal(' Expression régulière invalide (voir )') - - is_ok=0 + is_ok = 0 # vérifier que le fichier a été fermé tinfo__ = INFO_EXEC_ASTER(LISTE_INFO='ETAT_UNITE', FICHIER=FICHIER) - if tinfo__['ETAT_UNITE',1].find('OUVERT')>-1: - print " LE FICHIER N'A PAS ETE FERME :\n",FICHIER + if tinfo__['ETAT_UNITE', 1].find('OUVERT')>-1: + UTMESS('A', 'TEST_FICHIER', + "LE FICHIER N'A PAS ETE FERME :\n%s" % FICHIER) # fichier correctement fermé else: # calcule le md5sum du fichier ier, mdsum = md5file(FICHIER, NB_CHIFFRE, EPSILON, l_regexp, INFO) if ier != 0: - if ier==4: - texte_erreur='Fichier inexistant : '+FICHIER + if ier == 4: + texte_erreur = 'Fichier inexistant : '+FICHIER else: - texte_erreur='Erreur dans md5file, code retour = '+str(ier) - texte_erreur=' '+texte_erreur + texte_erreur = 'Erreur dans md5file, code retour = '+str(ier) + texte_erreur = ' '+texte_erreur # aujourd'hui, je ne sais pas déclencher autre chose que ... self.cr.fatal(texte_erreur) return ier # comparaison a la reference if INFO > 0 : + # aster.affiche('MESSAGE', ' %-20s : %32s\n' % ('REFERENCE', VALE_K)) print ' %-20s : %32s' % ('REFERENCE',VALE_K) print if mdsum == VALE_K: - is_ok=1 + is_ok = 1 # produit le TEST_TABLE - tab1__=CREA_TABLE(LISTE=(_F(PARA='TEST', - TYPE_K='K8', - LISTE_K='VALEUR ',), - _F(PARA='BOOLEEN', - LISTE_I=is_ok,),),) + tab1__ = CREA_TABLE(LISTE=(_F(PARA='TEST', + TYPE_K='K8', + LISTE_K='VALEUR ',), + _F(PARA='BOOLEEN', + LISTE_I=is_ok,),),) if args['REFERENCE'] == 'NON_REGRESSION': - TEST_TABLE(UNITE=UNITE, - TABLE=tab1__, + TEST_TABLE(TABLE=tab1__, FILTRE=_F(NOM_PARA='TEST', VALE_K='VALEUR ',), NOM_PARA='BOOLEEN', @@ -109,8 +113,7 @@ def test_fichier_ops(self, UNITE, FICHIER, NB_CHIFFRE, EPSILON, VALE_K, INFO, ** REFERENCE=args['REFERENCE'], VERSION=args['VERSION'],) else: - TEST_TABLE(UNITE=UNITE, - TABLE=tab1__, + TEST_TABLE(TABLE=tab1__, FILTRE=_F(NOM_PARA='TEST', VALE_K='VALEUR ',), NOM_PARA='BOOLEEN', @@ -125,7 +128,33 @@ def test_fichier_ops(self, UNITE, FICHIER, NB_CHIFFRE, EPSILON, VALE_K, INFO, ** #------------------------------------------------------------------------------- -def md5file(fich,nbch,epsi,regexp_ignore=[],info=0): +def sign(x): + return int(x/abs(x)) + +def _round(x, n, exp): + v = x * 10**(-exp+n) + val = int(v + sign(x)*0.4999) + return val + +def entier_ini(x, nbch, exp=None): + #if exp is None: + #exp = int(floor(log10(abs(x)))) + val = _round(x, nbch-1, exp) + return val, exp-nbch+1 + +def entier_triple(x, nbch, exp_epsi): + #if abs(x) <= 10**exp_epsi: + #return '0' + y = _round(x * 10**(-exp_epsi), 0, 0) * 10**exp_epsi + exp = int(floor(log10(abs(y)))) + z1, e1 = entier_ini(y, nbch+2, exp) + z2, e2 = entier_ini(z1 * 10**e1, nbch+1, exp) + z3, e3 = entier_ini(z2 * 10**e2, nbch, exp) + return '%sE%d' % (z3, e3) + +#------------------------------------------------------------------------------- +def md5file(fich, nbch, epsi, + regexp_ignore=[], info=0, output=None, format_func=entier_triple): """ Cette methode retourne le md5sum d'un fichier en arrondissant les nombres reels a la valeur significative. @@ -135,60 +164,116 @@ def md5file(fich,nbch,epsi,regexp_ignore=[],info=0): epsi : valeur en deca de laquelle on prend 0 regexp_ignore : liste d'expressions régulières permettant d'ignorer certaines lignes + output : pour rediriger l'interprétation du fichier (INFO=2) + dans le fichier de nom `output`, + info : on affiche le résumé si info>0 + format_func : on peut préciser une autre fonction pour formatter + les réels... OUT : code retour : 0 si ok, >0 sinon md5sum - """ - import os.path - import re - import string - import math - import md5 + + NE PAS AJOUTER D'IMPORT QUI RENDRAIT CETTE FONCTION + INUTILISABLE EN DEHORS DE CODE_ASTER. + """ + if output != None: + try: + sys.stdout = open(output, 'w') + except IOError, msg: + print "Erreur d'écriture sur %s : %s" % (output, msg) + # 1 Mo 10 Mo 100 Mo # v0 2.6 s 20.4 s 196.6 s # v1 2.0 s 10.3 s 94.9 s (pas de distinction entier/reel) # remplacer le try/except par if re.search(...), 80% plus lent + # v2 10.7 s if not os.path.isfile(fich): return 4, '' - f=open(fich,'r') - format_float='%'+str(nbch+7)+'.'+str(nbch)+'g' - m=md5.new() - i=0 + f = open(fich,'r') + m = md5.new() + exp_epsi = int(floor(log10(abs(epsi)))) + i = 0 for ligne in f: - i=i+1 - if info>=2: - print 'LIGNE',i, - keep=True + i = i+1 + if info >= 2: + print 'LIGNE', i, + keep = True for exp in regexp_ignore: - if re.search(exp,ligne): - keep=False - if info>=2: + if re.search(exp, ligne): + keep = False + if info >= 2: print ' >>>>>>>>>> IGNOREE <<<<<<<<<<', break if keep: - #r=string.split(ligne) # découpe des nombres collés : 1.34E-142-1.233D+09 - r=string.split(re.sub('([0-9]+)\-','\g<1> -',ligne)) + ligne = re.sub('([0-9]+)\-', '\g<1> -', ligne) + # conversion des DOUBLE fortran en 'E' + ligne = re.sub('([0-9]+)[dD]([\-\+]{0,1}[0-9]+)', '\g<1>E\g<2>', ligne) + r = ligne.split() for x in r: try: - if abs(float(x))=2: + s = x + if info >= 2: print (' %'+str(nbch+7)+'s') % s, m.update(s) - if info>=2: + if info >= 2: print f.close() - md5sum=m.hexdigest() - if info>=1: - form=' %-20s : %32s' - print form % ('Fichier',fich) - print form % ('Nombre de lignes',str(i)) - print form % ('Format des reels',format_float) - print form % ('Epsilon',str(epsi)) - print form % ('md5sum',md5sum) + md5sum = m.hexdigest() + + affich_resu = True + if info >= 1: + while affich_resu: + form = ' %-20s : %32s' + print form % ('Fichier', fich) + print form % ('Nombre de lignes', str(i)) + #print form % ('Format des reels',format_float) + print form % ('Nombre de chiffres', str(nbch)) + print form % ('Epsilon', str(epsi)) + print form % ('md5sum', md5sum) + if output == None: + affich_resu = False + else: + sys.stdout = sys.__stdout__ + output = None return 0, md5sum + + +#------------------------------------------------------------------------------- +if __name__ == '__main__': + from optparse import OptionParser, OptionGroup + + p = OptionParser(usage='usage: %s a_tester [options]' % sys.argv[0]) + p.add_option('-n', '--nbch', + action='store', dest='nbch', type='int', default=6, + help='nombre de chiffres significatifs') + p.add_option('-e', '--epsilon', + action='store', dest='epsi', type='float', default=1.e-14, + help='epsilon en dessous duquel on considère les nombres nuls') + p.add_option('--expr_ignore', + action='store', dest='exp', type='string', + help='expression régulière à ignorer') + p.add_option('-o', '--output', + action='store', dest='output', type='string', default='output.txt', + help='fichier de sortie') + opts, args = p.parse_args() + + if len(args)<1: + p.print_usage() + sys.exit(1) + if opts.exp is None: + exp = [] + else: + exp = [opts.exp] + + print 'Lignes retenues dans %s' % opts.output + iret = md5file(args[0], opts.nbch, opts.epsi, + regexp_ignore=exp, info=2, output=opts.output) + diff --git a/Aster/Cata/cataSTA76/cata.py b/Aster/Cata/cataSTA76/cata.py index b532a843..4340f440 100644 --- a/Aster/Cata/cataSTA76/cata.py +++ b/Aster/Cata/cataSTA76/cata.py @@ -1,4 +1,4 @@ -#& MODIF ENTETE DATE 07/06/2005 AUTEUR MCOURTOI M.COURTOIS +#& MODIF ENTETE DATE 31/01/2006 AUTEUR MCOURTOI M.COURTOIS # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -35,7 +35,7 @@ except: # __version__="$Name: $" -__Id__="$Id: cata_aster_v6.py,v 1.12 2001/01/16 15:55:05 iliade Exp $" +__Id__="$Id: cata.py,v 1.1.6.2 2006/06/02 09:43:05 pnoyret Exp $" # JdC = JDC_CATA(code='ASTER', execmodul=None, @@ -97,8 +97,11 @@ class listr8_sdaster (ASSD): """ Retourne la liste des valeurs : [val1, ..., valN] """ - vale=string.ljust(self.get_name(),19)+'.VALE' - return list(aster.getvectjev(vale)) + if not self.par_lot(): + vale='%-19s.VALE' % self.get_name() + return list(aster.getvectjev(vale)) + else: + raise Accas.AsException("Erreur dans listr8.Valeurs en PAR_LOT='OUI'") # post-traitement : @@ -121,12 +124,16 @@ class maillage_sdaster(ASSD): def LIST_GROUP_NO(self) : """ retourne la liste des groupes de noeuds sous la forme : [ (gno1, nb noeuds gno1), ...] """ + if self.par_lot() : + raise Accas.AsException("Erreur dans maillage.LIST_GROUP_NO en PAR_LOT='OUI'") nommail=self.get_name() dic_gpno=aster.getcolljev(nommail.ljust(8)+".GROUPENO") return [(gpno.strip(),len(dic_gpno[gpno])) for gpno in dic_gpno] def LIST_GROUP_MA(self) : """ retourne la liste des groupes de mailles sous la forme : [ (gma1, nb mailles gma1, dime max des mailles gma1), ...] """ + if self.par_lot() : + raise Accas.AsException("Erreur dans maillage.LIST_GROUP_MA en PAR_LOT='OUI'") nommail=self.get_name() nommail=nommail.ljust(8) ngpma=[] @@ -193,7 +200,8 @@ class cham_elem_sdaster(cham_gd_sdaster): - self.maille : numero de mailles - self.point : numero du point dans la maille - self.sous_point : numero du sous point dans la maille """ - + if self.par_lot() : + raise Accas.AsException("Erreur dans cham_elem.EXTR_COMP en PAR_LOT='OUI'") ncham=self.get_name() ncham=ncham+(8-len(ncham))*' ' @@ -262,8 +270,9 @@ class cham_no_sdaster(cham_gd_sdaster): - self.valeurs : Numeric.array contenant les valeurs Si on a demande la topo (i.e. self.topo = 1) : - self.noeud : numero de noeud """ - - + if self.par_lot() : + raise Accas.AsException("Erreur dans cham_no.EXTR_COMP en PAR_LOT='OUI'") + ncham=self.get_name() ncham=ncham+(8-len(ncham))*' ' nchams=ncham[0:7]+'S' @@ -318,12 +327,20 @@ class cham_no_vnor_c (cham_no_sdaster):pass class resultat_sdaster(ASSD): def LIST_CHAMPS (self) : + if self.par_lot() : + raise Accas.AsException("Erreur dans resultat.LIST_CHAMPS en PAR_LOT='OUI'") return aster.GetResu(self.get_name(), "CHAMPS") def LIST_NOM_CMP (self) : + if self.par_lot() : + raise Accas.AsException("Erreur dans resultat.LIST_NOM_CMP en PAR_LOT='OUI'") return aster.GetResu(self.get_name(), "COMPOSANTES") def LIST_VARI_ACCES (self) : + if self.par_lot() : + raise Accas.AsException("Erreur dans resultat.LIST_VARI_ACCES en PAR_LOT='OUI'") return aster.GetResu(self.get_name(), "VARI_ACCES") def LIST_PARA (self) : + if self.par_lot() : + raise Accas.AsException("Erreur dans resultat.LIST_PARA en PAR_LOT='OUI'") return aster.GetResu(self.get_name(), "PARAMETRES") class acou_harmo (resultat_sdaster):pass @@ -373,7 +390,17 @@ class fonction_class(ASSD): le type jeveux (FONCTION, FONCT_C, NAPPE) n'est pas retourne, le dictionnaire peut ainsi etre fourni a CALC_FONC_INTERP tel quel. """ - if hasattr(self,'etape') and self.etape.nom=='DEFI_FONCTION' : + if not self.par_lot() : + TypeProl={'E':'EXCLU', 'L':'LINEAIRE', 'C':'CONSTANT' } + prol=aster.getvectjev(string.ljust(self.get_name(),19)+'.PROL') + dico={ + 'INTERPOL' : [prol[1][0:3],prol[1][4:7]], + 'NOM_PARA' : string.strip(prol[2][0:16]), + 'NOM_RESU' : string.strip(prol[3][0:16]), + 'PROL_DROITE' : TypeProl[prol[4][1]], + 'PROL_GAUCHE' : TypeProl[prol[4][0]], + } + elif hasattr(self,'etape') and self.etape.nom=='DEFI_FONCTION' : dico={ 'INTERPOL' : self.etape['INTERPOL'], 'NOM_PARA' : self.etape['NOM_PARA'], @@ -387,19 +414,13 @@ class fonction_class(ASSD): dico['INTERPOL']=[dico['INTERPOL'],] if len(dico['INTERPOL'])==1 : dico['INTERPOL']=dico['INTERPOL']*2 - else : - TypeProl={'E':'EXCLU', 'L':'LINEAIRE', 'C':'CONSTANT' } - prol=aster.getvectjev(string.ljust(self.get_name(),19)+'.PROL') - dico={ - 'INTERPOL' : [prol[1][0:3],prol[1][4:7]], - 'NOM_PARA' : string.strip(prol[2][0:16]), - 'NOM_RESU' : string.strip(prol[3][0:16]), - 'PROL_DROITE' : TypeProl[prol[4][1]], - 'PROL_GAUCHE' : TypeProl[prol[4][0]], - } + else: + raise Accas.AsException("Erreur dans fonction.Parametres en PAR_LOT='OUI'") return dico def Trace(self,FORMAT='TABLEAU',**kargs): """Tracé d'une fonction""" + if self.par_lot() : + raise Accas.AsException("Erreur dans fonction.Trace en PAR_LOT='OUI'") from Utilitai.Graph import Graph gr=Graph() gr.AjoutCourbe(Val=self.Valeurs(), @@ -410,7 +431,14 @@ class fonction_sdaster(fonction_class): """ Retourne deux listes de valeurs : abscisses et ordonnees """ - if hasattr(self,'etape') and self.etape.nom=='DEFI_FONCTION' : + if not self.par_lot(): + vale=string.ljust(self.get_name(),19)+'.VALE' + lbl=list(aster.getvectjev(vale)) + dim=len(lbl)/2 + lx=lbl[0:dim] + ly=lbl[dim:2*dim] + return [lx,ly] + elif hasattr(self,'etape') and self.etape.nom=='DEFI_FONCTION' : if self.etape['VALE']!=None: lbl=list(self.etape['VALE']) dim=len(lbl) @@ -420,12 +448,7 @@ class fonction_sdaster(fonction_class): elif self.etape['VALE_PARA']!=None: return [self.etape['VALE_PARA'].Valeurs(),self.etape['VALE_FONC'].Valeurs()] else : - vale=string.ljust(self.get_name(),19)+'.VALE' - lbl=list(aster.getvectjev(vale)) - dim=len(lbl)/2 - lx=lbl[0:dim] - ly=lbl[dim:2*dim] - return [lx,ly] + raise Accas.AsException("Erreur dans fonction.Valeurs en PAR_LOT='OUI'") def Absc(self): """Retourne la liste des abscisses""" return self.Valeurs()[0] @@ -455,14 +478,7 @@ class fonction_c(fonction_class): """ Retourne trois listes de valeurs : abscisses, parties reelles et imaginaires. """ - if self.etape.nom=='DEFI_FONCTION' : - lbl=list(self.etape['VALE_C']) - dim=len(lbl) - lx=[lbl[i] for i in range(0,dim,3)] - lr=[lbl[i] for i in range(1,dim,3)] - li=[lbl[i] for i in range(2,dim,3)] - return [lx,lr,li] - else : + if not self.par_lot(): vale=string.ljust(self.get_name(),19)+'.VALE' lbl=list(aster.getvectjev(vale)) dim=len(lbl)/3 @@ -473,6 +489,15 @@ class fonction_c(fonction_class): lr.append(lbl[dim+2*i]) li.append(lbl[dim+2*i+1]) return [lx,lr,li] + if self.etape.nom=='DEFI_FONCTION' : + lbl=list(self.etape['VALE_C']) + dim=len(lbl) + lx=[lbl[i] for i in range(0,dim,3)] + lr=[lbl[i] for i in range(1,dim,3)] + li=[lbl[i] for i in range(2,dim,3)] + return [lx,lr,li] + else : + raise Accas.AsException("Erreur dans fonction_c.Valeurs en PAR_LOT='OUI'") def Absc(self): """Retourne la liste des abscisses""" return self.Valeurs()[0] @@ -484,6 +509,8 @@ class fonction_c(fonction_class): return self.Valeurs()[2] def Trace(self,FORMAT='TABLEAU',**kargs): """Tracé d'une fonction complexe""" + if self.par_lot() : + raise Accas.AsException("Erreur dans fonction_c.Trace en PAR_LOT='OUI'") from Utilitai.Graph import Graph gr=Graph() gr.AjoutCourbe(Val=self.Valeurs(), @@ -495,6 +522,8 @@ class nappe_sdaster(fonction_class): Retourne la liste des valeurs du parametre, et une liste de couples (abscisses,ordonnees) de chaque fonction. """ + if self.par_lot(): + raise Accas.AsException("Erreur dans nappe.Valeurs en PAR_LOT='OUI'") nsd=string.ljust(self.get_name(),19) dicv=aster.getcolljev(nsd+'.VALE') # les cles de dicv sont 1,...,N (indice du parametre) @@ -512,6 +541,8 @@ class nappe_sdaster(fonction_class): le dictionnaire peut ainsi etre fourni a CALC_FONC_INTERP tel quel, et une liste de dictionnaire des parametres de chaque fonction. """ + if self.par_lot(): + raise Accas.AsException("Erreur dans nappe.Parametres en PAR_LOT='OUI'") TypeProl={'E':'EXCLU', 'L':'LINEAIRE', 'C':'CONSTANT' } prol=aster.getvectjev(string.ljust(self.get_name(),19)+'.PROL') dico={ @@ -534,6 +565,8 @@ class nappe_sdaster(fonction_class): return [dico,lparf] def Trace(self,FORMAT='TABLEAU',**kargs): """Tracé d'une nappe""" + if self.par_lot(): + raise Accas.AsException("Erreur dans nappe.Trace en PAR_LOT='OUI'") from Utilitai.Graph import Graph gr=Graph() lv=self.Valeurs()[1] @@ -573,8 +606,10 @@ class matr_elem_temp_r(matr_elem):pass #-------------------------------- class table_sdaster(ASSD): def __getitem__(self,key): - requete=string.ljust(key[0],24) - tblp=string.ljust(self.get_name(),19)+'.TBLP' + if self.par_lot(): + raise Accas.AsException("Erreur dans table.__getitem__ en PAR_LOT='OUI'") + requete = '%-24s' % key[0] + tblp = '%-19s.TBLP' % self.get_name() tabnom=list(aster.getvectjev(tblp)) for i in range(len(tabnom)) : if tabnom[i]==requete: break @@ -590,6 +625,8 @@ class table_sdaster(ASSD): def EXTR_TABLE(self) : """Produit un objet Table à partir du contenu d'une table Aster """ + if self.par_lot(): + raise Accas.AsException("Erreur dans table.EXTR_TABLE en PAR_LOT='OUI'") from Utilitai.Table import Table tblp=string.ljust(self.get_name(),19)+'.TBLP' tabnom=list(aster.getvectjev(tblp)) @@ -1228,7 +1265,7 @@ def C_TYPE_CHAM_INTO() : return ("ACCE", #COMMUN# "NOEU_VNOR_C", "ELEM_VARI_R", "ELNO_VNOR_C", "ELGA_VNOR_C", "ELEM_VNOR_C", ) -#& MODIF COMMANDE DATE 31/01/2005 AUTEUR LEBOUVIE F.LEBOUVIER +#& MODIF COMMANDE DATE 04/04/2006 AUTEUR CIBHHLV L.VIVAN # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -1375,11 +1412,6 @@ AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem, #============================================================================ DISCRET =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ), AMOR_HYST =SIMP(statut='f',typ='R' ), CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1, @@ -1393,50 +1425,103 @@ AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem, # affection des caractéristiques de RIGIDITE/AMORTISSEMENT b_K_T_D_N =BLOC(condition = "(CARA=='K_T_D_N')or(CARA=='A_T_D_N')", - VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), b_K_T_D_L =BLOC(condition = "(CARA=='K_T_D_L')or(CARA=='A_T_D_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), b_K_TR_D_N =BLOC(condition = "(CARA=='K_TR_D_N')or(CARA=='A_TR_D_N')", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=6 ,max=6 ),), b_K_TR_D_L =BLOC(condition = "(CARA=='K_TR_D_L')or(CARA=='A_TR_D_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=6 ,max=6 ),), b_K_T_N =BLOC(condition = "(CARA=='K_T_N')or(CARA=='A_T_N')", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=6 ,max=6 ),), b_K_T_L =BLOC(condition = "(CARA=='K_T_L')or(CARA=='A_T_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=21,max=21),), b_K_TR_N =BLOC(condition = "(CARA=='K_TR_N')or(CARA=='A_TR_N')", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=21,max=21),), b_K_TR_L =BLOC(condition = "(CARA=='K_TR_L')or(CARA=='A_TR_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=78,max=78),), # affection des caractéristiques de MASSE b_M_T_D_N =BLOC(condition = "CARA=='M_T_D_N'", fr="NOEUD: 1 valeur de masse", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=1 ,max=1 ),), b_M_TR_D_N =BLOC(condition = "CARA=='M_TR_D_N'", fr="NOEUD: 1 valeur de masse, 6 valeurs du tenseur d'inertie, 3 composantes du vecteur d'excentricité", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=10,max=10),), b_M_T_N =BLOC(condition = "CARA=='M_T_N'", fr="NOEUD: 6 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=6 ,max=6 ),), b_M_T_L =BLOC(condition = "CARA=='M_T_L'", fr="SEGMENT: 21 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=21,max=21),), b_M_TR_N =BLOC(condition = "CARA=='M_TR_N'", fr="NOEUD: 21 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=21,max=21),), b_M_TR_L =BLOC(condition = "CARA=='M_TR_L'", fr="SEGMENT: 78 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=78,max=78),), ), #============================================================================ DISCRET_2D =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ), AMOR_HYST =SIMP(statut='f',typ='R' ), CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1, @@ -1450,40 +1535,98 @@ AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem, # affection des caractéristiques de RIGIDITE/AMORTISSEMENT b_K_T_D_N =BLOC(condition = "(CARA=='K_T_D_N')or(CARA=='A_T_D_N')", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=2 ,max=2 ),), b_K_T_D_L =BLOC(condition = "(CARA=='K_T_D_L')or(CARA=='A_T_D_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=2 ,max=2 ),), b_K_TR_D_N =BLOC(condition = "(CARA=='K_TR_D_N')or(CARA=='A_TR_D_N')", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), b_K_TR_D_L =BLOC(condition = "(CARA=='K_TR_D_L')or(CARA=='A_TR_D_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), b_K_T_N =BLOC(condition = "(CARA=='K_T_N')or(CARA=='A_T_N')", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), b_K_T_L =BLOC(condition = "(CARA=='K_T_L')or(CARA=='A_T_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=10,max=10),), b_K_TR_N =BLOC(condition = "(CARA=='K_TR_N')or(CARA=='A_TR_N')", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=6 ,max=6),), b_K_TR_L =BLOC(condition = "(CARA=='K_TR_L')or(CARA=='A_TR_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=21,max=21),), # affection des caractéristiques de MASSE b_M_T_D_N =BLOC(condition = "CARA=='M_T_D_N'", fr="NOEUD: 1 valeur de masse", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=1 ,max=1 ),), b_M_TR_D_N =BLOC(condition = "CARA=='M_TR_D_N'", fr="NOEUD: 1 valeur de masse(m), 1 valeur d'inertie(Izz), 2 composantes du vecteur d'excentricité(ex,ey) ", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=4 ,max=4 ),), b_M_T_N =BLOC(condition = "CARA=='M_T_N'", fr="NOEUD: 3 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), b_M_T_L =BLOC(condition = "CARA=='M_T_L'", fr="SEGMENT: 10 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=10,max=10),), b_M_TR_N =BLOC(condition = "CARA=='M_TR_N'", fr="NOEUD: 6 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=6 ,max=6 ),), b_M_TR_L =BLOC(condition = "CARA=='M_TR_L'", fr="SEGMENT: 21 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=21,max=21),), ), @@ -1712,7 +1855,7 @@ AFFE_CHAR_ACOU=OPER(nom="AFFE_CHAR_ACOU",op= 68,sd_prod=char_acou, DDL =SIMP(statut='o',typ='TXM',max='**'), ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 23/05/2006 AUTEUR CIBHHPD L.SALMONA # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -1731,20 +1874,17 @@ AFFE_CHAR_ACOU=OPER(nom="AFFE_CHAR_ACOU",op= 68,sd_prod=char_acou, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== # RESPONSABLE VABHHTS J.PELLET -def affe_char_cine_prod(MECA_IMPO,THER_IMPO,ACOU_IMPO,**args): +def affe_char_cine_prod(MECA_IMPO,THER_IMPO,**args): if MECA_IMPO != None : return char_cine_meca if THER_IMPO != None : return char_cine_ther - if ACOU_IMPO != None : return char_cine_acou raise AsException("type de concept resultat non prevu") AFFE_CHAR_CINE=OPER(nom="AFFE_CHAR_CINE",op= 101,sd_prod=affe_char_cine_prod ,fr="Affectation de conditions aux limites cinématiques pour traitement sans dualisation", reentrant='n', UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('MECA_IMPO','THER_IMPO','ACOU_IMPO'), - EXCLUS('MECA_IMPO','THER_IMPO'), - EXCLUS('MECA_IMPO','ACOU_IMPO'), - EXCLUS('THER_IMPO','ACOU_IMPO'),), + regles=(AU_MOINS_UN('MECA_IMPO','THER_IMPO'), + EXCLUS('MECA_IMPO','THER_IMPO'),), MODELE =SIMP(statut='o',typ=modele_sdaster ), MECA_IMPO =FACT(statut='f',max='**', regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'), @@ -1773,13 +1913,6 @@ AFFE_CHAR_CINE=OPER(nom="AFFE_CHAR_CINE",op= 101,sd_prod=affe_char_cine_prod TEMP =SIMP(statut='f',typ='R' ), TEMP_INF =SIMP(statut='f',typ='R' ), ), - ACOU_IMPO =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - PRES =SIMP(statut='o',typ='C' ), - ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; #& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS @@ -4868,7 +5001,7 @@ CALC_FLUI_STRU=OPER(nom="CALC_FLUI_STRU",op= 144,sd_prod=melasflu_sdaster, DEFORMEE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), ), ) ; -#& MODIF COMMANDE DATE 04/04/2005 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 23/05/2006 AUTEUR CIBHHPD L.SALMONA # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -4886,11 +5019,14 @@ CALC_FLUI_STRU=OPER(nom="CALC_FLUI_STRU",op= 144,sd_prod=melasflu_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -def calc_fonc_interp_prod(FONCTION,**args): +def calc_fonc_interp_prod(FONCTION, NOM_PARA_FONC, **args): if AsType(FONCTION) ==nappe_sdaster : return nappe_sdaster elif AsType(FONCTION)==fonction_sdaster : return fonction_sdaster elif AsType(FONCTION)==fonction_c : return fonction_c - elif AsType(FONCTION)==formule : return fonction_sdaster + elif AsType(FONCTION)==formule : + if NOM_PARA_FONC != None: + return nappe_sdaster + return fonction_sdaster elif AsType(FONCTION)==para_sensi : return para_sensi raise AsException("type de concept resultat non prevu") @@ -5521,7 +5657,7 @@ CALC_MATR_AJOU=OPER(nom="CALC_MATR_AJOU",op= 152,sd_prod=matr_asse_gene_r, ), ), ) ; -#& MODIF COMMANDE DATE 01/02/2005 AUTEUR VABHHTS J.PELLET +#& MODIF COMMANDE DATE 31/01/2006 AUTEUR ACBHHCD G.DEVESA # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -5555,6 +5691,7 @@ def calc_matr_elem_prod(OPTION,**args): if OPTION == "AMOR_MECA" : return matr_elem_depl_r if OPTION == "IMPE_MECA" : return matr_elem_depl_r if OPTION == "ONDE_FLUI" : return matr_elem_depl_r + if OPTION == "AMOR_MECA_ABSO" : return matr_elem_depl_r if OPTION == "RIGI_MECA_HYST" : return matr_elem_depl_c if OPTION == "RIGI_THER" : return matr_elem_temp_r if OPTION == "MASS_THER" : return matr_elem_temp_r @@ -5571,7 +5708,7 @@ CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op= 9,sd_prod=calc_matr_elem_prod OPTION =SIMP(statut='o',typ='TXM', into=("RIGI_MECA","MASS_MECA","RIGI_GEOM", "AMOR_MECA","RIGI_THER","MASS_THER","IMPE_MECA", - "ONDE_FLUI","MASS_FLUI_STRU","RIGI_FLUI_STRU", + "ONDE_FLUI","AMOR_MECA_ABSO","MASS_FLUI_STRU","RIGI_FLUI_STRU", "RIGI_ROTA","MASS_MECA_DIAG","RIGI_ACOU", "MASS_ID_MDEP_R","MASS_ID_MDNS_R","MASS_ID_MTEM_R","MASS_ID_MTNS_R", "MASS_ACOU","AMOR_ACOU","RIGI_MECA_HYST", @@ -5642,7 +5779,18 @@ CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op= 9,sd_prod=calc_matr_elem_prod MASS_MECA =SIMP(statut='f',typ=matr_elem_depl_r ), CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), ), - + + b_amor_meca_abso =BLOC(condition = "OPTION=='AMOR_MECA_ABSO'", + regles=(AU_MOINS_UN('CARA_ELEM','RIGI_MECA'), + ENSEMBLE('RIGI_MECA','MASS_MECA','CHAM_MATER'), ), + MODELE =SIMP(statut='o',typ=modele_sdaster ), + CARA_ELEM =SIMP(statut='f',typ=cara_elem ), + CHAM_MATER =SIMP(statut='o',typ=cham_mater ), + RIGI_MECA =SIMP(statut='f',typ=matr_elem_depl_r ), + MASS_MECA =SIMP(statut='f',typ=matr_elem_depl_r ), + CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), + ), + b_rigi_meca_hyst =BLOC( condition = "OPTION=='RIGI_MECA_HYST'", MODELE =SIMP(statut='o',typ=modele_sdaster ), CHARGE =SIMP(statut='f',typ=char_meca ,validators=NoRepeat(),max='**' ), @@ -6770,7 +6918,7 @@ CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage_sdaster, # INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 17/08/2004 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 30/01/2006 AUTEUR D6BHHJP J.P.LEFEBVRE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -6799,15 +6947,15 @@ def crea_resu_prod(TYPE_RESU,**args): CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f', UIinfo={"groupes":("Modélisation",)}, - fr="Engendrer ou enrichir une structure de donnees en affectant les cham_gd associes", + fr="Créer ou enrichir une structure de donnees resultat à partir de champs aux noeuds", OPERATION =SIMP(statut='o',typ='TXM',into=("AFFE","ECLA_PG","PERM_CHAM","PROL_RTZ",), fr="choix de la fonction a activer",), b_affe =BLOC(condition = "OPERATION == 'AFFE'", - TYPE_RESU =SIMP(statut='o',typ='TXM',into=("MULT_ELAS","EVOL_ELAS","EVOL_NOLI","FOURIER_ELAS", - "EVOL_THER","EVOL_VARC",) ), + TYPE_RESU =SIMP(statut='o',position='global',typ='TXM',into=("MULT_ELAS","EVOL_ELAS","EVOL_NOLI","FOURIER_ELAS", + "EVOL_THER","EVOL_VARC",) ), NOM_CHAM =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()), AFFE =FACT(statut='o',max='**', @@ -6816,8 +6964,12 @@ CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f', CHAM_MATER =SIMP(statut='f',typ=cham_mater), CARA_ELEM =SIMP(statut='f',typ=cara_elem), - # affectation de plusieurs instants à l'aide d'un champ aux noeuds de fonctions du temps: - b_fonc =BLOC(condition = "AsType(CHAM_GD) in (cham_no_temp_f,cham_no_depl_f)", + b_mult_elas =BLOC(condition = "TYPE_RESU == 'MULT_ELAS' ", + NOM_CAS =SIMP(statut='f',typ='TXM' ), + ), + b_evol =BLOC(condition = "((TYPE_RESU=='EVOL_ELAS') or (TYPE_RESU=='EVOL_NOLI') or (TYPE_RESU=='EVOL_THER')\ + or (TYPE_RESU=='EVOL_VARC') )", + regles=(UN_PARMI('INST','LIST_INST'),), INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), LIST_INST =SIMP(statut='f',typ=listr8_sdaster), NUME_INIT =SIMP(statut='f',typ='I', val_min=1), @@ -6825,19 +6977,9 @@ CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f', PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), ), - - # affectation d'un seul nume_ordre : - b_reel =BLOC(condition = "AsType(CHAM_GD) not in (cham_no_temp_f,cham_no_depl_f)", - regles=(UN_PARMI('NOM_CAS','NUME_MODE','INST','LIST_INST'),), - NOM_CAS =SIMP(statut='f',typ='TXM' ), + b_fourier =BLOC(condition = "TYPE_RESU == 'FOURIER_ELAS' ", NUME_MODE =SIMP(statut='f',typ='I'), TYPE_MODE =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - NUME_INIT =SIMP(statut='f',typ='I', val_min=1), - NUME_FIN =SIMP(statut='f',typ='I', val_min=1), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), ), ), ), @@ -6892,7 +7034,7 @@ CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f', PROL_RTZ =FACT(statut='o', regles=(EXCLUS('INST','LIST_INST'),), MAILLAGE_FINAL =SIMP(statut='o',typ=maillage_sdaster,), - TABLE =SIMP(statut='o',typ=tabl_post_rele,fr="Table issue de post_releve_t"), + TABLE =SIMP(statut='o',typ=table_sdaster,fr="Table issue de post_releve_t"), INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), LIST_INST =SIMP(statut='f',typ=listr8_sdaster), b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)", @@ -6967,7 +7109,7 @@ CREA_TABLE=OPER(nom="CREA_TABLE",op= 36,sd_prod=crea_table_prod, -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 30/01/2006 AUTEUR D6BHHJP J.P.LEFEBVRE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -6992,8 +7134,6 @@ DEBUT=MACRO(nom="DEBUT",op=ops.build_debut ,repetable='n', PAR_LOT =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM', into=("OUI","NON"),defaut="OUI"), - FORMAT_HDF =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f', - typ='TXM',defaut="NON",into=("OUI","NON",) ), BASE =FACT(fr="définition des paramètres associés aux bases JEVEUX", statut='f',min=1,max=3, FICHIER =SIMP(fr="nom de la base",statut='o',typ='TXM', @@ -19869,7 +20009,7 @@ POST_ZAC=OPER(nom="POST_ZAC",op= 175,sd_prod=mult_elas,reentrant='n', CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 30/01/2006 AUTEUR D6BHHJP J.P.LEFEBVRE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -19920,7 +20060,7 @@ POURSUITE=MACRO(nom="POURSUITE",op=ops.build_poursuite,repetable='n',fr="Poursui JEVEUX =SIMP(fr="force les déchargement sur disque", statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'), ENVIMA =SIMP(fr="imprime les valeurs définies dans ENVIMA", - statut='f',typ='TXM',into=('TES',)), + statut='f',typ='TXM',into=('TEST',)), ), MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=1,max=1, GESTION =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'), @@ -21111,7 +21251,7 @@ STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli, INFO =SIMP(statut='f',typ='I',into=(1,2) ), TITRE =SIMP(statut='f',typ='TXM',max='**' ), ) ; -#& MODIF COMMANDE DATE 05/10/2004 AUTEUR CIBHHLV L.VIVAN +#& MODIF COMMANDE DATE 24/05/2006 AUTEUR CIBHHLV L.VIVAN # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG @@ -21139,8 +21279,8 @@ TEST_FICHIER=MACRO(nom="TEST_FICHIER", op=test_fichier_ops, UNITE =SIMP(statut='f',typ='I',defaut=8), FICHIER =SIMP(statut='o',typ='TXM',validators=LongStr(1,255)), - NB_CHIFFRE =SIMP(statut='f',typ='I',defaut=6), - EPSILON =SIMP(statut='f',typ='R',defaut=1.E-14), + NB_CHIFFRE =SIMP(statut='o',typ='I',), # defaut=6 pas de defaut, il faut + EPSILON =SIMP(statut='o',typ='R',), # defaut=1.E-12 se poser la question ! EXPR_IGNORE =SIMP(statut='f',typ='TXM',max='**', fr="Liste d'expressions régulières permettant d'ignorer certaines lignes"), VALE_K =SIMP(statut='o',typ='TXM' ), diff --git a/Aster/Cata/cataSTA8/Macro/calc_fonction_ops.py b/Aster/Cata/cataSTA8/Macro/calc_fonction_ops.py index b3199f06..a541180f 100644 --- a/Aster/Cata/cataSTA8/Macro/calc_fonction_ops.py +++ b/Aster/Cata/cataSTA8/Macro/calc_fonction_ops.py @@ -1,4 +1,4 @@ -#@ MODIF calc_fonction_ops Macro DATE 31/05/2005 AUTEUR DURAND C.DURAND +#@ MODIF calc_fonction_ops Macro DATE 02/05/2006 AUTEUR MCOURTOI M.COURTOIS # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -28,7 +28,7 @@ def calc_fonction_ops(self,FFT,DERIVE,INTEGRE,LISS_ENVELOP, ENVELOPPE,ASSE,CORR_ACCE,PUISSANCE,INVERSE, NOM_PARA,NOM_RESU,INTERPOL,PROL_DROITE, PROL_GAUCHE,NOM_PARA_FONC,INTERPOL_FONC,PROL_DROITE_FONC, - PROL_GAUCHE_FONC,**args): + PROL_GAUCHE_FONC,INFO,**args): """ Ecriture de la macro CALC_FONCTION """ @@ -38,6 +38,7 @@ def calc_fonction_ops(self,FFT,DERIVE,INTEGRE,LISS_ENVELOP, import copy from math import pi from Utilitai.t_fonction import t_fonction,t_fonction_c,t_nappe + from Utilitai import liss_enveloppe from Accas import _F from Cata.cata import nappe_sdaster,fonction_sdaster,fonction_c from Utilitai.Utmess import UTMESS @@ -48,6 +49,7 @@ def calc_fonction_ops(self,FFT,DERIVE,INTEGRE,LISS_ENVELOP, ### On importe les definitions des commandes a utiliser dans la macro DEFI_FONCTION = self.get_cmd('DEFI_FONCTION') + IMPR_FONCTION = self.get_cmd('IMPR_FONCTION') DEFI_NAPPE = self.get_cmd('DEFI_NAPPE') ### Comptage commandes + déclaration concept sortant @@ -127,14 +129,22 @@ def calc_fonction_ops(self,FFT,DERIVE,INTEGRE,LISS_ENVELOP, __ex=list_fonc[0] if COMB_C[0]['COEF_R']!=None: __ex=__ex*complex(COMB_C[0]['COEF_R']) - if COMB_C[0]['COEF_C']!=None: __ex=__ex*tocomplex(COMB_C[0]['COEF_C']) + if COMB_C[0]['COEF_C']!=None: + if type(COMB_C[0]['COEF_C']) in EnumType : __ex=__ex*tocomplex(COMB_C[0]['COEF_C']) + else : __ex=__ex*COMB_C[0]['COEF_C'] i=1 for item in list_fonc[1:] : if COMB_C[i]['COEF_R']!=None: coef=complex(COMB_C[i]['COEF_R']) - if COMB_C[i]['COEF_C']!=None: coef=tocomplex(COMB_C[i]['COEF_C']) + if COMB_C[i]['COEF_C']!=None: + if type(COMB_C[i]['COEF_C']) in EnumType : coef=tocomplex(COMB_C[i]['COEF_C']) + else : coef=COMB_C[i]['COEF_C'] item=item*coef __ex=__ex+item i=i+1 + ### mot clé LIST_PARA uniquement présent si COMB ou COMB_C + if (COMB != None) or (COMB_C != None) : + if (args['LIST_PARA'] != None) : + __ex=__ex.evalfonc(args['LIST_PARA'].Valeurs()) ### if (PUISSANCE != None): __ff=PUISSANCE['FONCTION'].convert() @@ -274,7 +284,15 @@ def calc_fonction_ops(self,FFT,DERIVE,INTEGRE,LISS_ENVELOP, l_fonc.append(t_fonction(l_freq,spectr[iamor,ideb,:]/SPEC_OSCI['NORME'],para_fonc)) __ex=t_nappe(vale_para,l_fonc,para) ### - if (LISS_ENVELOP!= None): return + if (LISS_ENVELOP!= None): + __ff=LISS_ENVELOP['NAPPE'].convert() + sp_nappe=liss_enveloppe.nappe(listFreq=__ff.l_fonc[0].vale_x, listeTable=[f.vale_y for f in __ff.l_fonc], listAmor=__ff.vale_para, entete="") + sp_lisse=liss_enveloppe.lissage(nappe=sp_nappe,fmin=LISS_ENVELOP['FREQ_MIN'],fmax=LISS_ENVELOP['FREQ_MAX'],elarg=LISS_ENVELOP['ELARG'],tole_liss=LISS_ENVELOP['TOLE_LISS']) + para_fonc=__ff.l_fonc[0].para + l_fonc=[] + for val in sp_lisse.listTable : + l_fonc.append(t_fonction(sp_lisse.listFreq,val,para_fonc)) + __ex=t_nappe(vale_para=sp_lisse.listAmor,l_fonc=l_fonc,para=__ff.para) ### creation de la fonction produite par appel à DEFI_FONCTION ### on récupère les paramètres issus du calcul de __ex @@ -307,5 +325,9 @@ def calc_fonction_ops(self,FFT,DERIVE,INTEGRE,LISS_ENVELOP, if NOM_PARA_FONC !=None : para['NOM_PARA_FONC'] =INTERPOL if INTERPOL_FONC !=None : para['INTERPOL'] =INTERPOL C_out=DEFI_NAPPE(PARA=__ex.vale_para.tolist(),DEFI_FONCTION=def_fonc,**para) + if INFO > 1: + IMPR_FONCTION(FORMAT='TABLEAU', + UNITE=6, + COURBE=_F(FONCTION=C_out),) return ier diff --git a/Aster/Cata/cataSTA8/Macro/calc_precont_ops.py b/Aster/Cata/cataSTA8/Macro/calc_precont_ops.py index a012dfb5..68ddb810 100644 --- a/Aster/Cata/cataSTA8/Macro/calc_precont_ops.py +++ b/Aster/Cata/cataSTA8/Macro/calc_precont_ops.py @@ -1,4 +1,4 @@ -#@ MODIF calc_precont_ops Macro DATE 07/03/2005 AUTEUR DURAND C.DURAND +#@ MODIF calc_precont_ops Macro DATE 05/09/2005 AUTEUR DURAND C.DURAND # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -37,6 +37,7 @@ def calc_precont_ops(self,reuse,MODELE,CHAM_MATER,CARA_ELEM,EXCIT, import types from Accas import _F from Noyau.N_utils import AsType + from Utilitai.Utmess import UTMESS ier=0 # On importe les definitions des commandes a utiliser dans la macro @@ -53,7 +54,7 @@ def calc_precont_ops(self,reuse,MODELE,CHAM_MATER,CARA_ELEM,EXCIT, AFFE_MATERIAU = self.get_cmd('AFFE_MATERIAU') # La macro compte pour 1 dans la numerotation des commandes - self.icmd=1 + self.set_icmd(1) # Le concept sortant (de type evol_noli) est nomme RES dans # le contexte de la macro @@ -109,9 +110,7 @@ def calc_precont_ops(self,reuse,MODELE,CHAM_MATER,CARA_ELEM,EXCIT, # Teste si INST_INIT est bien plus petit que INST_FIN if __TMAX <= __TMIN: - ier=ier+1 - self.cr.fatal(""" ERREUR : INST_FIN PLUS PETIT QUE INST_INIT""") - return ier + UTMESS('F','CALC_PRECONT','INST_FIN PLUS PETIT QUE INST_INIT') # Cree la liste d'instant __L2 allant de __TMIN a __TMAX et contenant # un instant supplementaire __TINT diff --git a/Aster/Cata/cataSTA8/Macro/calc_table_ops.py b/Aster/Cata/cataSTA8/Macro/calc_table_ops.py new file mode 100644 index 00000000..cd62da23 --- /dev/null +++ b/Aster/Cata/cataSTA8/Macro/calc_table_ops.py @@ -0,0 +1,162 @@ +#@ MODIF calc_table_ops Macro DATE 10/04/2006 AUTEUR MCOURTOI M.COURTOIS +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +# RESPONSABLE MCOURTOI M.COURTOIS +from types import * +EnumTypes = (ListType, TupleType) + +def calc_table_ops(self, TABLE, ACTION, INFO, **args): + """ + Macro CALC_TABLE permettant de faire des opérations sur une table + """ + import aster + + macro = 'CALC_TABLE' + from Accas import _F + from Cata.cata import table_jeveux + from Utilitai.Utmess import UTMESS + from Utilitai import transpose + from Utilitai.Table import Table, merge + from Utilitai.Sensibilite import NomCompose + + ier = 0 + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + # Le concept sortant (de type table_sdaster ou dérivé) est tab + self.DeclareOut('tabout', self.sd) + + # On importe les definitions des commandes a utiliser dans la macro + # Le nom de la variable doit etre obligatoirement le nom de la commande + CREA_TABLE = self.get_cmd('CREA_TABLE') + DETRUIRE = self.get_cmd('DETRUIRE') + + # 0. faut-il utiliser une table dérivée + form_sens='\n... SENSIBILITE AU PARAMETRE %s (SD COMP %s)' + if args['SENSIBILITE']: + ncomp = NomCompose(TABLE, args['SENSIBILITE'], msg='F') + sdtab = table_jeveux(ncomp) + tab = sdtab.EXTR_TABLE() + else: + tab = TABLE.EXTR_TABLE() + + #---------------------------------------------- + # Boucle sur les actions à effectuer + for fOP in ACTION: + occ = fOP.cree_dict_valeurs(fOP.mc_liste) + for mc, val in occ.items(): + if val == None: + del occ[mc] + + #---------------------------------------------- + # 1. Traitement du FILTRE + # format pour l'impression des filtres + form_filtre = '\nFILTRE -> NOM_PARA: %-16s CRIT_COMP: %-4s VALE: %s' + if occ['OPERATION'] == 'FILTRE': + col = getattr(tab, occ['NOM_PARA']) + # peu importe le type, c'est la meme méthode d'appel + opts = [occ[k] for k in ('VALE','VALE_I','VALE_C','VALE_K') if occ.has_key(k)] + kargs = {} + for k in ('CRITERE','PRECISION'): + if occ.has_key(k): + kargs[k] = occ[k] + tab = tab & ( getattr(col, occ['CRIT_COMP'])(*opts,**kargs) ) + # trace l'operation dans le titre + #if FORMAT in ('TABLEAU','ASTER'): + tab.titr += form_filtre % (occ['NOM_PARA'], occ['CRIT_COMP'], \ + ' '.join([str(v) for v in opts])) + + #---------------------------------------------- + # 2. Traitement de EXTR + if occ['OPERATION'] == 'EXTR': + lpar = occ['NOM_PARA'] + if not type(lpar) in EnumTypes: + lpar = [lpar] + for p in lpar: + if not p in tab.para: + UTMESS('F', macro, 'Paramètre %s inexistant dans la table %s' % (p, TABLE.nom)) + tab = tab[occ['NOM_PARA']] + + #---------------------------------------------- + # 3. Traitement de RENOMME + if occ['OPERATION'] == 'RENOMME': + try: + tab.Renomme(*occ['NOM_PARA']) + except KeyError, msg: + UTMESS('F', macro, msg) + + #---------------------------------------------- + # 4. Traitement du TRI + if occ['OPERATION'] == 'TRI': + tab.sort(CLES=occ['NOM_PARA'], ORDRE=occ['ORDRE']) + + #---------------------------------------------- + # 5. Traitement de COMB + if occ['OPERATION'] == 'COMB': + tab2 = occ['TABLE'].EXTR_TABLE() + opts = [tab, tab2] + if occ['NOM_PARA']<>None: + lpar = occ['NOM_PARA'] + if not type(lpar) in EnumTypes: + lpar = [lpar] + for p in lpar: + if not p in tab.para: + UTMESS('F', macro, 'Paramètre %s inexistant dans la table %s' % (p, TABLE.nom)) + if not p in tab2.para: + UTMESS('F', macro, 'Paramètre %s inexistant dans la table %s' % (p, occ['TABLE'].nom)) + opts.append(lpar) + tab = merge(*opts) + + #---------------------------------------------- + # 6. Traitement de OPER + if occ['OPERATION'] == 'OPER': + # ajout de la colonne dans la table + tab.fromfunction(occ['NOM_PARA'], occ['FORMULE']) + if INFO == 2: + vectval = getattr(tab, occ['NOM_PARA']).values() + aster.affiche('MESSAGE', 'Ajout de la colonne %s : %s' % (occ['NOM_PARA']+repr(vectval))+'\n') + + #---------------------------------------------- + # 99. Création de la table_sdaster résultat + # cas réentrant : il faut détruire l'ancienne table_sdaster + if self.sd.nom == TABLE.nom: + DETRUIRE(CONCEPT=_F(NOM=TABLE.nom,), INFO=1) + + dprod = tab.dict_CREA_TABLE() + if INFO == 2: + echo_mess = [] + echo_mess.append( '@-'*30+'\n' ) + echo_mess.append( tab ) + from pprint import pformat + echo_mess.append( pformat(dprod) ) + echo_mess.append( '@-'*30+'\n' ) + texte_final = ' '.join(echo_mess) + aster.affiche('MESSAGE', texte_final) + + # surcharge par le titre fourni + tit = args['TITRE'] + if tit != None: + if not type(tit) in EnumTypes: + tit = [tit] + dprod['TITRE'] = tuple(['%-80s' % lig for lig in tit]) + # type de la table de sortie à passer à CREA_TABLE + tabout = CREA_TABLE(**dprod) + + return ier diff --git a/Aster/Cata/cataSTA8/Macro/creation_donnees_homard.py b/Aster/Cata/cataSTA8/Macro/creation_donnees_homard.py new file mode 100644 index 00000000..3c41eccf --- /dev/null +++ b/Aster/Cata/cataSTA8/Macro/creation_donnees_homard.py @@ -0,0 +1,522 @@ +#@ MODIF creation_donnees_homard Macro DATE 22/05/2006 AUTEUR MCOURTOI M.COURTOIS +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE MCOURTOI M.COURTOIS +__all__ = [ ] +""" +Cette classe crée le fichier de configuration permettant de lancer HOMARD depuis Code_Aster. +""" +__revision__ = "V1.0" + +import os +import os.path + +try: + from Utilitai.Utmess import UTMESS +except ImportError: + def UTMESS(code, sprg, texte) : + """Clone de utmess si on ne reussit pas à le charger + """ + fmt = '\n <%s> <%s> %s\n\n' + print fmt % (code, sprg, texte) + +# ------------------------------------------------------------------------------ +class creation_donnees_homard: + """Cette classe crée les données permettant de lancer HOMARD depuis Code_Aster. + Ce sont : + . le fichier de configuration + . le fichier des données dans le cas d'information + + Arguments (stockés en tant qu'attribut) : + . nom_macro : nom de la macro-commande qui appelle : + 'MACR_ADAP_MAIL' pour une adaptation + 'MACR_INFO_MAIL' pour une information sur un maillage + . mots_cles : mots-clés de la macro-commande + . dico_configuration : dictionnaire des options + + Attributs : + . Nom_Fichier_Configuration : nom du fichier de configuration (immuable) + . Nom_Fichier_Donnees : nom du fichier de données (immuable) + . mode_homard : le mode pour filtrer ici ("ADAP" ou "INFO") + . ModeHOMA : le mode pour HOMARD (1 ou 2) + . mode_homard_texte : le mode d'utilisation, en francais ("ADAPTATION" ou "INFORMATION") + . elements_incompatibles : que faire des éléments incompatibles avec HOMARD + """ +# ------------------------------------------------------------------------------ + def __init__(self, nom_macro, mots_cles, dico_configuration ) : + """Construction + valeurs par défaut des attributs + """ +# +# 1. Vérification de la macro qui appelle +# + d_aux = {} + d_aux["MACR_ADAP_MAIL"] = ( "ADAP", 1, "ADAPTATION" ) + d_aux["MACR_INFO_MAIL"] = ( "INFO", 2, "INFORMATION" ) + if d_aux.has_key(nom_macro) : + self.mode_homard = d_aux[nom_macro][0] + self.ModeHOMA = d_aux[nom_macro][1] + self.mode_homard_texte = d_aux[nom_macro][2] + else : + UTMESS("F", nom_macro, "Cette macro commande est inconnue.") +# +# 2. Données générales de cette initialisation +# +#gn for mot_cle in mots_cles.keys() : +#gn print "mots_cles[", mot_cle, "] = ", mots_cles[mot_cle] +#gn for mot_cle in dico_configuration.keys() : +#gn print "dico_configuration[", mot_cle, "] = ", dico_configuration[mot_cle] +# + self.nom_macro = nom_macro + self.mots_cles = mots_cles + self.dico_configuration = dico_configuration +# +# 3. Quel type de traitement des elemenst incompatibles +# + if mots_cles.has_key("ELEMENTS_NON_HOMARD") : + d_aux = {} + d_aux["REFUSER"] = "TOUS" + d_aux["IGNORER"] = "IGNORE_QUAD" + self.elements_incompatibles = d_aux[mots_cles["ELEMENTS_NON_HOMARD"]] + else : + self.elements_incompatibles = None +# +# 4. Attributs immuables +# + self.Nom_Fichier_Configuration = "HOMARD.Configuration" + self.Nom_Fichier_Donnees = "HOMARD.Donnees" +# +# ------------------------------------------------------------------------------ + def int_to_str2 (self, entier) : + """ + Transforme un entier compris entre 0 et 99 en une chaine sur deux caractères + """ +# print "\nArguments a l'entree de", __name__, ":", entier +# + try: + la_chaine = '%02d' % entier + except TypeError: + la_chaine = None +# + return la_chaine +# ------------------------------------------------------------------------------ + def quel_mode (self) : + """Informe sur le mode de lancement de HOMARD + """ +### print self.mode_homard_texte + print "Lancement de creation_donnees_homard en mode", self.mode_homard_texte + return +# ------------------------------------------------------------------------------ + def creation_configuration (self) : + """Crée les données nécessaires à la configuration + """ +# + message_erreur = None +# + while message_erreur is None : +# +# 1. Les chaines liées aux numéros d'itération +# + if self.mode_homard == "ADAP" : + niter = self.dico_configuration["niter"] + self.str_niter = self.int_to_str2 (niter) + self.str_niterp1 = self.int_to_str2 (niter+1) + self.niter_vers_niterp1 = self.str_niter + ".vers." + self.str_niterp1 +# +# 2. La liste standard +# + if self.mode_homard == "INFO" : + aux = "Liste.info" + else : + aux = "Liste." + self.niter_vers_niterp1 + self.ListeStd = aux +# +# 3. Le type de bilan : il faut convertir la donnée textuelle en un entier, +# produit de nombres premiers. +# Si rien n'est demandé, on met 0. +# + aux = 1 + dico_aux = {} + dico_aux["INTERPENETRATION"] = 3 + dico_aux["NOMBRE"] = 7 + dico_aux["QUALITE"] = 5 + dico_aux["CONNEXITE"] = 11 + dico_aux["TAILLE"] = 13 + l_aux = dico_aux.keys() + for choix in l_aux : + if self.mots_cles.has_key(choix) : + if self.mots_cles[choix] == "OUI" : + aux = aux * dico_aux[choix] + if aux == 1 : + aux = 0 + self.TypeBila = aux +# +# 4. Les entrées/sorties au format MED +# + self.CCNoMN__ = self.dico_configuration["NOM_MED_MAILLAGE_N"] + if self.mode_homard == "ADAP" : + self.CCNoMNP1 = self.dico_configuration["NOM_MED_MAILLAGE_NP1"] + if self.dico_configuration.has_key("NOM_MED_MAILLAGE_NP1_ANNEXE") : + self.CCMaiAnn = self.dico_configuration["NOM_MED_MAILLAGE_NP1_ANNEXE"] +# +# 5. Les entrées/sorties au format HOMARD +# + if self.mode_homard == "ADAP" : + self.fic_homard_niter = "M_" + self.str_niter + ".hom" + self.fic_homard_niterp1 = "M_" + self.str_niterp1 + ".hom" + else : + self.fic_homard_niter = None +# +# 6.1. Le pilotage de l'adaptation +# + if self.mode_homard == "ADAP" : +# +# 6.1. Le type d'adaptation +# + if self.mots_cles["ADAPTATION"] == "RAFFINEMENT" or self.mots_cles["ADAPTATION"] == "RAFFINEMENT_ZONE" : + self.TypeRaff = "libre" + self.TypeDera = "non" + elif self.mots_cles["ADAPTATION"] == "DERAFFINEMENT" : + self.TypeRaff = "non" + self.TypeDera = "libre" + elif self.mots_cles["ADAPTATION"] == "RAFF_DERA" : + self.TypeRaff = "libre" + self.TypeDera = "libre" + elif self.mots_cles["ADAPTATION"] == "RAFFINEMENT_UNIFORME" : + self.TypeRaff = "uniforme" + self.TypeDera = "non" + elif self.mots_cles["ADAPTATION"] == "DERAFFINEMENT_UNIFORME" : + self.TypeRaff = "non" + self.TypeDera = "uniforme" + elif self.mots_cles["ADAPTATION"] == "RIEN" : + self.TypeRaff = "non" + self.TypeDera = "non" +#gn print "... self.TypeRaff = ",self.TypeRaff +#gn print "... self.TypeDera = ",self.TypeDera +# +# 6.2. L'éventuel seuil de raffinement +# + if self.TypeRaff == "libre" and self.mots_cles["ADAPTATION"] != "RAFFINEMENT_ZONE" : + d_aux = {} + d_aux["CRIT_RAFF_ABS"] = ("SeuilHau", 1) + d_aux["CRIT_RAFF_REL"] = ("SeuilHRe", 100) + d_aux["CRIT_RAFF_PE" ] = ("SeuilHPE", 100) + l_aux = d_aux.keys() + for mot_cle in l_aux : + if self.mots_cles[mot_cle] is not None : + aux = self.mots_cles[mot_cle]*d_aux[mot_cle][1] + self.critere_raffinement = (d_aux[mot_cle][0], aux) + else : + self.critere_raffinement = None +#gn print "... self.critere_raffinement = ", self.critere_raffinement +# +# 6.3. L'éventuel seuil de déraffinement +# + if self.TypeDera == "libre" : + d_aux = {} + d_aux["CRIT_DERA_ABS"] = ("SeuilBas", 1) + d_aux["CRIT_DERA_REL"] = ("SeuilBRe", 100) + d_aux["CRIT_DERA_PE" ] = ("SeuilBPE", 100) + l_aux = d_aux.keys() + for mot_cle in l_aux : + if self.mots_cles[mot_cle] is not None : + aux = self.mots_cles[mot_cle]*d_aux[mot_cle][1] + self.critere_deraffinement = (d_aux[mot_cle][0], aux) + else : + self.critere_deraffinement = None +#gn print "... self.critere_deraffinement = ", self.critere_deraffinement +# +# 6.4. Les niveaux extremes +# + self.niveau = [] + for mot_cle in [ "NIVE_MIN", "NIVE_MAX" ] : + if self.mots_cles.has_key(mot_cle) : + if self.mots_cles[mot_cle] is not None : + if mot_cle == "NIVE_MIN" : + aux = "NiveauMi" + else : + aux = "NiveauMa" + self.niveau.append((aux, self.mots_cles[mot_cle])) + if len(self.niveau) == 2 : +#gn print self.mots_cles["NIVE_MIN"] +#gn print self.mots_cles["NIVE_MAX"] + if self.mots_cles["NIVE_MIN"] >= self.mots_cles["NIVE_MAX"] : + message_erreur = "Le niveau mini ,"+str(self.mots_cles["NIVE_MIN"])+\ + ", doit etre < au niveau maxi, "+str(self.mots_cles["NIVE_MAX"])+"." + break +# +# 6.5. Les éventuelles zones de raffinement +# + if self.dico_configuration.has_key("Zones") : + iaux = 0 + for zone in self.dico_configuration["Zones"] : + iaux = iaux + 1 + s_aux_1 = "Zone numero "+str(iaux)+" : " + s_aux_2 = ", doit etre < au " + if zone.has_key("X_MINI") : + if zone["X_MINI"] >= zone["X_MAXI"] : + message_erreur = s_aux_1+"X mini ,"+str(zone["X_MINI"])+s_aux_2+"X maxi, "+str(zone["X_MAXI"])+"." + if zone["Y_MINI"] >= zone["Y_MAXI"] : + message_erreur = s_aux_1+"Y mini ,"+str(zone["Y_MINI"])+s_aux_2+"Y maxi, "+str(zone["Y_MAXI"])+"." + if zone.has_key("Z_MINI") : + if zone["Z_MINI"] >= zone["Z_MAXI"] : + message_erreur = s_aux_1+"Z mini ,"+str(zone["Z_MINI"])+s_aux_2+"Z maxi, "+str(zone["Z_MAXI"])+"." +# + break +# + if message_erreur is not None : + UTMESS("F", self.nom_macro, message_erreur) +# + return self.fic_homard_niter +# ------------------------------------------------------------------------------ + def ouvre_fichier (self, nomfic_local) : + """Ouvre en écriture un fichier après l'avoir éventuellement détruit + """ + codret_partiel = [0] +### print nomfic_local + Rep_Calc_HOMARD_global = self.dico_configuration["Rep_Calc_HOMARD_global"] + nomfic = os.path.join ( Rep_Calc_HOMARD_global , nomfic_local ) +# + if os.path.isfile (nomfic) : + try : + os.remove (nomfic) + except os.error, codret_partiel : + print "Probleme au remove, erreur numéro ", codret_partiel[0], ":", codret_partiel[1] + UTMESS("F", self.nom_macro, "Impossible de tuer le fichier "+nomfic) +# + fichier = open (nomfic,"w") + self.fichier = fichier +# + return fichier, nomfic +# ------------------------------------------------------------------------------ + def ecrire_ligne_configuration_0 (self, commentaire) : + """Ecrit une ligne de commentaires du fichier de configuration + Arguments : + . commentaire : le commentaire à écrire + """ +# + ligne = "#\n" + ligne = ligne + "# " + commentaire + "\n" + ligne = ligne + "#\n" + self.fichier.write(ligne) +# + return +# ------------------------------------------------------------------------------ + def ecrire_ligne_configuration_2 (self, motcle, valeur) : + """Ecrit une ligne du fichier de configuration dans le cas : motcle + valeur + Arguments : + . motcle : le mot-clé HOMARD à écrire + . valeur : la valeur associée + """ +# + ligne = motcle + " " + str(valeur) + "\n" + self.fichier.write(ligne) +# + return +# ------------------------------------------------------------------------------ + def ecrire_ligne_configuration_3 (self, motcle, valeur1, valeur2) : + """Ecrit une ligne du fichier de configuration dans le cas : motcle + valeur1 + valeur2 + Arguments : + . motcle : le mot-clé HOMARD à écrire + . valeur : la valeur associée + """ +# + ligne = motcle + " " + str(valeur1) + " " + str(valeur2) + "\n" + self.fichier.write(ligne) +# + return +# ------------------------------------------------------------------------------ + def ecrire_fichier_configuration (self) : + """Ecrit le fichier de configuration + """ + message_erreur = None +# + while message_erreur is None : +# +# 1. Ouverture du fichier +# + fichier, nomfic_global = self.ouvre_fichier(self.Nom_Fichier_Configuration) +# +# 2. Généralités +# + self.ecrire_ligne_configuration_0("Generalites") + self.ecrire_ligne_configuration_2("ModeHOMA", self.ModeHOMA) + self.ecrire_ligne_configuration_2("ListeStd", self.ListeStd) + self.ecrire_ligne_configuration_2("TypeBila", self.TypeBila) + self.ecrire_ligne_configuration_2("CCAssoci", "MED") + self.ecrire_ligne_configuration_2("NumeIter", self.dico_configuration["niter"]) +# +# 3. Les fichiers externes +# + self.ecrire_ligne_configuration_0("Les fichiers au format MED") + self.ecrire_ligne_configuration_2("CCNoMN__", self.CCNoMN__) + self.ecrire_ligne_configuration_2("CCMaiN__", self.dico_configuration["Fichier_ASTER_vers_HOMARD"]) + if self.mode_homard == "ADAP" : + self.ecrire_ligne_configuration_2("CCNoMNP1", self.CCNoMNP1) + self.ecrire_ligne_configuration_2("CCMaiNP1", self.dico_configuration["Fichier_HOMARD_vers_ASTER"]) +# + self.ecrire_ligne_configuration_0("Les fichiers de bilan") + self.ecrire_ligne_configuration_2("PPBasFic", "info") +# +# 4. Les fichiers HOMARD +# + self.ecrire_ligne_configuration_0("Les fichiers au format HOMARD") + if self.mode_homard == "ADAP" : + self.ecrire_ligne_configuration_3("HOMaiN__", "M_"+self.str_niter , self.fic_homard_niter ) + self.ecrire_ligne_configuration_3("HOMaiNP1", "M_"+self.str_niterp1, self.fic_homard_niterp1) + aux = "oui" + else : + aux = "non" + self.ecrire_ligne_configuration_2("EcriFiHO", aux) +# +# 5. Le pilotage de l'adaptation +# + if self.mode_homard == "ADAP" : + self.ecrire_ligne_configuration_0("Le pilotage de l'adaptation") +# +# 5.1. Type d'adaptation +# + self.ecrire_ligne_configuration_2("TypeRaff", self.TypeRaff) + if self.critere_raffinement is not None : + self.ecrire_ligne_configuration_2(self.critere_raffinement[0], self.critere_raffinement[1]) + self.ecrire_ligne_configuration_2("TypeDera", self.TypeDera) + if self.critere_deraffinement is not None : + self.ecrire_ligne_configuration_2(self.critere_deraffinement[0], self.critere_deraffinement[1]) +# +# 5.2. L'eventuel indicateur d'erreur +# + if self.dico_configuration.has_key("Indicateur") : +# + self.ecrire_ligne_configuration_0("L'indicateur d'erreur") + self.ecrire_ligne_configuration_2("CCIndica", self.dico_configuration["Fichier_ASTER_vers_HOMARD"]) + self.ecrire_ligne_configuration_2("CCNoChaI", self.dico_configuration["Indicateur"]["NOM_MED"]) + self.ecrire_ligne_configuration_2("CCCoChaI", self.dico_configuration["Indicateur"]["COMPOSANTE"]) + if self.dico_configuration["Indicateur"].has_key("NUME_ORDRE") : + self.ecrire_ligne_configuration_2("CCNumOrI", self.dico_configuration["Indicateur"]["NUME_ORDRE"]) + self.ecrire_ligne_configuration_2("CCNumPTI", self.dico_configuration["Indicateur"]["NUME_ORDRE"]) +# +# 5.3. Les niveaux extremes +# + for aux in self.niveau : + self.ecrire_ligne_configuration_2(aux[0], aux[1]) +# +# 6. Les éventuelles zones de raffinement +# + if self.dico_configuration.has_key("Zones") : + iaux = 0 + for zone in self.dico_configuration["Zones"] : + iaux = iaux + 1 + self.ecrire_ligne_configuration_0("Zone de raffinement numéro "+str(iaux)) + if zone.has_key("X_MINI") : + self.ecrire_ligne_configuration_3("ZoRaXmin", iaux, zone["X_MINI"]) + self.ecrire_ligne_configuration_3("ZoRaXmax", iaux, zone["X_MAXI"]) + self.ecrire_ligne_configuration_3("ZoRaYmin", iaux, zone["Y_MINI"]) + self.ecrire_ligne_configuration_3("ZoRaYmax", iaux, zone["Y_MAXI"]) + if zone.has_key("Z_MINI") : + self.ecrire_ligne_configuration_3("ZoRaZmin", iaux, zone["Z_MINI"]) + self.ecrire_ligne_configuration_3("ZoRaZmax", iaux, zone["Z_MAXI"]) + if zone.has_key("X_CENTRE") : + self.ecrire_ligne_configuration_3("ZoRaXCen", iaux, zone["X_CENTRE"]) + self.ecrire_ligne_configuration_3("ZoRaYCen", iaux, zone["Y_CENTRE"]) + self.ecrire_ligne_configuration_3("ZoRaRayo", iaux, zone["RAYON"]) + if zone.has_key("Z_CENTRE") : + self.ecrire_ligne_configuration_3("ZoRaZCen", iaux, zone["Z_CENTRE"]) +# +# 7. Les éventuels champs à mettre à jour +# + if self.dico_configuration.has_key("Champs") : + self.ecrire_ligne_configuration_0("Champs à mettre à jour") + self.ecrire_ligne_configuration_2("CCSolN__", self.dico_configuration["Fichier_ASTER_vers_HOMARD"]) + self.ecrire_ligne_configuration_2("CCSolNP1", self.dico_configuration["Fichier_HOMARD_vers_ASTER"]) + iaux = 0 + for maj_champ in self.dico_configuration["Champs"] : + iaux = iaux + 1 + self.ecrire_ligne_configuration_0("Mise à jour du champ numéro "+str(iaux)) + self.ecrire_ligne_configuration_3("CCChaNom", iaux, maj_champ["NOM_MED"]) + if maj_champ.has_key("NUME_ORDRE") : + self.ecrire_ligne_configuration_3("CCChaNuO", iaux, maj_champ["NUME_ORDRE"]) + self.ecrire_ligne_configuration_3("CCChaPdT", iaux, maj_champ["NUME_ORDRE"]) + elif maj_champ.has_key("INST") : + self.ecrire_ligne_configuration_3("CCChaIns", iaux, maj_champ["INST"]) +# +# 8. L'éventuel maillage de frontière +# + if self.dico_configuration.has_key("NOM_MED_MAILLAGE_FRONTIERE") : + self.ecrire_ligne_configuration_0("Maillage de frontière") + self.ecrire_ligne_configuration_2("SuivFron", "oui") + self.ecrire_ligne_configuration_2("CCFronti", self.dico_configuration["Fichier_ASTER_vers_HOMARD"]) + self.ecrire_ligne_configuration_2("CCNoMFro", self.dico_configuration["NOM_MED_MAILLAGE_FRONTIERE"]) + if self.mots_cles.has_key("GROUP_MA") : + if self.mots_cles["GROUP_MA"] is not None : + for group_ma in self.mots_cles["GROUP_MA"] : + self.ecrire_ligne_configuration_2("CCGroFro", group_ma) +# +# 9. L'usage des éléments incompatibles avec HOMARD +# + if self.elements_incompatibles is not None : + self.ecrire_ligne_configuration_0("Les éléments incompatibles avec HOMARD") + self.ecrire_ligne_configuration_2("TypeElem", self.elements_incompatibles) +# +# 10. Options particulières +# + self.ecrire_ligne_configuration_0("Autres options") + if self.mots_cles.has_key("LANGUE") : + self.ecrire_ligne_configuration_2("Langue", self.mots_cles["LANGUE"]) + self.ecrire_ligne_configuration_2("MessInfo", self.dico_configuration["INFO"]) + if self.dico_configuration["version_perso"] : + VERSION_HOMARD = self.dico_configuration["VERSION_HOMARD"] + self.ecrire_ligne_configuration_2("DicoOSGM", "$HOMARD_USER/"+VERSION_HOMARD+"/CONFIG/typobj.stu") +# +# 11. Fermeture du fichier +# + fichier.close() + break +# + if message_erreur is not None : + message_erreur = "Ecriture de "+nomfic_global+". "+message_erreur + UTMESS("F", self.nom_macro, message_erreur) +# + return +# ------------------------------------------------------------------------------ + def ecrire_fichier_donnees (self) : + """Ecrit le fichier des donnees dans le cas d'une demande d'information + """ + message_erreur = None +# + while message_erreur is None : +# +# 1. Ouverture du fichier +# + fichier, nomfic_global = self.ouvre_fichier(self.Nom_Fichier_Donnees) +# +# 2. On ne demande rien pour le moment +# + fichier.write("0\n") + fichier.write("0\n") + fichier.write("0\n") + fichier.write("q\n") +# +# n. Fermeture du fichier +# + fichier.close() + break +# + if message_erreur is not None : + UTMESS("F", self.nom_macro, message_erreur) +# + return nomfic_global diff --git a/Aster/Cata/cataSTA8/Macro/defi_cable_bp_ops.py b/Aster/Cata/cataSTA8/Macro/defi_cable_bp_ops.py index 3d234d76..552fe5e0 100644 --- a/Aster/Cata/cataSTA8/Macro/defi_cable_bp_ops.py +++ b/Aster/Cata/cataSTA8/Macro/defi_cable_bp_ops.py @@ -1,4 +1,4 @@ -#@ MODIF defi_cable_bp_ops Macro DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +#@ MODIF defi_cable_bp_ops Macro DATE 05/09/2005 AUTEUR DURAND C.DURAND # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -55,6 +55,7 @@ def defi_cable_bp_ops(self,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM,GROUP_MA_BETON, """ from Accas import _F import aster,string + from Utilitai.Utmess import UTMESS ier=0 # On importe les definitions des commandes a utiliser dans la macro @@ -96,17 +97,15 @@ def defi_cable_bp_ops(self,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM,GROUP_MA_BETON, __MAIL = aster.getvectjev( string.ljust(MODELE.nom,8) + '.MODELE .NOMA ' ) if string.ljust(MAILLAGE.nom,8) != __MAIL[0] : - self.DeclareOut(MAILLAGE.nom,maillage) - print ' ' - print ' # ---------------------------------------------------------------------------' - print ' # DEFI_CABLE_BP - Erreur : LE CONCEPT MAILLAGE RENSEIGNE NE CORRESPOND' - print ' # PAS A CELUI UTILISE DANS LE MODELE !' - print ' # ',MAILLAGE.nom,' - ',__MAIL[0] - print ' # ---------------------------------------------------------------------------' - print ' ' - ier=ier+1 - self.cr.fatal(""" Erreur dans la macro""") - return ier + echo_mess=[] + echo_mess.append( ' \n' ) + echo_mess.append( ' # ---------------------------------------------------------------------------\n' ) + echo_mess.append( ' # DEFI_CABLE_BP - Erreur : LE CONCEPT MAILLAGE RENSEIGNE NE CORRESPOND \n' ) + echo_mess.append( ' # PAS A CELUI UTILISE DANS LE MODELE ! \n' ) + echo_mess.append( ' # '+MAILLAGE.nom+' - '+__MAIL[0]+'\n' ) + echo_mess.append( ' # ---------------------------------------------------------------------------\n' ) + message=string.join(echo_mess) + UTMESS('F',message) # DEFINITION DU NOM DES GROUP_NO @@ -153,14 +152,13 @@ def defi_cable_bp_ops(self,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM,GROUP_MA_BETON, __CAB = i['GROUP_MA'] motscle2= {'CREA_GROUP_NO': [{'LONGUEUR': LONGUEUR, 'RAYON': RAYON, 'OPTION': 'TUNNEL', 'GROUP_MA': [ GROUP_MA_BETON, __CAB ], 'GROUP_MA_AXE': __CAB, 'NOM': __NOM1}]} if i.has_key('MAILLE') == 1: - print ' ' - print ' # ---------------------------------------------------------------------------' - print ' # DEFI_CABLE_BP - Erreur : MAILLE INTERDIT - UTILISER GROUP_MA' - print ' # ---------------------------------------------------------------------------' - print ' ' - ier=ier+1 - self.cr.fatal(""" Erreur dans la macro""") - return ier + echo_mess=[] + echo_mess.append( ' \n' ) + echo_mess.append( ' # ---------------------------------------------------------------------------\n' ) + echo_mess.append( ' # DEFI_CABLE_BP - Erreur : MAILLE INTERDIT - UTILISER GROUP_MA \n' ) + echo_mess.append( ' # ---------------------------------------------------------------------------\n' ) + message=string.join(echo_mess) + UTMESS('F',message) if i.has_key('GROUP_NO_ANCRAGE') == 1: __PC1 = i['GROUP_NO_ANCRAGE'][0] motscle2['CREA_GROUP_NO'][0]['GROUP_NO_ORIG'] = __PC1 @@ -189,14 +187,13 @@ def defi_cable_bp_ops(self,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM,GROUP_MA_BETON, __CAB = i['GROUP_MA'] motscle2= {'CREA_GROUP_NO': [{'LONGUEUR': LONGUEUR, 'RAYON': RAYON, 'OPTION': 'TUNNEL', 'GROUP_MA': [ GROUP_MA_BETON, __CAB ], 'GROUP_MA_AXE': __CAB, 'NOM': __NOM2}]} if i.has_key('MAILLE') == 1: - print ' ' - print ' # ---------------------------------------------------------------------------' - print ' # DEFI_CABLE_BP - Erreur : MAILLE INTERDIT - UTILISER GROUP_MA' - print ' # ---------------------------------------------------------------------------' - print ' ' - ier=ier+1 - self.cr.fatal(""" Erreur dans la macro""") - return ier + echo_mess=[] + echo_mess.append( ' \n' ) + echo_mess.append( ' # ---------------------------------------------------------------------------\n' ) + echo_mess.append( ' # DEFI_CABLE_BP - Erreur : MAILLE INTERDIT - UTILISER GROUP_MA \n' ) + echo_mess.append( ' # ---------------------------------------------------------------------------\n' ) + message=string.join(echo_mess) + UTMESS('F',message) if i.has_key('GROUP_NO_ANCRAGE') == 1: __PC1 = i['GROUP_NO_ANCRAGE'][1] motscle2['CREA_GROUP_NO'][0]['GROUP_NO_ORIG'] = __PC1 diff --git a/Aster/Cata/cataSTA8/Macro/defi_part_feti_ops.py b/Aster/Cata/cataSTA8/Macro/defi_part_feti_ops.py index bf46f881..9e446613 100644 --- a/Aster/Cata/cataSTA8/Macro/defi_part_feti_ops.py +++ b/Aster/Cata/cataSTA8/Macro/defi_part_feti_ops.py @@ -1,4 +1,4 @@ -#@ MODIF defi_part_feti_ops Macro DATE 23/11/2004 AUTEUR ASSIRE A.ASSIRE +#@ MODIF defi_part_feti_ops Macro DATE 30/08/2005 AUTEUR ASSIRE A.ASSIRE # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -34,32 +34,51 @@ # INFO 1,2 # # =========================================================================== -# script PYTHON : appel a Metis et lancement de DEFI_PART_OPS +# script PYTHON : lancement de DEFI_PART_PA_OPS et de DEFI_PART_OPS -def defi_part_feti_ops(self,MAILLAGE,MODELE,NB_PART,EXCIT,METHODE,NOM_GROUP_MA,INFO,**args): +def defi_part_feti_ops(self,NB_PART,METHODE,TRAITER_BORDS,NOM_GROUP_MA,CORRECTION_CONNEX,INFO,**args): import aster, string, sys from Accas import _F from Noyau.N_utils import AsType - + from Utilitai import partition # DEBUT DE LA MACRO + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) ier=0 - - INCLUSE='NON' # On cree des GROUP_MA pour les mailles de bords (pour developpeur) - + + # On importe les definitions des commandes a utiliser dans la macro + DEFI_PART_OPS = self.get_cmd('DEFI_PART_OPS') + INFO_EXEC_ASTER = self.get_cmd('INFO_EXEC_ASTER') + DEFI_FICHIER = self.get_cmd('DEFI_FICHIER') + DETRUIRE = self.get_cmd('DETRUIRE') + DEFI_PART_PA_OPS = self.get_cmd('DEFI_PART_PA_OPS') + + nompro='DEFI_PART_FETI' + + # Maillage + if args.has_key('MODELE'): + if args['MODELE'] != None: + __MOD = string.ljust(args['MODELE'].nom,8) + __MOD =__MOD+'.MODELE .NOMA ' + __LMAIL = aster.getvectjev(__MOD) + __MAIL = string.strip(__LMAIL[0]) + MAILLAGE=self.get_sd_avant_etape(__MAIL,self) + else: + MAILLAGE=args['MAILLAGE'] + # Nom des GROUP_MA générés NOM_GROUP_MA = string.strip(NOM_GROUP_MA) - NOM_GROUP_MA_BORD = '_' + NOM_GROUP_MA # Test sur le nombre de caractères de NOM_GROUP_MA if ( len(NOM_GROUP_MA)+len(str(NB_PART)) > 7 ): - print '\n\n ERREUR : Afin de pouvoir générer les GROUP_MA, réduisez le nombre \n de caractères de NOM_GROUP_MA à un maximum de :', 7-len(str(NB_PART)) - print '\n\n' - sys.exit(1) + ln=7-len(str(NB_PART)) + UTMESS('F', nompro, 'Afin de pouvoir générer les GROUP_MA, réduisez le nombre '\ + 'de caractères de NOM_GROUP_MA à un maximum de : %i' %ln) # Verification que des GROUP_MA ne portent pas deja les memes noms _lst = [] @@ -67,116 +86,109 @@ def defi_part_feti_ops(self,MAILLAGE,MODELE,NB_PART,EXCIT,METHODE,NOM_GROUP_MA,I _lst.append( string.strip(i[0]) ) for i in range(NB_PART): if ( NOM_GROUP_MA+str(i) in _lst ): - print '\n\n ERREUR : Il existe déjà un GROUP_MA nommé : ', NOM_GROUP_MA+str(i) - print '\n\n' - sys.exit(1) - if ( NOM_GROUP_MA_BORD+str(i) in _lst ): - print '\n\n ERREUR : Il existe déjà un GROUP_MA nommé : ', NOM_GROUP_MA_BORD+str(i) - print '\n\n' - sys.exit(1) - - # Executable du partitionneur - if METHODE=="AUTRE": - exe_metis = arg['LOGICIEL'] - else: - exe_metis = aster.repout() + string.lower(METHODE) - - # On importe les definitions des commandes a utiliser dans la macro - DEFI_PART_OPS = self.get_cmd('DEFI_PART_OPS') - INFO_EXEC_ASTER = self.get_cmd('INFO_EXEC_ASTER') - DEFI_FICHIER = self.get_cmd('DEFI_FICHIER') - DETRUIRE = self.get_cmd('DETRUIRE') - - # La macro compte pour 1 dans la numerotation des commandes - self.icmd=1 + ngrma=NOM_GROUP_MA+str(i) + UTMESS('F', nompro, "Il existe déjà un GROUP_MA nommé : %s" %ngrma) + if args.has_key('NOM_GROUP_MA_BORD') : + if args['NOM_GROUP_MA_BORD'] != None : + if ( args['NOM_GROUP_MA_BORD']+str(i) in _lst ): + ngrma=args['NOM_GROUP_MA_BORD']+str(i) + UTMESS('F', nompro, "Il existe déjà un GROUP_MA nommé : %s" %ngrma) # Le concept sortant dans le contexte de la macro self.DeclareOut('_SDFETI',self.sd) # Debut : - print """ - - # --------------------------------------------------------------------------- - # MACRO-COMMANDE : DEFI_PART_FETI - # ---------------- -""" - - # Objet Partition - _part = partition.PARTITION(jdc=self); - - # Recuperation de deux UL libres - _UL=INFO_EXEC_ASTER(LISTE_INFO='UNITE_LIBRE') - ul1=_UL['UNITE_LIBRE',1] - DETRUIRE(CONCEPT=(_F(NOM=_UL),), INFO=1) - DEFI_FICHIER(UNITE=ul1) - _UL=INFO_EXEC_ASTER(LISTE_INFO='UNITE_LIBRE') - ul2=_UL['UNITE_LIBRE',1] - DEFI_FICHIER(ACTION='LIBERER',UNITE=ul1) - - fichier_in = 'fort.' + str(ul1) - fichier_out = 'fort.' + str(ul2) - - # Options de la classe Partition - _part.OPTIONS['exe_metis'] = exe_metis - _part.OPTIONS['fichier_in'] = fichier_in - _part.OPTIONS['fichier_out'] = fichier_out + # Regeneration des mots-cles GROUPAGE passés en argument de la macro + motscle1= {} + if args.has_key('GROUPAGE'): + if args['GROUPAGE'] != None : + dGroup=[] + for j in args['GROUPAGE']: + dGroup.append(j.cree_dict_valeurs(j.mc_liste)) + for i in dGroup[-1].keys(): + if dGroup[-1][i]==None : del dGroup[-1][i] + motscle1['GROUPAGE']=dGroup + + # Regeneration des mots-cles POIDS_MAILLES passés en argument de la macro + if args.has_key('POIDS_MAILLES'): + if args['POIDS_MAILLES'] != None : + dEval=[] + for j in args['POIDS_MAILLES']: + dEval.append(j.cree_dict_valeurs(j.mc_liste)) + for i in dEval[-1].keys(): + if dEval[-1][i]==None : del dEval[-1][i] + motscle1['POIDS_MAILLES']=dEval + + # Y a t'il présence du mot clé : NOM_GROUP_MA_BORD + if args.has_key('GROUP_MA_BORD'): + if args['GROUP_MA_BORD'] != None : + motscle1['GROUP_MA_BORD']=args['GROUP_MA_BORD'] + + # Y a t'il présence du mot clé : LOGICIEL + if args.has_key('LOGICIEL'): + if args['LOGICIEL'] != None : + motscle1['LOGICIEL']=args['LOGICIEL'] + + # Y a t'il présence du mot clé : MODELE + if args.has_key('MODELE'): + if args['MODELE'] != None : + motscle1['MODELE']=args['MODELE'] # Partitionnement - if MODELE: - _part.Partitionne_Aster( - MAILLAGE = MAILLAGE, - MODELE = MODELE, - NB_PART = NB_PART, - INFO = INFO, - ); - - elif MAILLAGE: - _part.Partitionne_Aster( - MAILLAGE = MAILLAGE, - NB_PART = NB_PART, - INFO = INFO, - ); - - - # Creation des group_ma dans le maillage Aster - _part.Creation_Group_ma_Aster_par_SD(NOM=NOM_GROUP_MA, NOM2=NOM_GROUP_MA_BORD, INCLUSE=INCLUSE) - + _SDFETI=DEFI_PART_PA_OPS( + MAILLAGE=MAILLAGE, + INFO=INFO, + METHODE=METHODE, + NB_PART=NB_PART, + CORRECTION_CONNEX=CORRECTION_CONNEX, + TRAITER_BORDS=TRAITER_BORDS, + NOM_GROUP_MA=NOM_GROUP_MA, + **motscle1 + ); + + # Liste des groupes de mailles du maillage + _LST_GMA = MAILLAGE.LIST_GROUP_MA() + _LST_GMA = map(lambda x: x[0], _LST_GMA) # Creation de la SDFETI - if MODELE: - _tmp = [] - for i in range(NB_PART): - txt = { 'GROUP_MA': NOM_GROUP_MA + str(i) } - if ( NOM_GROUP_MA_BORD+str(i) in _part.ASTER['GROUP_MA_BORD'] ): - txt['GROUP_MA_BORD'] = NOM_GROUP_MA_BORD + str(i) - _tmp.append( txt ) + if args.has_key('MODELE'): + if args['MODELE'] != None : + _tmp = [] + for i in range(NB_PART): + txt = { 'GROUP_MA': NOM_GROUP_MA + str(i) } + _tmp.append( txt ) + + if args.has_key('NOM_GROUP_MA_BORD') : + if args['NOM_GROUP_MA_BORD'] != None : + if ( args['NOM_GROUP_MA_BORD']+str(i) in _LST_GMA ): + txt['GROUP_MA_BORD'] = string.strip(args['NOM_GROUP_MA_BORD']) + str(i) + _tmp.append( txt ) + + motscle2= {'DEFI': _tmp } - motscle2= {'DEFI': _tmp } + # Regeneration des mots-cles EXCIT passés en argument de la macro + if args.has_key('EXCIT'): + if args['EXCIT'] != None : + dExcit=[] + for j in args['EXCIT']: + dExcit.append(j.cree_dict_valeurs(j.mc_liste)) + for i in dExcit[-1].keys(): + if dExcit[-1][i]==None : del dExcit[-1][i] + motscle2['EXCIT']=dExcit - # Regeneration des mots-cles EXCIT passés en argument de la macro - if EXCIT: - dExcit=[] - for j in EXCIT : - dExcit.append(j.cree_dict_valeurs(j.mc_liste)) - for i in dExcit[-1].keys(): - if dExcit[-1][i]==None : del dExcit[-1][i] - motscle2['EXCIT']=dExcit + _SDFETI=DEFI_PART_OPS(NOM='SDD', + MODELE=args['MODELE'], + INFO=1, + **motscle2 + ); + else: + _SDFETI=None - _SDFETI=DEFI_PART_OPS(NOM='SDD', - MODELE=MODELE, - INFO=1, - **motscle2 - ); else: _SDFETI=None # Fin : - print """ - - % FIN MACRO-COMMANDE: DEFI_PART_FETI - -""" return ier diff --git a/Aster/Cata/cataSTA8/Macro/fiabilite_mefisto.py b/Aster/Cata/cataSTA8/Macro/fiabilite_mefisto.py index 3f820843..b74d7e54 100644 --- a/Aster/Cata/cataSTA8/Macro/fiabilite_mefisto.py +++ b/Aster/Cata/cataSTA8/Macro/fiabilite_mefisto.py @@ -1,4 +1,4 @@ -#@ MODIF fiabilite_mefisto Macro DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +#@ MODIF fiabilite_mefisto Macro DATE 04/10/2005 AUTEUR REZETTE C.REZETTE # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -47,6 +47,8 @@ def fiabilite_mefisto ( self, Rep_Calc_LOGICIEL_global, from Macro import fiabilite_fichier import os import string + import Numeric + from Utilitai.Utmess import UTMESS # #____________________________________________________________________ # @@ -232,11 +234,22 @@ def fiabilite_mefisto ( self, Rep_Calc_LOGICIEL_global, f_stoch.Ecrit_Valeurs ( aux ) # f_stoch.Ecrit_Titre ("Correlation matrix fictive") - for m in range(nb_occu_variable) : - aux = [ ] - for n in range(nb_occu_variable) : - aux.append(args["MATRICE"][n + m*nb_occu_variable]) - f_stoch.Ecrit_Valeurs ( aux ) +# if args.has_key('MATRICE'): + if args["MATRICE"] != None: + if len(args["MATRICE"]) != nb_occu_variable**2: + UTMESS('F','FIABILITE_MEPHISTO',' LE NOMBRE D ELEMENTS' + +' DU MOT CLE MATRICE DOIT ETRE EGAL A : ' + +str(nb_occu_variable**2)) + for m in range(nb_occu_variable) : + aux = [ ] + for n in range(nb_occu_variable) : + aux.append(args["MATRICE"][n + m*nb_occu_variable]) + f_stoch.Ecrit_Valeurs ( aux ) + else: + aux=Numeric.identity(nb_occu_variable) + aux=Numeric.concatenate(aux) + aux=aux.tolist() + f_stoch.Ecrit_Valeurs ( aux ) # f_stoch.Ecrit_Titre ("Parameter threshold value") if SEUIL_TYPE == "MAXIMUM" : diff --git a/Aster/Cata/cataSTA8/Macro/gene_vari_alea_ops.py b/Aster/Cata/cataSTA8/Macro/gene_vari_alea_ops.py new file mode 100644 index 00000000..829a93e7 --- /dev/null +++ b/Aster/Cata/cataSTA8/Macro/gene_vari_alea_ops.py @@ -0,0 +1,109 @@ +#@ MODIF gene_vari_alea_ops Macro DATE 28/02/2006 AUTEUR VABHHTS J.PELLET +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +from math import sqrt,log,exp,pi,atan2,tan + +def gene_vari_alea_ops(self,**args): + self.set_icmd(1) + return 0 + +def gene_vari_alea_init(self,d): + from Utilitai.Utmess import UTMESS + a =self.etape['BORNE_INF'] + moyen =self.etape['VALE_MOY' ] + TYPE =self.etape['TYPE'] + if self['INIT_ALEA']!=None : + jump =self.etape['INIT_ALEA' ] + self.iniran(jump) + if TYPE=='EXP_TRONQUEE' : + b =self.etape['BORNE_SUP'] + if (a>=b) : + message=' : il faut BORNE_INF < BORNE_SUP \n' + message=message+' BORNE_INF = '+str(a)+'\n' + message=message+' BORNE_SUP = '+str(b)+'\n' + UTMESS('F','GENE_VARI_ALEA',message) + elif (moyen<=a)or(moyen>=b) : + message=' : VALE_MOY trop grand ou trop petit\n' + message=message+' BORNE_INF = '+str(a)+'\n' + message=message+' VALE_MOY = '+str(moyen)+'\n' + message=message+' BORNE_SUP = '+str(b)+'\n' + UTMESS('F','GENE_VARI_ALEA',message) + k=1./(moyen-a) + if (exp(-b*k)<1.E-12) : + message=' : BORNE SUP très grande \n' + message=message+'pb précision possible, vérifiez'+'\n' + message=message+'la distribution des valeurs générées \n' + UTMESS('F','GENE_VARI_ALEA',message) + # résolution par point fixe + eps =1.E-4 + nitmax=100000 + test =0. + while abs((test-k)/k)>eps : + test = k + k = 1./(moyen-(a*exp(-a*k) - b*exp(-b*k))/(exp(-a*k) - exp(-b*k))) + # génération de la variable aléatoire + alpha = exp(-a*k) - exp(-b*k) + self.sd.valeur=-( log(exp(-a*k)-alpha*self.getran()[0] ) ) /k + elif TYPE=='EXPONENTIELLE' : + if (moyen<=a) : + message=' : on doit avoir : VALE_MOY > BORNE_INF \n' + message=message+' VALE_MOY = '+str(moyen)+'\n' + message=message+' BORNE_INF = '+str(a)+'\n' + UTMESS('F','GENE_VARI_ALEA',message) + v = moyen-a + u=self.getran()[0] + x = -log(1-u) + self.sd.valeur=a + v*x + elif TYPE=='GAMMA' : + delta =self.etape['COEF_VAR' ] + if (moyen<=a) : + message=' : on doit avoir : VALE_MOY > BORNE_INF \n' + message=message+' VALE_MOY = '+str(moyen)+'\n' + message=message+' BORNE_INF = '+str(a)+'\n' + UTMESS('F','GENE_VARI_ALEA',message) + v = moyen-a + alpha = 1./(delta**2) + if (alpha<=1.) : + message=' : erreur : ALPHA < 1\n' + UTMESS('F','GENE_VARI_ALEA',message) + gamma2 = alpha-1. + gamm1 = 1./gamma2 + beta = sqrt(2.*alpha-1.) + beta2 = 1./(beta**2) + f0 = 0.5+(1./pi)*atan2(-gamma2/beta,1.) + c1 = 1.-f0 + c2 = f0-0.5 + vref = 0. + vv = -1. +# + while (-vv>vref) : + u=self.getran()[0] + gamdev = beta*tan(pi*(u*c1+c2))+gamma2 + unif=self.getran()[0] + if unif<0. : + message=' : erreur : unif < 0\n' + UTMESS('F','GENE_VARI_ALEA',message) + vv= -log(unif) + vref = log(1+beta2*((gamdev-gamma2)**2))+gamma2*log(gamdev*gamm1)-gamdev+gamma2 +# + if vv<=0. : + message=' : erreur : GAMDEV(ALPHA) < 0\n' + UTMESS('F','GENE_VARI_ALEA',message) + self.sd.valeur = a + v*(delta**2)*gamdev diff --git a/Aster/Cata/cataSTA8/Macro/impr_fonction_ops.py b/Aster/Cata/cataSTA8/Macro/impr_fonction_ops.py index 1e9d6e49..dd50f8eb 100644 --- a/Aster/Cata/cataSTA8/Macro/impr_fonction_ops.py +++ b/Aster/Cata/cataSTA8/Macro/impr_fonction_ops.py @@ -1,4 +1,4 @@ -#@ MODIF impr_fonction_ops Macro DATE 11/05/2005 AUTEUR MCOURTOI M.COURTOIS +#@ MODIF impr_fonction_ops Macro DATE 02/05/2006 AUTEUR MCOURTOI M.COURTOIS # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -30,8 +30,10 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args): Erreurs dans IMPR_FONCTION pour ne pas perdre la base. """ macro='IMPR_FONCTION' + import pprint import aster from Accas import _F + from Cata.cata import nappe_sdaster, fonction_c from Utilitai import Graph from Utilitai.Utmess import UTMESS from Utilitai.UniteAster import UniteAster @@ -53,11 +55,11 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args): # 0.1. Fichier nomfich=None - if args['UNITE'] and args['UNITE']<>6: + if args['UNITE'] and args['UNITE']!=6: nomfich=UL.Nom(args['UNITE']) if INFO==2: - print ' Nom du fichier :',nomfich - if nomfich and os.path.exists(nomfich) and os.stat(nomfich).st_size<>0: + aster.affiche('MESSAGE', ' Nom du fichier :'+nomfich) + if nomfich and os.path.exists(nomfich) and os.stat(nomfich).st_size!=0: if FORMAT=='XMGRACE': niv='A' else: @@ -81,7 +83,7 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args): if dC[mc]==None: del dC[mc] Courbe.append(dC) if INFO==2: - print ' Nombre de fonctions à analyser : ',len(Courbe) + aster.affiche('MESSAGE',' Nombre de fonctions à analyser : '+str(len(Courbe))) # 0.3. Devra-t-on interpoler globalement ? # Dans ce cas, linter__ est le LIST_PARA @@ -97,12 +99,11 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args): for typi in unparmi: if dCi.has_key(typi): obj=dCi[typi] - typ=obj.__class__.__name__ break if obj==None: UTMESS('S',macro,'incohérence entre le catalogue et la macro.') if typi=='FONCTION': - if typ=='nappe_sdaster': + if isinstance(obj, nappe_sdaster): lpar,lval=obj.Valeurs() linterp=lval[0][0] else: @@ -113,7 +114,8 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args): linterp=obj linter__=DEFI_LIST_REEL(VALE=linterp) if INFO==2: - print ' Interpolation globale sur la liste :\n',linter__.Valeurs() + aster.affiche('MESSAGE', ' Interpolation globale sur la liste :') + aster.affiche('MESSAGE', pprint.pformat(linter__.Valeurs())) #---------------------------------------------- @@ -130,7 +132,6 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args): for typi in unparmi: if dCi.has_key(typi): obj=dCi[typi] - typ=obj.__class__.__name__ break if not dCi.has_key('LEGENDE') and hasattr(obj,'get_name'): dCi['LEGENDE']=obj.get_name() @@ -141,7 +142,7 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args): # 1.2.1. Mot-clé FONCTION if typi=='FONCTION': - if typ=='nappe_sdaster': + if isinstance(obj, nappe_sdaster): lpar,lval=obj.Valeurs() dico,ldicf=obj.Parametres() Leg=dCi['LEGENDE'] @@ -200,10 +201,10 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args): lval=list(ftmp__.Valeurs()) lx=lval[0] lr=lval[1] - if typ=='fonction_c' and dCi.has_key('PARTIE'): - if dCi['PARTIE']=='IMAG' : lr=lval[2] + if isinstance(obj, fonction_c) and dCi.get('PARTIE') == 'IMAG': + lr=lval[2] # on stocke les données dans le Graph - if typ=='fonction_c' and not dCi.has_key('PARTIE'): + if isinstance(obj, fonction_c) and not dCi.has_key('PARTIE'): nomresu=dpar['NOM_RESU'].strip()+'_'+str(len(graph.Legendes)) dicC={ 'Val' : lval, @@ -226,7 +227,7 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args): et à la première occurence de COURBE""") lx=dCi['LIST_PARA'].Valeurs() lr=obj.Valeurs() - if len(lx)<>len(lr): + if len(lx)!=len(lr): UTMESS('S',macro,"LIST_PARA et LIST_RESU n'ont pas la meme taille") # on stocke les données dans le Graph dicC={ @@ -242,7 +243,7 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args): elif typi=='FONC_X': ob2=dCi['FONC_Y'] # peut-on blinder au niveau du catalogue - if typ=="nappe_sdaster" or ob2.__class__.__name__=="nappe_sdaster": + if isinstance(obj, nappe_sdaster) or isinstance(ob2, nappe_sdaster): UTMESS('S',macro,"FONC_X/FONC_Y ne peuvent pas etre des nappes !") if interp and iocc>0: UTMESS('S',macro,"""Au format 'TABLEAU' ,FONC_X/FONC_Y ne peut apparaitre qu'une seule fois @@ -308,7 +309,7 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args): et à la première occurence de COURBE""") lx=obj lr=dCi['ORDONNEE'] - if len(lx)<>len(lr): + if len(lx)!=len(lr): UTMESS('S',macro,"ABSCISSE et ORDONNEE n'ont pas la meme taille") # on stocke les données dans le Graph dicC={ @@ -326,9 +327,10 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args): # 1.3. dbg if INFO==2: - print '\n'+'-'*70+'\n Contenu du Graph : \n'+'-'*70 - print graph - print '-'*70+'\n' + message='\n'+'-'*70+'\n Contenu du Graph : \n'+'-'*70+'\n' + message=message+graph.__repr__() + message=message+'-'*70+'\n' + aster.affiche('MESSAGE',message) #---------------------------------------------- # 2. Impression du 'tableau' de valeurs @@ -336,21 +338,21 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args): # 2.0. Surcharge des propriétés du graphique et des axes # (bloc quasiment identique dans Table) - if args['TITRE']<>None: graph.Titre=args['TITRE'] - if args['SOUS_TITRE']<>None: graph.SousTitre=args['SOUS_TITRE'] + if args['TITRE']!=None: graph.Titre=args['TITRE'] + if args['SOUS_TITRE']!=None: graph.SousTitre=args['SOUS_TITRE'] if FORMAT in ('XMGRACE','AGRAF'): - if args['BORNE_X']<>None: + if args['BORNE_X']!=None: graph.Min_X=args['BORNE_X'][0] graph.Max_X=args['BORNE_X'][1] - if args['BORNE_Y']<>None: + if args['BORNE_Y']!=None: graph.Min_Y=args['BORNE_Y'][0] graph.Max_Y=args['BORNE_Y'][1] - if args['LEGENDE_X']<>None: graph.Legende_X=args['LEGENDE_X'] - if args['LEGENDE_Y']<>None: graph.Legende_Y=args['LEGENDE_Y'] - if args['ECHELLE_X']<>None: graph.Echelle_X=args['ECHELLE_X'] - if args['ECHELLE_Y']<>None: graph.Echelle_Y=args['ECHELLE_Y'] - if args['GRILLE_X']<>None: graph.Grille_X=args['GRILLE_X'] - if args['GRILLE_Y']<>None: graph.Grille_Y=args['GRILLE_Y'] + if args['LEGENDE_X']!=None: graph.Legende_X=args['LEGENDE_X'] + if args['LEGENDE_Y']!=None: graph.Legende_Y=args['LEGENDE_Y'] + if args['ECHELLE_X']!=None: graph.Echelle_X=args['ECHELLE_X'] + if args['ECHELLE_Y']!=None: graph.Echelle_Y=args['ECHELLE_Y'] + if args['GRILLE_X']!=None: graph.Grille_X=args['GRILLE_X'] + if args['GRILLE_Y']!=None: graph.Grille_Y=args['GRILLE_Y'] kargs={ 'FORMAT' : FORMAT, @@ -370,7 +372,7 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args): # 2.2. au format AGRAF elif FORMAT=='AGRAF': nomdigr=None - if args['UNITE_DIGR']<>6: + if args['UNITE_DIGR']!=6: nomdigr=UL.Nom(args['UNITE_DIGR']) kargs['FICHIER']=[nomfich, nomdigr] kargs['dform']={ 'formR' : '%12.5E' } @@ -387,7 +389,7 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args): # Traiter le cas des UL réservées if args['UNITE'] and args['UNITE'] in ul_reserve: UL.Etat(args['UNITE'], etat='F') - if FORMAT=='AGRAF' and args['UNITE_DIGR']<>args['UNITE'] \ + if FORMAT=='AGRAF' and args['UNITE_DIGR']!=args['UNITE'] \ and args['UNITE_DIGR'] in ul_reserve: UL.Etat(args['UNITE_DIGR'], etat='F') diff --git a/Aster/Cata/cataSTA8/Macro/impr_table_ops.py b/Aster/Cata/cataSTA8/Macro/impr_table_ops.py index 74776f0b..4b90940d 100644 --- a/Aster/Cata/cataSTA8/Macro/impr_table_ops.py +++ b/Aster/Cata/cataSTA8/Macro/impr_table_ops.py @@ -1,4 +1,4 @@ -#@ MODIF impr_table_ops Macro DATE 11/05/2005 AUTEUR MCOURTOI M.COURTOIS +#@ MODIF impr_table_ops Macro DATE 07/03/2006 AUTEUR MCOURTOI M.COURTOIS # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -35,10 +35,11 @@ def impr_table_ops(self, FORMAT, TABLE, INFO, **args): """ macro='IMPR_TABLE' import aster - from Accas import _F - from Cata.cata import table_jeveux - from Utilitai.Utmess import UTMESS + from Accas import _F + from Cata.cata import table_jeveux + from Utilitai.Utmess import UTMESS from Utilitai.UniteAster import UniteAster + from Utilitai.Sensibilite import NomCompose ier=0 # La macro compte pour 1 dans la numerotation des commandes self.set_icmd(1) @@ -75,30 +76,19 @@ def impr_table_ops(self, FORMAT, TABLE, INFO, **args): form_filtre='\nFILTRE -> NOM_PARA: %-16s CRIT_COMP: %-4s VALE: %s' # 0.3. Création de la liste des tables (une seule sans SENSIBILITE) - form_sens='\n... SENSIBILITE AU PARAMETRE %s' + form_sens='\n... SENSIBILITE AU PARAMETRE %s (SD COMP %s)' ltab=[] if args['SENSIBILITE']: - nmemo='&NOSENSI.MEMO.CORR'.ljust(24) - vect=aster.getvectjev(nmemo) - if vect: - lps=args['SENSIBILITE'] - if not type(lps) in EnumTypes: - lps=[lps,] - for ps in [ps.get_name() for ps in lps]: - trouv=False - for ch in vect[0:len(vect):2]: - if ch[0:8].strip()==TABLE.get_name() and ch[8:16].strip()==ps: - trouv=True - ncomp=ch[16:24].strip() - sdtab=table_jeveux(ncomp) - tabs=sdtab.EXTR_TABLE() - tabs.titr+=form_sens % ps - ltab.append([tabs, sdtab]) - if not trouv: - UTMESS('A',macro,'Dérivée de %s par rapport à %s non disponible'\ - % (TABLE.get_name(), ps)) - else: - UTMESS('A',macro,'Pas de calcul de sensibilité accessible.') + lps=args['SENSIBILITE'] + if not type(lps) in EnumTypes: + lps=[lps,] + for ps in lps: + ncomp = NomCompose(TABLE, ps) + if ncomp != None: + sdtab = table_jeveux(ncomp) + tabs = sdtab.EXTR_TABLE() + tabs.titr = TABLE.TITRE() + tabs.titr + form_sens % (ps.get_name(), ncomp) + ltab.append([tabs, sdtab]) else: ltab.append([TABLE.EXTR_TABLE(), TABLE]) @@ -109,6 +99,8 @@ def impr_table_ops(self, FORMAT, TABLE, INFO, **args): nom_para=ltab[0][0].para if args['NOM_PARA']: nom_para=args['NOM_PARA'] + if not type(nom_para) in EnumTypes: + nom_para=[nom_para,] # 0.4.2. Traiter le cas des UL réservées if args['UNITE'] and args['UNITE'] in ul_reserve: @@ -148,7 +140,14 @@ def impr_table_ops(self, FORMAT, TABLE, INFO, **args): tab.sort(CLES=dT['NOM_PARA'], ORDRE=dT['ORDRE']) # ----- 4. Impression + # vérification des paramètres + for p in nom_para: + if not p in tab.para: + UTMESS('A', 'IMPR_TABLE', 'Paramètre absent de la table : %s' % p) + + # sélection des paramètres timp=tab[nom_para] + # passage des mots-clés de mise en forme à la méthode Impr kargs=args.copy() kargs.update({ @@ -179,7 +178,14 @@ def impr_table_ops(self, FORMAT, TABLE, INFO, **args): # 4.4. regroupement par paramètre : PAGINATION if args['PAGINATION']: - kargs['PAGINATION']=args['PAGINATION'] + l_ppag=args['PAGINATION'] + if not type(l_ppag) in EnumTypes: + l_ppag=[l_ppag,] + kargs['PAGINATION'] = [p for p in l_ppag if p in nom_para] + l_para_err = [p for p in l_ppag if not p in nom_para] + if len(l_para_err)>0: + UTMESS('A', 'IMPR_TABLE', 'Paramètres absents de la table (ou de '\ + 'NOM_PARA) : %s' % ', '.join(l_para_err)) timp.Impr(**kargs) diff --git a/Aster/Cata/cataSTA8/Macro/info_fonction_ops.py b/Aster/Cata/cataSTA8/Macro/info_fonction_ops.py index b728f6a4..0554e0cd 100644 --- a/Aster/Cata/cataSTA8/Macro/info_fonction_ops.py +++ b/Aster/Cata/cataSTA8/Macro/info_fonction_ops.py @@ -1,4 +1,4 @@ -#@ MODIF info_fonction_ops Macro DATE 12/05/2005 AUTEUR DURAND C.DURAND +#@ MODIF info_fonction_ops Macro DATE 02/05/2006 AUTEUR MCOURTOI M.COURTOIS # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -17,7 +17,7 @@ # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -def info_fonction_ops(self,RMS,NOCI_SEISME,MAX,NORME,ECART_TYPE,**args): +def info_fonction_ops(self,RMS,NOCI_SEISME,MAX,NORME,ECART_TYPE,INFO,**args): """ Ecriture de la macro INFO_FONCTION """ @@ -30,6 +30,7 @@ def info_fonction_ops(self,RMS,NOCI_SEISME,MAX,NORME,ECART_TYPE,**args): ### On importe les definitions des commandes a utiliser dans la macro CREA_TABLE = self.get_cmd('CREA_TABLE') + IMPR_TABLE = self.get_cmd('IMPR_TABLE') CALC_FONCTION = self.get_cmd('CALC_FONCTION') ### Comptage commandes + déclaration concept sortant @@ -249,4 +250,7 @@ porte le calcul, ceci peut etre une source d erreurs.''') l_table.append(_F(LISTE_R=dphfor,PARA='DUREE_PHAS_FORT')) C_out=CREA_TABLE(LISTE=l_table) + if INFO > 1: + IMPR_TABLE(UNITE=6, + TABLE=C_out) return ier diff --git a/Aster/Cata/cataSTA8/Macro/lire_inte_spec_ops.py b/Aster/Cata/cataSTA8/Macro/lire_inte_spec_ops.py index 1a9209a6..a2bd9567 100644 --- a/Aster/Cata/cataSTA8/Macro/lire_inte_spec_ops.py +++ b/Aster/Cata/cataSTA8/Macro/lire_inte_spec_ops.py @@ -1,4 +1,4 @@ -#@ MODIF lire_inte_spec_ops Macro DATE 24/05/2005 AUTEUR MCOURTOI M.COURTOIS +#@ MODIF lire_inte_spec_ops Macro DATE 03/01/2006 AUTEUR REZETTE C.REZETTE # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -50,14 +50,10 @@ def lire_inte_spec_ops(self,UNITE,FORMAT,NOM_PARA,NOM_RESU,INTERPOL, entete=entete[entete.index('DIM'):] dim=int(entete[entete.index('=')+1:entete.index('\n')]) except ValueError : - ier=ier+1 - self.cr.fatal(" la dimension DIM n est pas précisée dans le fichier lu") - return ier + UTMESS('F', nompro, "la dimension DIM n est pas précisée dans le fichier lu") if len(list_fonc)!=(dim*(dim+1)/2): - ier=ier+1 - self.cr.fatal(" nombre de fonctions incorrect") - return ier + UTMESS('F', nompro, "nombre de fonctions incorrect") nume_i=[] nume_j=[] @@ -74,9 +70,7 @@ def lire_inte_spec_ops(self,UNITE,FORMAT,NOM_PARA,NOM_RESU,INTERPOL, vale_fonc=vale_fonc.replace('\n',' ') vale_fonc=map(float,vale_fonc.split()) except ValueError : - ier=ier+1 - self.cr.fatal(" erreur dans les données de fonctions") - return ier + UTMESS('F', nompro, "erreur dans les données de fonctions") liste=[] if FORMAT=='REEL_IMAG': @@ -105,9 +99,7 @@ def lire_inte_spec_ops(self,UNITE,FORMAT,NOM_PARA,NOM_RESU,INTERPOL, nume_ib.append(i+1) nume_jb.append(j+1) if nume_i!=nume_ib or nume_j!=nume_jb : - ier=ier+1 - self.cr.fatal(" erreur dans les indices") - return ier + UTMESS('F', nompro, "erreur dans les indices") mcfact=[] mcfact.append(_F(PARA='NOM_CHAM' ,LISTE_K=(NOM_RESU),NUME_LIGN=(1,))) mcfact.append(_F(PARA='OPTION' ,LISTE_K=('TOUT',) ,NUME_LIGN=(1,))) @@ -116,8 +108,7 @@ def lire_inte_spec_ops(self,UNITE,FORMAT,NOM_PARA,NOM_RESU,INTERPOL, mcfact.append(_F(PARA='NUME_ORDRE_J',LISTE_I=nume_j ,NUME_LIGN=range(2,len(nume_j)+2))) mcfact.append(_F(PARA='FONCTION' ,LISTE_K=l_fonc ,NUME_LIGN=range(2,len(list_fonc)+2))) self.DeclareOut('tab_inte',self.sd) - tab_inte=CREA_TABLE(TYPE_TABLE='TABL_INTE_SPEC', - LISTE=mcfact, + tab_inte=CREA_TABLE(LISTE=mcfact, TITRE=TITRE,) # remet UNITE dans son état initial diff --git a/Aster/Cata/cataSTA8/Macro/lire_table_ops.py b/Aster/Cata/cataSTA8/Macro/lire_table_ops.py index acf3a914..5d4edeff 100644 --- a/Aster/Cata/cataSTA8/Macro/lire_table_ops.py +++ b/Aster/Cata/cataSTA8/Macro/lire_table_ops.py @@ -1,4 +1,4 @@ -#@ MODIF lire_table_ops Macro DATE 24/05/2005 AUTEUR MCOURTOI M.COURTOIS +#@ MODIF lire_table_ops Macro DATE 03/01/2006 AUTEUR REZETTE C.REZETTE # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -113,7 +113,7 @@ def lecture_table(texte,nume,separ): # ------------------------------------------------------------------------------ def lire_table_ops(self,UNITE,FORMAT,NUME_TABLE,SEPARATEUR, - TYPE_TABLE,PARA,TITRE,**args): + PARA,TITRE,**args): """Méthode corps de la macro LIRE_TABLE """ import os @@ -122,6 +122,7 @@ def lire_table_ops(self,UNITE,FORMAT,NUME_TABLE,SEPARATEUR, from Utilitai.UniteAster import UniteAster ier=0 + nompro='LIRE_TABLE' ### On importe les definitions des commandes a utiliser dans la macro CREA_TABLE =self.get_cmd('CREA_TABLE') @@ -142,8 +143,7 @@ def lire_table_ops(self,UNITE,FORMAT,NUME_TABLE,SEPARATEUR, if FORMAT=='ASTER': ier,message,titr_tab,list_para,tab_lue=lecture_table(texte,NUME_TABLE,SEPARATEUR) if ier!=0 : - self.cr.fatal(message) - return ier + UTMESS('F', nompro, message) else : pass ### création de la table ASTER : @@ -170,7 +170,7 @@ def lire_table_ops(self,UNITE,FORMAT,NUME_TABLE,SEPARATEUR, motscles={} motscles['LISTE']=mcfact - ut_tab=CREA_TABLE(TITRE=titr_tab,TYPE_TABLE=TYPE_TABLE, **motscles) + ut_tab=CREA_TABLE(TITRE=titr_tab,**motscles) # remet UNITE dans son état initial UL.EtatInit() diff --git a/Aster/Cata/cataSTA8/Macro/macr_adap_mail_ops.py b/Aster/Cata/cataSTA8/Macro/macr_adap_mail_ops.py index 16625395..0d1234c4 100644 --- a/Aster/Cata/cataSTA8/Macro/macr_adap_mail_ops.py +++ b/Aster/Cata/cataSTA8/Macro/macr_adap_mail_ops.py @@ -1,4 +1,4 @@ -#@ MODIF macr_adap_mail_ops Macro DATE 05/10/2004 AUTEUR CIBHHLV L.VIVAN +#@ MODIF macr_adap_mail_ops Macro DATE 22/05/2006 AUTEUR MCOURTOI M.COURTOIS # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -20,14 +20,10 @@ # RESPONSABLE GNICOLAS G.NICOLAS # def macr_adap_mail_ops ( self, - INFO, VERSION_HOMARD, LANGUE, - NOMBRE, QUALITE, CONNEXITE, TAILLE, INTERPENETRATION, - NON_SIMPLEXE, MAILLAGE_FRONTIERE, + INFO, VERSION_HOMARD, MAILLAGE_FRONTIERE, **args): """ - Ecriture des macros MACR_ADAP_MAIL/MACR_INFO_MAIL - Remarque : on ne mentionne explicitement que les mots-clés communs aux - deux macros. Les autres sont dans le dictionnaire args + Traitement des macros MACR_ADAP_MAIL/MACR_INFO_MAIL """ # # 1. args est le dictionnaire des arguments @@ -57,7 +53,7 @@ def macr_adap_mail_ops ( self, # dictionnaires que de maillages manipulés. L'ensemble de ces dictionnaires est conservé # dans la liste Liste_Maillages. # Description du dictionnaire de maillages : -# dico["Type_Maillage"] = o ; string ; "MAILLAGE_N", "MAILLAGE_NP1" ou "MAILLAGE_FRONTIERE" +# dico["Type_Maillage"] = o ; string ; "MAILLAGE_N", "MAILLAGE_NP1", "MAILLAGE_NP1_ANNEXE" ou "MAILLAGE_FRONTIERE" # dico["Nom_ASTER"] = o ; concept ASTER associé # dico["Action"] = o ; string ; "A_ecrire" ou "A_lire" # dico["NOM_MED"] = o ; string ; Nom MED du maillage @@ -66,9 +62,10 @@ def macr_adap_mail_ops ( self, # dictionnaires que de champs manipulés. L'ensemble de ces dictionnaires est conservé # dans la liste Liste_Champs. # Description du dictionnaire de champs : -# dico["Type_Champ"] = o ; string ; "INDICATEUR" ou "CHAMP" -# dico["RESULTAT"] = o ; concept ASTER du résutat associé -# dico["NOM_CHAM"] = o ; string ; Nom ASTER du champ +# dico["Type_Champ"] = o ; string ; "INDICATEUR" ou "CHAMP_MAJ" +# dico["RESULTAT"] = f ; concept ASTER du résutat associé +# dico["NOM_CHAM"] = f ; string ; Nom ASTER du champ +# dico["CHAM_GD"] = f ; concept ASTER du champ de grandeur associée # dico["COMPOSANTE"] = f ; string ; Nom ASTER de la composante (dans le cas de l'indicateur) # dico["NUME_ORDRE"] = f ; entier ; Numéro d'ordre du champ # dico["INST"] = f ; entier ; Instant du champ @@ -78,16 +75,18 @@ def macr_adap_mail_ops ( self, # dico["NOM_MED"] = o ; string ; Nom MED du champ # from Accas import _F + from Macro import creation_donnees_homard + from Utilitai.Utmess import UTMESS import aster import string - import types import os +#gn import shutil # global Liste_Passages # -#-------------------------------------------------------------------- +#==================================================================== # 1. Préalables -#-------------------------------------------------------------------- +#==================================================================== # # 1.1. ==> La macro compte pour 1 dans la numerotation des commandes # @@ -100,18 +99,16 @@ def macr_adap_mail_ops ( self, except : self.jdc.indice_macro_homard = 1 Liste_Passages = [] - Numero_Passage_Fonction = self.jdc.indice_macro_homard -### print "Numero_Passage_Fonction = ",Numero_Passage_Fonction + numero_passage_fonction = self.jdc.indice_macro_homard +### print "numero_passage_fonction = ",numero_passage_fonction # # 1.3. ==> On importe les definitions des commandes a utiliser dans la macro # DEFI_FICHIER = self.get_cmd("DEFI_FICHIER") IMPR_RESU = self.get_cmd("IMPR_RESU") EXEC_LOGICIEL = self.get_cmd("EXEC_LOGICIEL") - IMPR_FICO_HOMA = self.get_cmd("IMPR_FICO_HOMA") LIRE_MAILLAGE = self.get_cmd("LIRE_MAILLAGE") LIRE_CHAMP = self.get_cmd("LIRE_CHAMP") - DETRUIRE = self.get_cmd('DETRUIRE') # # 1.4. ==> Le nom du programme HOMARD à lancer # @@ -120,92 +117,151 @@ def macr_adap_mail_ops ( self, # # 1.5. ==> Initialisations # - codret = 0 codret_partiel = [0] Rep_Calc_ASTER = os.getcwd() # Liste_Maillages = [] Liste_Champs = [] + Liste_Zones = [] dico_indi = {} # - ADAPTATION = None - MAJ_CHAM = None + LISTE_ADAPTATION_LIBRE = ("RAFF_DERA" , "RAFFINEMENT" , "DERAFFINEMENT") # - unite = 71 -# -#-------------------------------------------------------------------- +#==================================================================== # 2. Décodage des arguments de la macro-commande -#-------------------------------------------------------------------- +#==================================================================== # 2.1. ==> Données de pilotage de l'adaptation # if ( self.nom == "MACR_ADAP_MAIL" ) : # - modhom = "ADAP" -# - ADAPTATION = args["ADAPTATION"] - if args.has_key("MAJ_CHAM") : - MAJ_CHAM = args["MAJ_CHAM"] + mode_homard = "ADAP" # # 2.1.1. ==> Les concepts "maillage" # - for mot_cle in ["MAILLAGE_N","MAILLAGE_NP1"] : +#gn print "\n.. Debut de 2.1.1" +# for mot_cle in ["MAILLAGE_N" , "MAILLAGE_NP1"] : + for mot_cle in ["MAILLAGE_N" , "MAILLAGE_NP1" , "MAILLAGE_NP1_ANNEXE"] : +#gn print "\nmot_cle = ",mot_cle dico = {} dico["Type_Maillage"] = mot_cle - dico["Nom_ASTER"] = ADAPTATION[mot_cle] - if ( mot_cle == "MAILLAGE_N" ) : - dico["Action"] = "A_ecrire" + if ( args[mot_cle] != None ) : +#gn print "==> args[",mot_cle,"] = ",args[mot_cle] + dico["Nom_ASTER"] = args[mot_cle] + if ( mot_cle == "MAILLAGE_N" ) : + dico["Action"] = "A_ecrire" + else : + dico["Action"] = "A_lire" else : - dico["Action"] = "A_lire" + dico["Action"] = "Rien" +#gn print "dico = ",dico Liste_Maillages.append(dico) # # 2.1.2. ==> L'éventuel indicateur d'erreur # - if ADAPTATION["LIBRE"] != None : +#gn print "\n.. Debut de 2.1.2" + if args["ADAPTATION"] in LISTE_ADAPTATION_LIBRE : dico = {} dico["Type_Champ"] = "INDICATEUR" - dico["RESULTAT"] = ADAPTATION["RESULTAT_N"] - dico["NOM_CHAM"] = ADAPTATION["INDICATEUR"] - dico["COMPOSANTE"] = ADAPTATION["NOM_CMP_INDICA"] - if ( ADAPTATION["NUME_ORDRE"] != None ) : - dico["NUME_ORDRE"] = ADAPTATION["NUME_ORDRE"] - if ( ADAPTATION["INST"] != None ) : - dico["INST"] = ADAPTATION["INST"] - for cle in [ "PRECISION", "CRITERE" ] : - if ( ADAPTATION[cle] != None ) : - dico[cle] = ADAPTATION[cle] - dico["NOM_MED"] = aster.mdnoch ( dico["RESULTAT"].nom , dico["NOM_CHAM"] ) + if ( args["RESULTAT_N"] != None ) : + lresu = 1 + dico["RESULTAT"] = args["RESULTAT_N"] + noresu = dico["RESULTAT"].nom + dico["NOM_CHAM"] = args["INDICATEUR"] + nomsym = dico["NOM_CHAM"] + if ( args["NUME_ORDRE"] != None ) : + dico["NUME_ORDRE"] = args["NUME_ORDRE"] + if ( args["INST"] != None ) : + dico["INST"] = args["INST"] + for cle in [ "PRECISION", "CRITERE" ] : + if ( args[cle] != None ) : + dico[cle] = args[cle] + else : + lresu = 0 + dico["CHAM_GD"] = args["CHAM_GD"] + noresu = dico["CHAM_GD"].nom + nomsym = " " + nopase = " " +# +### print "Avant appel a aster.mdnoch, lresu = ",lresu,", noresu =", noresu ,", nomsym = ", nomsym ,", nopase = ", nopase + dico["NOM_MED"] = aster.mdnoch ( lresu, noresu, nomsym, nopase ) +### print "dico[\"NOM_MED\"] = ", dico["NOM_MED"] + dico["COMPOSANTE"] = args["NOM_CMP_INDICA"] Liste_Champs.append(dico) dico_indi = dico ### print dico # # 2.1.3. ==> Les champs à mettre à jour # - if ( MAJ_CHAM != None ) : +#gn print "\n.. Debut de 2.1.3." # - for maj_cham in MAJ_CHAM : -### print maj_cham + if args.has_key("MAJ_CHAM") : +# + if args["MAJ_CHAM"] is None : + les_champs = [] + else : + les_champs = args["MAJ_CHAM"] +# + for maj_cham in les_champs : +#gn print maj_cham +#gn print type(maj_cham) # dico = {} - dico["Type_Champ"] = "CHAMP" - for cle in [ "CHAM_MAJ", "TYPE_CHAM", "RESULTAT", "NOM_CHAM" ] : + dico["Type_Champ"] = "CHAMP_MAJ" + Liste_aux = [ "CHAM_MAJ", "TYPE_CHAM", "NOM_CHAM" ] + if ( maj_cham["RESULTAT"] != None ) : + lresu = 1 + Liste_aux.append("RESULTAT") + if ( maj_cham["NUME_ORDRE"] != None ) : + dico["NUME_ORDRE"] = maj_cham["NUME_ORDRE"] + elif ( maj_cham["INST"] != None ) : + dico["INST"] = maj_cham["INST"] + for cle in [ "PRECISION", "CRITERE" ] : + if ( maj_cham[cle] != None ) : + dico[cle] = maj_cham[cle] + noresu = maj_cham["RESULTAT"].nom + nomsym = maj_cham["NOM_CHAM"] + else : + lresu = 0 + Liste_aux.append("CHAM_GD") + noresu = maj_cham["CHAM_GD"].nom + nomsym = " " + for cle in Liste_aux : dico[cle] = maj_cham[cle] - if ( maj_cham["NUME_ORDRE"] != None ) : - dico["NUME_ORDRE"] = maj_cham["NUME_ORDRE"] - elif ( maj_cham["INST"] != None ) : - dico["INST"] = maj_cham["INST"] - for cle in [ "PRECISION", "CRITERE" ] : - if ( maj_cham[cle] != None ) : - dico[cle] = maj_cham[cle] - dico["NOM_MED"] = aster.mdnoch ( dico["RESULTAT"].nom , dico["NOM_CHAM"] ) + nopase = " " +### print "Avant appel a aster.mdnoch, lresu = ",lresu,", noresu =", noresu ,", nomsym = ", nomsym ,", nopase = ", nopase + dico["NOM_MED"] = aster.mdnoch ( lresu, noresu, nomsym, nopase ) # ### print dico Liste_Champs.append(dico) # +# 2.1.4. ==> Les zones de raffinement +# +### print "\n.. Debut de 2.1.4." +# + if args.has_key("ZONE") : +# + if args["ZONE"] is None : + les_zones = [] + else : + les_zones = args["ZONE"] +# + for zone in les_zones : +### print zone +### print type(zone) + dico = {} + for aux in ['X_MINI','X_MAXI','Y_MINI','Y_MAXI','Z_MINI','Z_MAXI','X_CENTRE','Y_CENTRE','Z_CENTRE','RAYON'] : + if ( zone[aux] != None ) : + dico[aux] = zone[aux] +### print dico + Liste_Zones.append(dico) +# +### print Liste_Zones +# # 2.2. ==> Données de pilotage de l'information # else : # - modhom = "INFO" + mode_homard = "INFO" # dico = {} dico["Type_Maillage"] = "MAILLAGE_N" @@ -214,6 +270,8 @@ def macr_adap_mail_ops ( self, Liste_Maillages.append(dico) # # 2.3. ==> Suivi de frontière +# +#gn print "\n.. Debut de 2.3." # if ( MAILLAGE_FRONTIERE != None ) : # @@ -223,24 +281,53 @@ def macr_adap_mail_ops ( self, dico["Action"] = "A_ecrire" Liste_Maillages.append(dico) # -#-------------------------------------------------------------------- +# 2.4. ==> Le numéro de version de HOMARD +# Remarque : dans la donnée de la version de HOMARD, il faut remplacer +# le _ de la donnee par un ., qui est interdit dans la +# syntaxe du langage de commandes ASTER +# Remarque : il faut remplacer le N majuscule de la donnee par +# un n minuscule, qui est interdit dans la syntaxe du langage +# de commandes ASTER +# +#gn print "\n.. Debut de 2.4. avec VERSION_HOMARD = ", VERSION_HOMARD + VERSION_HOMARD = string.replace(VERSION_HOMARD,"_" , ".") + VERSION_HOMARD = string.replace(VERSION_HOMARD,"N" , "n") +# + if ( VERSION_HOMARD[-6:]==".PERSO" ): + VERSION_HOMARD = VERSION_HOMARD[:-6] + version_perso = 1 + else : + version_perso = 0 +#gn print ".... VERSION_HOMARD = ", VERSION_HOMARD +#gn print ".... version_perso = ", version_perso +# +#==================================================================== # 3. Préparation du lancement des commandes -#-------------------------------------------------------------------- +#==================================================================== # # 3.1. ==> . Elaboration des noms MED des concepts de maillage # . Memorisation des noms ASTER du maillage en entrée et en sortie (sous forme string) +# # On crée une nouvelle liste des dictionnaires décrivant les maillages # et à la fin on écrase l'ancienne liste par cette nouvelle. # - L = [] +#gn print "\n.. Debut de 3.1." +# + Nom_Concept_Maillage_NP1_ANNEXE = None + l_aux = [] for dico in Liste_Maillages : - dico["NOM_MED"] = aster.mdnoma(dico["Nom_ASTER"].nom) - L.append(dico) - if ( dico["Type_Maillage"] == "MAILLAGE_N" ) : - Nom_Concept_Maillage_N = dico["Nom_ASTER"].nom - elif ( dico["Type_Maillage"] == "MAILLAGE_NP1" ) : - Nom_Concept_Maillage_NP1 = dico["Nom_ASTER"].nom - Liste_Maillages = L +#gn print "\ndico avant = ",dico + if ( dico["Action"] != "Rien" ) : + dico["NOM_MED"] = aster.mdnoma(dico["Nom_ASTER"].nom) + l_aux.append(dico) + if ( dico["Type_Maillage"] == "MAILLAGE_N" ) : + Nom_Concept_Maillage_N = dico["Nom_ASTER"].nom + elif ( dico["Type_Maillage"] == "MAILLAGE_NP1" ) : + Nom_Concept_Maillage_NP1 = dico["Nom_ASTER"].nom + elif ( dico["Type_Maillage"] == "MAILLAGE_NP1_ANNEXE" ) : + Nom_Concept_Maillage_NP1_ANNEXE = dico["Nom_ASTER"].nom +#gn print "\ndico apres = ",dico + Liste_Maillages = l_aux # # 3.2. ==> Recherche du numéro d'itération et du répertoire de travail # @@ -248,23 +335,29 @@ def macr_adap_mail_ops ( self, # . le numéro d'itération est nul # . le nom du répertoire de lancement de HOMARD est construit sur le nom # du maillage en entrée et le numéro de passage dans la fonction +# +#gn print "\.. Debut de 3.2.1." # niter = 0 - Nom_Rep_local = Nom_Concept_Maillage_N + "_" + modhom + "_" + str(Numero_Passage_Fonction) - Rep_Calc_HOMARD_local = os.path.join(".",Nom_Rep_local) - Rep_Calc_HOMARD_global = os.path.join(Rep_Calc_ASTER,Nom_Rep_local) + Nom_Rep_local = Nom_Concept_Maillage_N + "_" + mode_homard + "_" + str(numero_passage_fonction) + Rep_Calc_HOMARD_local = os.path.join(".", Nom_Rep_local) + Rep_Calc_HOMARD_global = os.path.join(Rep_Calc_ASTER, Nom_Rep_local) ### print "Rep_Calc_HOMARD_local = ", Rep_Calc_HOMARD_local ### print "Rep_Calc_HOMARD_global = ", Rep_Calc_HOMARD_global # -# 3.2.2. ==> En adaptation : +# 3.2.2. ==> En adaptation : il faut repartir du répertoire de l'itération précédente +# +#gn print "\.. Debut de 3.2.2." # - if ( modhom == "ADAP" ) : + if ( mode_homard == "ADAP" ) : # # 3.2.2.1. ==> On recherche si dans les passages déjà effectués, il en existe un # dont le maillage d'arrivée était l'actuel maillage d'entrée. Si c'est # le cas, cela veut dire que l'adaptation en cours est la suite d'une # précédente. On doit donc utiliser le meme répertoire. Le numéro # d'itération est celui de l'adaptation précédente augmenté de 1. +# +#gn print "\.. Debut de 3.2.2.1." # for dico in Liste_Passages : if ( dico["Maillage_NP1"] == Nom_Concept_Maillage_N ) : @@ -274,12 +367,15 @@ def macr_adap_mail_ops ( self, # # 3.2.2.2. ==> Memorisation de ce passage # +#gn print "\.. Debut de 3.2.2.2." +# # 3.2.2.2.1. ==> Enregistrement d'un nouveau cas de figure # if ( niter == 0 ) : dico = {} dico["Maillage_0"] = Nom_Concept_Maillage_N dico["Maillage_NP1"] = Nom_Concept_Maillage_NP1 + dico["Maillage_NP1_ANNEXE"] = Nom_Concept_Maillage_NP1_ANNEXE dico["Rep_Calc_HOMARD_local"] = Rep_Calc_HOMARD_local dico["Rep_Calc_HOMARD_global"] = Rep_Calc_HOMARD_global dico["niter"] = niter @@ -288,23 +384,22 @@ def macr_adap_mail_ops ( self, # 3.2.2.2.2. ==> Modification du cas en cours # else : - L = [] + l_aux = [] for dico in Liste_Passages : if ( dico["Maillage_NP1"] == Nom_Concept_Maillage_N ) : dico["Maillage_NP1"] = Nom_Concept_Maillage_NP1 + dico["Maillage_NP1_ANNEXE"] = Nom_Concept_Maillage_NP1_ANNEXE dico["niter"] = niter - L.append(dico) - Liste_Passages = L + l_aux.append(dico) + Liste_Passages = l_aux # ### print "niter = ", niter, ", Rep_Calc_HOMARD_global = ", Rep_Calc_HOMARD_global # -#-------------------------------------------------------------------- -# 4. Ecriture des commandes -#-------------------------------------------------------------------- +# 3.2.3. Création du répertoire pour homard +# attention : on ne fait cette creation qu'une seule fois par cas +# d'adaptation ou d'information # -# 4.1. ==> Création du répertoire pour homard -# attention : on ne fait cette creation qu'une seule fois par cas -# d'adaptation ou d'information +#gn print "\.. Debut de 3.2.3." # if ( niter == 0 ) : # @@ -312,10 +407,13 @@ def macr_adap_mail_ops ( self, os.mkdir(Rep_Calc_HOMARD_global) except os.error,codret_partiel : self.cr.warn("Code d'erreur de mkdir : " + str(codret_partiel[0]) + " : " + codret_partiel[1]) - self.cr.fatal(" Impossible de créer le répertoire de travail pour HOMARD : "+Rep_Calc_HOMARD_global) - codret = codret + 1 + UTMESS("F", self.nom, "Impossible de créer le répertoire de travail pour HOMARD : "+Rep_Calc_HOMARD_global) +# +#==================================================================== +# 4. Ecriture des commandes de creation des donnees MED +#==================================================================== # -# 4.2. ==> Ecriture des commandes de creation des donnees MED +#gn print "\.. Debut de 4." # # On doit écrire : le maillage, # le champ d'indicateur d'erreur @@ -324,53 +422,36 @@ def macr_adap_mail_ops ( self, # # Chacune de ces écritures est optionnelle selon le contexte. # - if ( INFO > 1 ) : infomail = "OUI" - else : infomail = "NON" -# -# 4.2.1. ==> Noms des fichiers d'ASTER vers HOMARD et éventuellement de HOMARD vers ASTER -# Remarque : aujourd'hui, les écritures ou les lectures au format MED se font obligatoirement sur -# un fichier de nom fort.n, placé dans le répertoire de calcul -# Dans le fichier de configuration, on donne comme nom MAILL.(niter).MED en entrée et -# MAILL.(niter+1).MED en sortie (cf. adhc00) -# Tant que les E/S MED n'ont pas évolué, on fait un lien pour assurer la cohérence. + if ( INFO > 1 ) : + infomail = "OUI" + else : + infomail = "NON" # -# 4.2.1.1. ==> D'ASTER vers HOMARD +# 4.1. ==> Noms des fichiers d'ASTER vers HOMARD et éventuellement de HOMARD vers ASTER +# Remarque : aujourd'hui, les écritures ou les lectures au format MED se font obligatoirement sur +# un fichier de nom fort.n, placé dans le répertoire de calcul +## +# 4.1.1. ==> D'ASTER vers HOMARD # - Unite_Fichier_ASTER_vers_HOMARD = 1787 + 2*Numero_Passage_Fonction + Unite_Fichier_ASTER_vers_HOMARD = 1787 + 2*numero_passage_fonction Fichier_ASTER_vers_HOMARD = os.path.join(Rep_Calc_ASTER,"fort." + str(Unite_Fichier_ASTER_vers_HOMARD)) - Fichier_HOMARD_Entree = os.path.join(Rep_Calc_HOMARD_global,"MAILL."+str(niter)+".MED") ### print "Fichier_ASTER_vers_HOMARD = ",Fichier_ASTER_vers_HOMARD -### print "Fichier_HOMARD_Entree = ",Fichier_HOMARD_Entree - try : - os.symlink(Fichier_ASTER_vers_HOMARD,Fichier_HOMARD_Entree) - except os.error,codret_partiel : - self.cr.warn("Code d'erreur de symlink : " + str(codret_partiel[0]) + " : " + codret_partiel[1]) - self.cr.fatal(" Probleme au lien entre " + Fichier_ASTER_vers_HOMARD + " et " + Fichier_HOMARD_Entree) - codret = codret + 1 # -# 4.2.1.2. ==> De HOMARD vers ASTER +# 4.1.2. ==> De HOMARD vers ASTER # - if ( modhom == "ADAP" ) : + if ( mode_homard == "ADAP" ) : Unite_Fichier_HOMARD_vers_ASTER = Unite_Fichier_ASTER_vers_HOMARD + 1 Fichier_HOMARD_vers_ASTER = os.path.join(Rep_Calc_ASTER,"fort." + str(Unite_Fichier_HOMARD_vers_ASTER)) - Fichier_HOMARD_Sortie = os.path.join(Rep_Calc_HOMARD_global,"MAILL."+str(niter+1)+".MED") ### print "Fichier_HOMARD_vers_ASTER = ",Fichier_HOMARD_vers_ASTER -### print "Fichier_HOMARD_Sortie = ",Fichier_HOMARD_Sortie - try : - os.symlink(Fichier_HOMARD_vers_ASTER,Fichier_HOMARD_Sortie) - except os.error,codret_partiel : - self.cr.warn("Code d'erreur de symlink : " + str(codret_partiel[0]) + " : " + codret_partiel[1]) - self.cr.fatal(" Probleme au lien entre " + Fichier_HOMARD_vers_ASTER + " et " + Fichier_HOMARD_Sortie) - codret = codret + 1 # -# 4.2.2. La définition du fichier de ASTER vers HOMARD +# 4.2. La définition du fichier de ASTER vers HOMARD # DEFI_FICHIER ( ACTION= "ASSOCIER", UNITE = Unite_Fichier_ASTER_vers_HOMARD, TYPE = "LIBRE", INFO = INFO ) # -# 4.2.3. Le(s) maillage(s) +# 4.3. Le(s) maillage(s) # Le maillage de calcul et l'éventuel maillage de la frontiere sont écrits # dans le meme fichier MED # En fait, on pourrait s'en passer au dela de la 1ère itération @@ -380,17 +461,17 @@ def macr_adap_mail_ops ( self, # for dico in Liste_Maillages : if ( dico["Action"] == "A_ecrire" ) : - motscsi={} + motscsi = {} motscsi["MAILLAGE"] = dico["Nom_ASTER"] - motscfa={} - motscfa["RESU"]=_F( INFO_MAILLAGE=infomail, + motscfa = {} + motscfa["RESU"] = _F( INFO_MAILLAGE=infomail, **motscsi ) # IMPR_RESU ( INFO = INFO, FORMAT ='MED', UNITE = Unite_Fichier_ASTER_vers_HOMARD, **motscfa ) # -# 4.2.4. Le(s) champ(s) +# 4.4. Le(s) champ(s) # Attention : il se peut que l'on demande la mise à jour du champ qui a servi comme # indicateur d'erreur. Si c'est le cas, il ne faut pas demander son # impression sinon il y a plantage d'IMPR_RESU qui ne sait pas substituer @@ -398,9 +479,10 @@ def macr_adap_mail_ops ( self, # Remarque : pour l'adaptation, on ne demande a priori qu'une composante du champ d'indicateur. # s'il y a demande de mise à jour, toutes les composantes sont concernées. Il faut # donc dans ce cas imprimer le champ total. -# dico["Type_Champ"] = o ; string ; "INDICATEUR" ou "CHAMP" -# dico["RESULTAT"] = o ; concept ASTER du résutat associé -# dico["NOM_CHAM"] = o ; string ; Nom ASTER du champ +# dico["Type_Champ"] = o ; string ; "INDICATEUR" ou "CHAMP_MAJ" +# dico["RESULTAT"] = f ; concept ASTER du résutat associé +# dico["NOM_CHAM"] = f ; string ; Nom ASTER du champ +# dico["CHAM_GD"] = f ; concept ASTER du champ de grandeur associée # dico["COMPOSANTE"] = f ; string ; Nom ASTER de la composante (dans le cas de l'indicateur) # dico["NUME_ORDRE"] = f ; entier ; Numéro d'ordre du champ # dico["INST"] = f ; entier ; Instant du champ @@ -409,160 +491,143 @@ def macr_adap_mail_ops ( self, # dico["CHAM_MAJ"] = f ; string ; Nom ASTER du champ interpolé sur le nouveau maillage # dico["NOM_MED"] = o ; string ; Nom MED du champ # -# 4.2.4.1. Recherche d'un doublon éventuel sur le champ d'indicateur d'erreur +# 4.4.1. Recherche d'un doublon éventuel sur le champ d'indicateur d'erreur # +### print "dico_indi = ",dico_indi if len(dico_indi) > 0 : - imprime_indic = 0 + indic_est_deja_imprime = 0 + if dico_indi.has_key("RESULTAT") : + Liste_aux = [ "RESULTAT", "NOM_CHAM" ] + else : + Liste_aux = [ "CHAM_GD" ] else : - imprime_indic = 1 + indic_est_deja_imprime = 1 + Liste_aux = [ ] +### print ".. Au debut de la boucle, Liste_aux = ",Liste_aux +### print ".. Au debut de la boucle, indic_est_deja_imprime = ",indic_est_deja_imprime # Liste_Champs_imprime = [] for dico in Liste_Champs : +### print "\n.... dico = ",dico # Pour un champ à mettre à jour, on a toujours impression - if ( dico["Type_Champ"] == "CHAMP" ) : + if ( dico["Type_Champ"] == "CHAMP_MAJ" ) : Liste_Champs_imprime.append(dico) -# Si le champ d'indicateur n'a pas été repéré comme champ à mettre à jour : - if not imprime_indic : +# Si le champ d'indicateur n'a toujours pas été repéré comme champ à mettre à jour : + if not indic_est_deja_imprime : # Est-ce le meme champ ? - ok = 1 - for cle in [ "RESULTAT", "NOM_CHAM" ] : - if ( dico_indi[cle] != dico[cle] ) : - ok = 0 + on_a_le_champ = 1 + for cle in Liste_aux : + if ( dico.has_key(cle) ) : +### print "...... dico_indi[cle] = ",dico_indi[cle] +### print "...... dico[cle] = ",dico[cle] + if ( dico_indi[cle] != dico[cle] ) : + on_a_le_champ = 0 + break + else : + on_a_le_champ = 0 break # Si oui, est-ce au meme moment ? (remarque : si rien n'est désigné, c'est qu'il n'y a qu'un # seul instant ... donc c'est le meme ! En revanche, on ne sait pas comparer une donnée # en numéro d'ordre et une donnée en instant. On croise les doigts.) - if ok : + if on_a_le_champ : for cle in [ "NUME_ORDRE", "INST" ] : if dico.has_key(cle) : if ( dico[cle] != None ) : if dico_indi.has_key(cle) : if ( dico_indi[cle] != dico[cle] ) : - ok = 0 + on_a_le_champ = 0 break - if ok : imprime_indic = 1 + if on_a_le_champ : + indic_est_deja_imprime = 1 +### print "\n\nFin de la boucle .. indic_est_deja_imprime = ",indic_est_deja_imprime # Si le champ d'indicateur n'a pas été repéré comme champ à mettre à jour, il faut # l'inclure dans les champs à imprimer - if not imprime_indic : Liste_Champs_imprime.append(dico_indi) + if not indic_est_deja_imprime : + Liste_Champs_imprime.append(dico_indi) # -# 4.2.4.2. Impressions après le filtrage précédent +# 4.4.2. Impressions après le filtrage précédent +#gn print "\n.... Debut de 4.2.4.2." # for dico in Liste_Champs_imprime : - motscsi={} - for cle in [ "RESULTAT", "NOM_CHAM", "NUME_ORDRE", "INST", "PRECISION", "CRITERE" ] : + motscsi = {} + for cle in [ "RESULTAT", "NOM_CHAM", "CHAM_GD", "NUME_ORDRE", "INST", "PRECISION", "CRITERE" ] : if dico.has_key(cle) : if ( dico[cle] != None ) : motscsi[cle] = dico[cle] if dico.has_key("COMPOSANTE") : motscsi["NOM_CMP"] = dico["COMPOSANTE"] - motscfa={} - motscfa["RESU"]=_F( INFO_MAILLAGE=infomail, + motscfa = {} + motscfa["RESU"] = _F( INFO_MAILLAGE=infomail, **motscsi ) +### print ".. motscfa = ",motscfa # IMPR_RESU ( INFO = INFO, FORMAT ='MED', UNITE = Unite_Fichier_ASTER_vers_HOMARD, **motscfa ) # -# 4.3. ==> Ecriture de la commande d'écriture des fichiers de données pour HOMARD +#==================================================================== +# 5. ==> Création des fichiers de données pour HOMARD +#==================================================================== # - motscfa={} -# -# 4.3.1. ==> Le traitement +#gn print "\.. Debut de 5." # - motscsi={} + dico_configuration = {} # -# 4.3.1.1. ==> Le type de traitement +# 5.1. ==> Les généralités # - if ( modhom == "ADAP" ) : - if ( ADAPTATION["UNIFORME"] != None ) : - motscsi["UNIFORME"] = ADAPTATION["UNIFORME"] - else : - motscsi["ADAPTATION"] = ADAPTATION["LIBRE"] - else : - motscsi["INFORMATION"] = "OUI" + dico_configuration["INFO"] = INFO # -# 4.3.1.2. ==> Les noms med des maillages + dico_configuration["Rep_Calc_HOMARD_global"] = Rep_Calc_HOMARD_global + dico_configuration["VERSION_HOMARD"] = VERSION_HOMARD + dico_configuration["version_perso"] = version_perso +# + dico_configuration["niter"] = niter + dico_configuration["Fichier_ASTER_vers_HOMARD"] = Fichier_ASTER_vers_HOMARD + if ( mode_homard == "ADAP" ) : + dico_configuration["Fichier_HOMARD_vers_ASTER"] = Fichier_HOMARD_vers_ASTER +# +# 5.2. ==> Les noms med des maillages # for dico in Liste_Maillages : -### print "Nom MED de " + dico["Type_Maillage"] + " = " + dico["NOM_MED"] - motscsi[ "NOM_MED_"+dico["Type_Maillage"] ] = dico["NOM_MED"] +#gn print "Nom MED de " + dico["Type_Maillage"] + " = " + dico["NOM_MED"] + dico_configuration[ "NOM_MED_"+dico["Type_Maillage"] ] = dico["NOM_MED"] # -# 4.3.1.3. ==> Les caracteristiques de l'éventuel indicateur d'erreur +# 5.3. ==> Les caracteristiques de l'éventuel indicateur d'erreur # for dico in Liste_Champs : + dico_aux = {} if ( dico["Type_Champ"] == "INDICATEUR" ) : Liste_aux = [ "NOM_MED", "COMPOSANTE" ] if dico.has_key("NUME_ORDRE") : Liste_aux.append("NUME_ORDRE") - else : - for cle in [ "RESULTAT", "NOM_CHAM", "INST", "PRECISION", "CRITERE" ] : - Liste_aux.append(cle) for cle in Liste_aux : - if dico.has_key(cle) : - if ( dico[cle] != None ) : - motscsi[cle] = dico[cle] + if ( dico[cle] != None ) : + dico_aux[cle] = dico[cle] + dico_configuration["Indicateur"] = dico_aux +#gn if dico_configuration.has_key("Indicateur") : +#gn print "dico_configuration[Indicateur] = ", dico_configuration["Indicateur"] # -# 4.3.1.4. ==> Les critères de raffinement et les niveaux extremes +# 5.4. ==> Les zones de raffinement # - if ( modhom == "ADAP" ) : - Liste_aux = [ ] - if ( ADAPTATION["LIBRE"] == "RAFF_DERA" or ADAPTATION["LIBRE"] == "RAFFINEMENT" ) : - Liste_aux.append("CRIT_RAFF_ABS") - Liste_aux.append("CRIT_RAFF_REL") - Liste_aux.append("CRIT_RAFF_PE") - if ( ADAPTATION["LIBRE"] == "RAFF_DERA" or ADAPTATION["LIBRE"] == "DERAFFINEMENT" ) : - Liste_aux.append("CRIT_DERA_ABS") - Liste_aux.append("CRIT_DERA_REL") - Liste_aux.append("CRIT_DERA_PE") - niveau = 0 - if ( ADAPTATION["LIBRE"] == "RAFF_DERA" or ADAPTATION["LIBRE"] == "RAFFINEMENT" or ADAPTATION["UNIFORME"] == "RAFFINEMENT" ) : - Liste_aux.append("NIVE_MAX") - niveau = niveau + 1 - if ( ADAPTATION["LIBRE"] == "RAFF_DERA" or ADAPTATION["LIBRE"] == "DERAFFINEMENT" or ADAPTATION["UNIFORME"] == "DERAFFINEMENT" ) : - Liste_aux.append("NIVE_MIN") - niveau = niveau + 2 - for mot_cle in Liste_aux : - if ( ADAPTATION[mot_cle] != None ) : - motscsi[mot_cle] = ADAPTATION[mot_cle] -# - if ( niveau == 2 ) : - if ( ADAPTATION["NIVE_MIN"] > ADAPTATION["NIVE_MAX"] ) : - self.cr.fatal(" Le niveau minimum doit etre inferieur au niveau maximum.") - codret = codret + 1 -# -# 4.3.1.5. ==> Numéro d'itération -# - if ( modhom == "ADAP" ) : - motscsi["NITER"] = niter -# -# 4.3.1.6. ==> Suivi de la frontiere -# - if args.has_key("GROUP_MA") : - if ( args["GROUP_MA"] != None ) : - motscsi["GROUP_MA"] = args["GROUP_MA"] -# -# 4.3.1.7. ==> Bilan -# - motscfa["TRAITEMENT"] = _F(**motscsi) -# -# 4.3.2. ==> L'analyse -# - motscsi={} - if ( NOMBRE != None ) : motscsi["NOMBRE" ] = NOMBRE - if ( QUALITE != None ) : motscsi["QUALITE" ] = QUALITE - if ( CONNEXITE != None ) : motscsi["CONNEXITE" ] = CONNEXITE - if ( TAILLE != None ) : motscsi["TAILLE" ] = TAILLE - if ( INTERPENETRATION != None ) : motscsi["INTERPENETRATION" ] = INTERPENETRATION -# - motscfa["ANALYSE"] = _F(**motscsi) -# -# 4.3.3. ==> La mise à jour de champs + prem = 1 + for dico in Liste_Zones : + if prem : + l_aux = [dico] + prem = 0 + else : + l_aux = dico_configuration["Zones"] + l_aux.append(dico) + dico_configuration["Zones"] = l_aux +### if dico_configuration.has_key("Zones") : +### print "dico_configuration[Zones] = ", dico_configuration["Zones"] +# +# 5.5. ==> La mise à jour de champs # prem = 1 for dico in Liste_Champs : - motscsi={} - if ( dico["Type_Champ"] == "CHAMP" ) : + dico_aux = {} + if ( dico["Type_Champ"] == "CHAMP_MAJ" ) : Liste_aux = [ "NOM_MED", "COMPOSANTE" ] if dico.has_key("NUME_ORDRE") : Liste_aux.append("NUME_ORDRE") @@ -572,76 +637,62 @@ def macr_adap_mail_ops ( self, for cle in Liste_aux : if dico.has_key(cle) : if ( dico[cle] != None ) : - motscsi[cle] = dico[cle] -### print motscsi + dico_aux[cle] = dico[cle] +#gn print dico_aux if prem : - motscfa["MAJ_CHAM"] = [_F(**motscsi),] + l_aux = [dico_aux] prem = 0 else : - motscfa["MAJ_CHAM"].append(_F(**motscsi)) -# -# 4.3.4. ==> La commande -# -# 4.3.4.1. ==> Les fichiers annexes -# - dico = {} -# - Nom_Fichier_Configuration = "HOMARD.Configuration" - Fichier_Configuration = os.path.join(Rep_Calc_HOMARD_local,Nom_Fichier_Configuration) - dico[Fichier_Configuration] = ("HOMARD_CONFIG","UNITE_CONF",unite) -# - if ( modhom != "ADAP" ) : - unite = unite + 1 - Nom_Fichier_Donnees = "HOMARD.Donnees" - Fichier_Donnees = os.path.join(Rep_Calc_HOMARD_local,Nom_Fichier_Donnees) -# 1234567890123456 - dico[Fichier_Donnees] = ("HOMARD_DONN","UNITE_DONN",unite) -# -# 4.3.4.2. ==> L'ouverture de ces fichiers -# - for fic in dico.keys() : - DEFI_FICHIER ( ACTION= "ASSOCIER", FICHIER = fic, UNITE = dico[fic][2], - TYPE = "ASCII", ACCES = "NEW", INFO = INFO ) - motscfa[dico[fic][1]] = dico[fic][2] -# -# 4.3.4.3. ==> Ecriture -# -### print motscfa - IMPR_FICO_HOMA ( INFO=INFO, LANGUE = LANGUE, NON_SIMPLEXE = NON_SIMPLEXE, **motscfa ) -# -### for fic in dico.keys() : -### print "\nContenu de ", fic -### fichier = open (fic,"r") -### les_lignes = fichier.readlines() -### fichier.close() -### for ligne in les_lignes : -### print ligne[:-1] -# -# 4.3.4.4. ==> La fermeture des fichiers locaux -# Remarque : il faut le faire ici pour que le gestionnaire de DEFI_FICHIER soit à jour -# Remarque : aujourd'hui on est obligé de passer par le numéro d'unité logique -# - for fic in dico.keys() : - DEFI_FICHIER ( ACTION= "LIBERER", UNITE = dico[fic][2], INFO = INFO ) -# -# 4.4. ==> Ecriture de la commande d'exécution de homard -# Remarque : dans la donnée de la version de HOMARD, il faut remplacer -# le _ de la donnee par un ., qui -# est interdit dans la syntaxe du langage de commandes ASTER -# Remarque : il faut remplacer le N majuscule de la donnee par -# un n minuscule, qui est interdit dans la syntaxe du langage -# de commandes ASTER -# Remarque : pour le nommage des fichiers d'échange entre ASTER et HOMARD, on utilise -# la convention implicite du fort.n des entrees/sorties au format MED + l_aux = dico_configuration["Champs"] + l_aux.append(dico_aux) + dico_configuration["Champs"] = l_aux +#gn if dico_configuration.has_key("Champs") : +#gn print "dico_configuration[Champs] = ", dico_configuration["Champs"] +# +# 5.6. ==> Appel de la fonction de création +# + donnees_homard = creation_donnees_homard.creation_donnees_homard ( self.nom, args, dico_configuration ) + if ( INFO > 1 ) : + donnees_homard.quel_mode ( ) + fic_homard_niter = donnees_homard.creation_configuration ( ) + donnees_homard.ecrire_fichier_configuration ( ) + if ( mode_homard == "INFO" ) : + Nom_Fichier_Donnees = donnees_homard.ecrire_fichier_donnees ( ) + else : + Nom_Fichier_Donnees = "0" # - VERSION_HOMARD=string.replace(VERSION_HOMARD,"_",".") - VERSION_HOMARD=string.replace(VERSION_HOMARD,"N","n") - if ( VERSION_HOMARD[-6:]=="_PERSO" ): -# motscsi["ARGUMENT"]=_F("TYPEXE"="-PERSO") - VERSION_HOMARD=VERSION_HOMARD[:-6] +# 5.7. ==> Impression eventuelle des fichiers créés # - if ( modhom == "ADAP" ) : - Nom_Fichier_Donnees = "0" +#gn#gn print "Répertoire ",Rep_Calc_HOMARD_global + os.system("ls -la "+Rep_Calc_HOMARD_global) + if ( INFO > 1 ) : + L_aux = ["HOMARD.Donnees" , "HOMARD.Configuration"] + else : + L_aux = [ ] + for nomfic in L_aux : + fic = os.path.join(Rep_Calc_HOMARD_global, nomfic) + if os.path.isfile (fic) : + print "\n\n==============================================================" + print "Contenu de", nomfic + fichier = open (fic,"r") + les_lignes = fichier.readlines() + fichier.close() + for ligne in les_lignes : + print ligne[:-1] + print "==============================================================\n" +#gn if ( mode_homard == "ADAP" ) : +#gn if args.has_key("MAJ_CHAM") : +#gn if args["MAJ_CHAM"] is not None : +#gn os.system("sleep 1000") +# +#==================================================================== +# 6. Ecriture de la commande d'exécution de homard +#==================================================================== +# +# +#gn print "\.. Debut de 7." +### Fichier_ASTER_vers_HOMARD_2 = os.path.join("/home/gnicolas" , "fort." + str(Unite_Fichier_ASTER_vers_HOMARD)) +### shutil.copyfile(Fichier_ASTER_vers_HOMARD,Fichier_ASTER_vers_HOMARD_2) # EXEC_LOGICIEL ( ARGUMENT = (_F(NOM_PARA=Rep_Calc_HOMARD_global), # nom du repertoire _F(NOM_PARA=VERSION_HOMARD), # version de homard @@ -651,35 +702,45 @@ def macr_adap_mail_ops ( self, LOGICIEL = homard ) # -# 4.5. ==> Ecriture de la commande de lecture des resultats med -# Remarque : -# La fonction self.DeclareOut(a,b) focntionne ainsi : -# a est une chaine de caracteres -# b est la variable déclarée dans la commande -# le but est de associer le contenu de b à la variable locale qui sera désignée par a -# Exemple : -# self.DeclareOut("maillage_np1",ADAPTATION["MAILLAGE_NP1"]) -# ==> la variable maillage_np1 est identifiée à l'argument "MAILLAGE_NP1" du mot-clé ADAPTATION +### if ( mode_homard == "ADAP" ) : +### Fichier_HOMARD_vers_ASTER_2 = os.path.join("/home/gnicolas" , "fort." + str(Unite_Fichier_HOMARD_vers_ASTER)) +### shutil.copyfile(Fichier_HOMARD_vers_ASTER,Fichier_HOMARD_vers_ASTER_2) # - if ( modhom == "ADAP" ) : +#==================================================================== +# 7. ==> Ecriture de la commande de lecture des resultats med +# Remarque : +# La fonction self.DeclareOut(a,b) fonctionne ainsi : +# a est une chaine de caracteres +# b est la variable déclarée dans la commande +# le but est de associer le contenu de b à la variable locale qui sera désignée par a +# Exemple : +# self.DeclareOut("maillage_a_lire",args["MAILLAGE_NP1"]) +# ==> la variable maillage_a_lire est identifiée à l'argument "MAILLAGE_NP1" +#==================================================================== # -# 4.5.1. ==> Le maillage + if ( mode_homard == "ADAP" ) : # - self.DeclareOut("maillage_np1",ADAPTATION["MAILLAGE_NP1"]) +# 7.1. ==> Le maillage +# +#gn print "args = ",args for dico in Liste_Maillages : +#gn print dico if ( dico["Action"] == "A_lire" ) : - maillage_np1 = LIRE_MAILLAGE ( UNITE = Unite_Fichier_HOMARD_vers_ASTER, + self.DeclareOut("maillage_a_lire", dico["Nom_ASTER"]) + maillage_a_lire = LIRE_MAILLAGE ( UNITE = Unite_Fichier_HOMARD_vers_ASTER, FORMAT = "MED", NOM_MED = dico["NOM_MED"], VERI_MAIL = _F(VERIF="NON"), INFO_MED = INFO, INFO = INFO ) + if ( dico["Type_Maillage"] == "MAILLAGE_NP1" ) : + maillage_np1 = maillage_a_lire # -# 4.5.2. ==> Les champs +# 7.2. ==> Les champs # for dico in Liste_Champs : - if ( dico["Type_Champ"] == "CHAMP" ) : -### print dico - self.DeclareOut("champ_maj",dico["CHAM_MAJ"]) - motscsi={} + if ( dico["Type_Champ"] == "CHAMP_MAJ" ) : +#gn print dico + self.DeclareOut("champ_maj", dico["CHAM_MAJ"]) + motscsi = {} for cle in [ "NUME_ORDRE", "INST", "PRECISION", "CRITERE" ] : if dico.has_key(cle) : if ( dico[cle] != None ) : @@ -691,37 +752,36 @@ def macr_adap_mail_ops ( self, NOM_MED = dico["NOM_MED"], NOM_CMP_IDEM = "OUI", TYPE_CHAM = dico["TYPE_CHAM"], INFO = INFO, **motscsi ) # -#-------------------------------------------------------------------- -# 5. Menage des fichiers MED et HOMARD devenus inutiles -#-------------------------------------------------------------------- +#==================================================================== +# 8. Menage des fichiers MED et HOMARD devenus inutiles +#==================================================================== # - fic = os.path.join(Rep_Calc_HOMARD_global,"MAILL."+str(niter)+".HOM") - Liste_aux = [ Fichier_ASTER_vers_HOMARD, Fichier_HOMARD_Entree, fic ] - if ( modhom == "ADAP" ) : + Liste_aux = [ Fichier_ASTER_vers_HOMARD ] + if ( mode_homard == "ADAP" ) : Liste_aux.append(Fichier_HOMARD_vers_ASTER) - Liste_aux.append(Fichier_HOMARD_Sortie) + fic = os.path.join(Rep_Calc_HOMARD_global, fic_homard_niter) + Liste_aux.append(fic) +#gn print "Liste_aux = ",Liste_aux # for fic in Liste_aux : - if ( INFO > 1 ) : print "Destruction du fichier ", fic - if os.path.islink(fic) : - try : - os.unlink(fic) - except os.error,codret_partiel : - self.cr.warn("Code d'erreur de unlink : " + str(codret_partiel[0]) + " : " + codret_partiel[1]) - self.cr.warn("Impossible d'enlever le lien sur le fichier : "+fic) - codret = codret + 1 + if ( INFO > 1 ) : + print "Destruction du fichier ", fic if os.path.isfile(fic) : try : os.remove(fic) except os.error,codret_partiel : self.cr.warn("Code d'erreur de remove : " + str(codret_partiel[0]) + " : " + codret_partiel[1]) - self.cr.warn("Impossible de détruire le fichier : "+fic) - codret = codret + 1 -### print os.listdir(Rep_Calc_ASTER) -### print os.listdir(Rep_Calc_HOMARD_global) + UTMESS("F", self.nom, "Impossible de détruire le fichier : "+fic) +#gn print "Répertoire ",Rep_Calc_HOMARD_global +#gn os.system("ls -la "+Rep_Calc_HOMARD_global) +#gn print "Répertoire ",Rep_Calc_ASTER +#gn os.system("ls -la "+Rep_Calc_ASTER) +# +#==================================================================== +# C'est fini ! +#==================================================================== # -#-------------------------------------------------------------------- -# 6. C'est fini ! -#-------------------------------------------------------------------- +#gn if ( mode_homard == "ADAP" ) : +#gn os.system("sleep 1") # - return codret + return diff --git a/Aster/Cata/cataSTA8/Macro/macr_ascouf_calc_ops.py b/Aster/Cata/cataSTA8/Macro/macr_ascouf_calc_ops.py index 4c7c9b96..fcb37351 100644 --- a/Aster/Cata/cataSTA8/Macro/macr_ascouf_calc_ops.py +++ b/Aster/Cata/cataSTA8/Macro/macr_ascouf_calc_ops.py @@ -1,4 +1,4 @@ -#@ MODIF macr_ascouf_calc_ops Macro DATE 08/02/2005 AUTEUR CIBHHLV L.VIVAN +#@ MODIF macr_ascouf_calc_ops Macro DATE 22/05/2006 AUTEUR MCOURTOI M.COURTOIS # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -32,6 +32,7 @@ def macr_ascouf_calc_ops(self,TYPE_MAILLAGE,CL_BOL_P2_GV,MAILLAGE,MODELE,CHAM_MA import math import aster from math import pi,sin,cos,sqrt,atan2 + from Utilitai.Utmess import UTMESS ier=0 # On recopie les mots cles affe_materiau et impr_table pour les proteger mc_AFFE_MATERIAU=AFFE_MATERIAU @@ -49,10 +50,9 @@ def macr_ascouf_calc_ops(self,TYPE_MAILLAGE,CL_BOL_P2_GV,MAILLAGE,MODELE,CHAM_MA IMPR_TABLE =self.get_cmd('IMPR_TABLE' ) DEFI_FOND_FISS =self.get_cmd('DEFI_FOND_FISS' ) CALC_THETA =self.get_cmd('CALC_THETA' ) - CALC_G_THETA_T =self.get_cmd('CALC_G_THETA_T' ) - CALC_G_LOCAL_T =self.get_cmd('CALC_G_LOCAL_T' ) - POST_RCCM =self.get_cmd('POST_RCCM' ) - POST_RELEVE_T =self.get_cmd('POST_RELEVE_T' ) + CALC_G =self.get_cmd('CALC_G' ) + POST_RCCM =self.get_cmd('POST_RCCM' ) + POST_RELEVE_T =self.get_cmd('POST_RELEVE_T' ) # La macro compte pour 1 dans la numerotation des commandes self.set_icmd(1) @@ -63,18 +63,16 @@ def macr_ascouf_calc_ops(self,TYPE_MAILLAGE,CL_BOL_P2_GV,MAILLAGE,MODELE,CHAM_MA # if CL_BOL_P2_GV!=None : if TYPE_MAILLAGE=='SOUS_EPAIS_COUDE' : - print ' la condition aux limites sur bol a section conique' - print ' est ignoree pour un coude avec sous-epaisseurs' + message= ' la condition aux limites sur bol a section conique \n' + message=message+' est ignoree pour un coude avec sous-epaisseurs \n' + UTMESS('A', "MACR_ASCOUF_CALC", message) elif (TYPE_MAILLAGE[:4]!='FISS') and (CL_BOL_P2_GV['AZIMUT']!=None) : - ier=ier+1 - self.cr.fatal(""" mot-cle AZIMUT non autorise dans le cas d''un coude sain""") - return ier + UTMESS('E', "MACR_ASCOUF_CALC", "mot-cle AZIMUT non autorise dans le cas d un coude sain") # if mc_IMPR_TABLE!=None : FLAG = 0 if (mc_IMPR_TABLE['NOM_PARA']==None) and (mc_IMPR_TABLE['POSI_ANGUL']==None) and (mc_IMPR_TABLE['POSI_CURV_LONGI']==None) : - ier=ier+1 - self.cr.fatal(""" POSI_ANGUL POSI_CURV_LONGI est obligatoire""") + UTMESS('E', "MACR_ASCOUF_CALC", "POSI_ANGUL POSI_CURV_LONGI est obligatoire") return ier if (mc_IMPR_TABLE['NOM_PARA']!=None) : impr_table_nom_para= mc_IMPR_TABLE['NOM_PARA'] @@ -83,11 +81,9 @@ def macr_ascouf_calc_ops(self,TYPE_MAILLAGE,CL_BOL_P2_GV,MAILLAGE,MODELE,CHAM_MA FLAG = 1 if (((impt['ANGLE']==None) and (impt['POSI_ANGUL']==None) and (impt['R_CINTR' ]==None)) or ((impt['ANGLE']==None) and (impt['R_CINTR' ]==None) and (impt['POSI_CURV_LONGI']==None)) ) : - ier=ier+1 - self.cr.fatal(""" il faut renseigner : ANGLE, R_CINTR et POSI_ANGUL ou ANGLE, R_CINTR et POSI_CURV_LONGI""") - return ier + UTMESS('E', "MACR_ASCOUF_CALC", "il faut renseigner : ANGLE, R_CINTR et POSI_ANGUL ou ANGLE, R_CINTR et POSI_CURV_LONGI") if (mc_IMPR_TABLE['NOM_PARA']==None) : FLAG = 1 - if not FLAG : print ' ANGL_COUDE et ANGL_SOUS_EPAI sont inutiles dans ce cas' + if not FLAG : UTMESS('A', "MACR_ASCOUF_CALC","ANGL_COUDE et ANGL_SOUS_EPAI sont inutiles dans ce cas") # #------------------------------------------------------------------ # @@ -226,7 +222,7 @@ def macr_ascouf_calc_ops(self,TYPE_MAILLAGE,CL_BOL_P2_GV,MAILLAGE,MODELE,CHAM_MA COEF_MULT = COEFB1 , COEF_IMPO = 0.0 , ) - __conlim = AFFE_CHAR_MECA( MODELE = modele ,**motscles) + _conlim = AFFE_CHAR_MECA( MODELE = modele ,**motscles) # # --- commande AFFE_CHAR_MECA --- # chargement mecanique : pres_rep, effet de fond @@ -244,13 +240,13 @@ def macr_ascouf_calc_ops(self,TYPE_MAILLAGE,CL_BOL_P2_GV,MAILLAGE,MODELE,CHAM_MA GROUP_MA = 'EXTUBE' , PRES = PRES_REP['PRES'] ,) # - __chpres = AFFE_CHAR_MECA( MODELE = modele ,**motscles) + _chpres = AFFE_CHAR_MECA( MODELE = modele ,**motscles) # # --- commande AFFE_CHAR_MECA --- # chargement mecanique : torseur d efforts # if TORS_P1!=None : - __chtor = [None]*6 + _chtor = [None]*6 i=0 for tors in TORS_P1: mcsimp={} @@ -261,8 +257,8 @@ def macr_ascouf_calc_ops(self,TYPE_MAILLAGE,CL_BOL_P2_GV,MAILLAGE,MODELE,CHAM_MA if tors['MY']!=None : mcsimp['MY']=tors['MY'] if tors['MZ']!=None : mcsimp['MZ']=tors['MZ'] mcfact=_F(GROUP_NO='P1',**mcsimp) - __chtor[i] = AFFE_CHAR_MECA( MODELE = modele , - FORCE_NODALE = mcfact , ) + _chtor[i] = AFFE_CHAR_MECA( MODELE = modele , + FORCE_NODALE = mcfact , ) i=i+1 # # --- commande STAT_NON_LINE --- @@ -270,21 +266,21 @@ def macr_ascouf_calc_ops(self,TYPE_MAILLAGE,CL_BOL_P2_GV,MAILLAGE,MODELE,CHAM_MA motscles={} # mcfex=[] # mot clé facteur EXCIT - mcfex.append(_F(CHARGE=__conlim,)) + mcfex.append(_F(CHARGE=_conlim,)) if ECHANGE!=None : mcfex.append(_F(CHARGE=chmeth,)) if PRES_REP!=None: if PRES_REP['FONC_MULT']!=None : - mcfex.append(_F(CHARGE=__chpres,FONC_MULT=PRES_REP['FONC_MULT'])) + mcfex.append(_F(CHARGE=_chpres,FONC_MULT=PRES_REP['FONC_MULT'])) else : - mcfex.append(_F(CHARGE=__chpres,)) + mcfex.append(_F(CHARGE=_chpres,)) if TORS_P1!=None: i=0 for tors in TORS_P1 : if tors['FONC_MULT']!=None : - mcfex.append(_F(CHARGE=__chtor[i],FONC_MULT=tors['FONC_MULT'])) + mcfex.append(_F(CHARGE=_chtor[i],FONC_MULT=tors['FONC_MULT'])) else : - mcfex.append(_F(CHARGE=__chtor[i],)) + mcfex.append(_F(CHARGE=_chtor[i],)) i=i+1 motscles['EXCIT'] =mcfex # @@ -620,7 +616,7 @@ def macr_ascouf_calc_ops(self,TYPE_MAILLAGE,CL_BOL_P2_GV,MAILLAGE,MODELE,CHAM_MA fonfis=DEFI_FOND_FISS(MAILLAGE=MAILLAGE, LEVRE_SUP=_F(GROUP_MA='FACE1'), LEVRE_INF=_F(GROUP_MA='FACE2'), - INFO=2,**motscles + INFO=INFO,**motscles ); if THETA_3D!=None : for thet in THETA_3D: @@ -634,12 +630,10 @@ def macr_ascouf_calc_ops(self,TYPE_MAILLAGE,CL_BOL_P2_GV,MAILLAGE,MODELE,CHAM_MA motscles = {} if COMP_INCR!=None : motscles['COMP_INCR']=_F(RELATION=COMP_INCR['RELATION']) if COMP_ELAS!=None : motscles['COMP_ELAS']=_F(RELATION=COMP_ELAS['RELATION']) - _nogthe=CALC_G_THETA_T( - RESULTAT =nomres, - TOUT_ORDRE ='OUI', - THETA =_nothet, - **motscles - ); + _nogthe=CALC_G( RESULTAT =nomres, + OPTION='CALC_G_GLOB', + TOUT_ORDRE ='OUI', + THETA =_F(THETA=_nothet),**motscles); # IMPR_TABLE(TABLE=_nogthe,); # @@ -648,21 +642,20 @@ def macr_ascouf_calc_ops(self,TYPE_MAILLAGE,CL_BOL_P2_GV,MAILLAGE,MODELE,CHAM_MA if COMP_INCR!=None : motscles['COMP_INCR']=_F(RELATION=COMP_INCR['RELATION']) if COMP_ELAS!=None : motscles['COMP_ELAS']=_F(RELATION=COMP_ELAS['RELATION']) if TYPE_MAILLAGE =='FISS_COUDE' : - motscles['LISSAGE_THETA']='LEGENDRE' - motscles['LISSAGE_G'] ='LEGENDRE' + motscles['LISSAGE']=_F(LISSAGE_THETA='LEGENDRE', + LISSAGE_G='LEGENDRE', + DEGRE=4,) elif TYPE_MAILLAGE =='FISS_AXIS_DEB' : - motscles['LISSAGE_THETA']='LAGRANGE' - motscles['LISSAGE_G'] ='LAGRANGE' - _nogloc=CALC_G_LOCAL_T(MODELE =modele, - RESULTAT =nomres, - TOUT_ORDRE ='OUI', - CHAM_MATER =affmat, - FOND_FISS =fonfis, - DEGRE = 4, - R_INF = thet['R_INF'], - R_SUP = thet['R_SUP'], - **motscles - ); + motscles['LISSAGE']=_F(LISSAGE_THETA='LAGRANGE', + LISSAGE_G='LAGRANGE', + DEGRE=4,) + _nogloc=CALC_G (MODELE =modele, + RESULTAT =nomres, + TOUT_ORDRE ='OUI', + CHAM_MATER =affmat, + THETA=_F( FOND_FISS =fonfis, + R_INF = thet['R_INF'], + R_SUP = thet['R_SUP'],),**motscles); IMPR_TABLE(TABLE=_nogloc,); # diff --git a/Aster/Cata/cataSTA8/Macro/macr_ascouf_mail_ops.py b/Aster/Cata/cataSTA8/Macro/macr_ascouf_mail_ops.py index fe02927a..3495d88d 100644 --- a/Aster/Cata/cataSTA8/Macro/macr_ascouf_mail_ops.py +++ b/Aster/Cata/cataSTA8/Macro/macr_ascouf_mail_ops.py @@ -1,4 +1,4 @@ -#@ MODIF macr_ascouf_mail_ops Macro DATE 09/05/2005 AUTEUR LEBOUVIE F.LEBOUVIER +#@ MODIF macr_ascouf_mail_ops Macro DATE 22/05/2006 AUTEUR MCOURTOI M.COURTOIS # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -19,8 +19,11 @@ # ====================================================================== - +import os.path from math import sqrt,cos,sin,pi,tan,log,fabs,ceil,fmod,floor +import aster +import string +from Utilitai.Utmess import UTMESS # ------------------------------------------------------------------------------ def ASCFON(RC,RM,EP,ORIEN,AZIM,AXEC,POS,Y): @@ -89,6 +92,7 @@ def ASCFIS(ALPHA, RM, RC, EP, SUREP, GEOM, AXEA, """ from Utilitai import funct_root + echo_mess=['MACR_ASCOUF_MAIL ASCFIS \n',] if POS=='DEB_INT': if (AZIM>=120.) and (AZIM<=240.0): X = RM-EP/2.0 - SUREP else: X = RM-EP/2.0 @@ -110,9 +114,9 @@ def ASCFIS(ALPHA, RM, RC, EP, SUREP, GEOM, AXEA, else: SF = BETAR*RC SFP = SF - if (GEOM=='COUDE'): print 'COTE AXIALE CENTRE FISSURE SUR COUDE : %.2f'%SF - if (GEOM=='TUBE') : print 'COTE AXIALE CENTRE FISSURE SUR TUBE : %.2f'%SF - print 'COTE AXIALE CENTRE FISSURE SUR PLAQUE : %.2f'%SFP + if (GEOM=='COUDE'): echo_mess.append( 'COTE AXIALE CENTRE FISSURE SUR COUDE : %.2f \n'%SF) + if (GEOM=='TUBE') : echo_mess.append( 'COTE AXIALE CENTRE FISSURE SUR TUBE : %.2f \n'%SF ) + echo_mess.append( 'COTE AXIALE CENTRE FISSURE SUR PLAQUE : %.2f \n'%SFP) # # ON ENVISAGE LE CAS OU UNE PARTIE DE L AXE EST DANS LES # DROITES DES EMBOUTS. LA TRANSFORMATION N EST FAITE QUE SUR LA @@ -158,8 +162,8 @@ def ASCFIS(ALPHA, RM, RC, EP, SUREP, GEOM, AXEA, BEMB = abs(BINF)*sqrt(2.0) elif (BINF>=0. and BSUP<=DIST): BCOUD = 2.0*AXEC - print 'PARTIE DU GRAND AXE DANS LE COUDE : %.2f'%BCOUD - print 'PARTIE DU GRAND AXE DANS L EMBOUT : %.2f'%BEMB + echo_mess.append( 'PARTIE DU GRAND AXE DANS LE COUDE : %.2f \n'%BCOUD) + echo_mess.append( 'PARTIE DU GRAND AXE DANS L EMBOUT : %.2f \n'%BEMB) # # -- CALCUL DE LA TAILLE DU GRAND AXE FISSURE SUR LA PLAQUE # @@ -190,21 +194,21 @@ def ASCFIS(ALPHA, RM, RC, EP, SUREP, GEOM, AXEA, AXECP = BCOUD + BEMB # if GEOM=='COUDE': - print 'TAILLE GRAND AXE COUDE DONNE : %.2f'%(2.*AXEC) + echo_mess.append( 'TAILLE GRAND AXE COUDE DONNE : %.2f \n'%(2.*AXEC)) elif GEOM=='TUBE': - print 'TAILLE GRAND AXE TUBE DONNE : %.2f'%(2.*AXEC) - print 'TAILLE GRAND AXE PLAQUE DEDUIT : %.2f'%AXECP + echo_mess.append( 'TAILLE GRAND AXE TUBE DONNE : %.2f \n'%(2.*AXEC)) + echo_mess.append( 'TAILLE GRAND AXE PLAQUE DEDUIT : %.2f \n'%AXECP) if NEWT: - print 'METHODE DE NEWTON FISSURE A 45 DEGRES -->' - print 'TAILLE GRAND AXE COUDE RECALCULE : %.2f'%AXECC + echo_mess.append( 'METHODE DE NEWTON FISSURE A 45 DEGRES --> \n') + echo_mess.append( 'TAILLE GRAND AXE COUDE RECALCULE : %.2f \n'%AXECC) if GEOM=='COUDE' and BEMB>0. and BSUP>DIST : SFP = ALPHA*2.*pi*RC/360. - AXECP/2. + BEMB - print 'CORRECTION CENTRE : FISSURE A CHEVAL SUR EMBOUT' - print 'ABSC. CURV. AXIALE CENTRE FISSURE SUR PLAQUE : %.2f'%SFP + echo_mess.append( 'CORRECTION CENTRE : FISSURE A CHEVAL SUR EMBOUT \n') + echo_mess.append( 'ABSC. CURV. AXIALE CENTRE FISSURE SUR PLAQUE : %.2f \n'%SFP) if GEOM=='COUDE' and BEMB>0. and BINF<0. : SFP = + AXECP/2. - BEMB - print 'CORRECTION CENTRE : FISSURE A CHEVAL SUR EMBOUT' - print 'ABSC. CURV. AXIALE CENTRE FISSURE SUR PLAQUE : %.2f'%SFP + echo_mess.append( 'CORRECTION CENTRE : FISSURE A CHEVAL SUR EMBOUT \n') + echo_mess.append( 'ABSC. CURV. AXIALE CENTRE FISSURE SUR PLAQUE : %.2f \n'%SFP) # # -- CORRECTION DU PETIT AXE DE LA FISSURE QUAND CELLE-CI SE TROUVE SUR # LA ZONE DE SUREPAISSEUR @@ -229,10 +233,12 @@ def ASCFIS(ALPHA, RM, RC, EP, SUREP, GEOM, AXEA, # if SUREP!=0.: AXEAP = AXEA * EP / ( EP + MU*SUREP ) - print '--> CORRECTION DUE A LA SUREPAISSEUR' - print '--> TAILLE PETIT AXE PLAQUE : %.2f'%AXEAP + echo_mess.append( '--> CORRECTION DUE A LA SUREPAISSEUR \n' ) + echo_mess.append( '--> TAILLE PETIT AXE PLAQUE : %.2f \n'%AXEAP ) else: AXEAP = AXEA # + texte_final=string.join(echo_mess) + aster.affiche('MESSAGE',texte_final) return AXEAP,AXECP,SFP @@ -254,21 +260,22 @@ def ASCSEP(MCL_SOUS_EPAIS,ALPHA,RM,RC,EP,GEOM,SYME): """ ier=0 CG=pi/180. + echo_mess=['MACR_ASCOUF_MAIL ASCSEP \n',] # # --- BOUCLE SUR L ENSEMBLE DES SOUS-EPAISSEURS # i=0 for ssep in MCL_SOUS_EPAIS : i=i+1 - print '-------------------------------------' - print 'SOUS-EPAISSEUR NUMERO %d'%i - print '-------------------------------------' + echo_mess.append( '-------------------------------------\n') + echo_mess.append( 'SOUS-EPAISSEUR NUMERO %d\n'%i) + echo_mess.append( '-------------------------------------\n') # # --- CAS DES SOUS-EPAISSEURS AXISYMETRIQUES # if ssep['TYPE']=='AXIS': - print 'SOUS-EPAISSEUR AXISYMETRIQUE : ' - print 'CALCUL DE LA TAILLE LONGI ENVELOPPE EN INTRADOS (AZIMUT PI)' + echo_mess.append( 'SOUS-EPAISSEUR AXISYMETRIQUE : \n') + echo_mess.append( 'CALCUL DE LA TAILLE LONGI ENVELOPPE EN INTRADOS (AZIMUT PI)\n') ssep.ICIRP = 2.*pi*RM ssep.ISCP = pi*RM ssep.IPHIC = 180. @@ -284,33 +291,34 @@ def ASCSEP(MCL_SOUS_EPAIS,ALPHA,RM,RC,EP,GEOM,SYME): ssep.ISCP = ssep['POSI_CURV_CIRC']*RM/(RM+EP/2.) AZIMC = ssep.ISCP/RM ssep.IPHIC = ssep['POSI_CURV_CIRC']/(RM+EP/2.)*180./pi - print 'AZIMUT CENTRE SOUS-EPAISSEUR (DEGRES) : %.2f'%ssep.IPHIC + echo_mess.append( 'AZIMUT CENTRE SOUS-EPAISSEUR (DEGRES) : %.2f \n'%ssep.IPHIC) else: ssep.ISCP = ssep['AZIMUT']*pi*RM/180. AZIMC = ssep['AZIMUT']*pi/180. - print 'ABSC. CURV. CIRCONF. CENTRE SOUS-EPAISSEUR SUR COUDE : %.2f'%(AZIMC*(RM+EP/2.)) + echo_mess.append( 'ABSC. CURV. CIRCONF. CENTRE SOUS-EPAISSEUR SUR COUDE : %.2f \n'%(AZIMC*(RM+EP/2.))) # # PASSAGE DANS LE REPERE PLAQUE (0,2PI) AVEC ORIGINE FLANC DROIT # CAR L ORIGINE DES DONNEES CIRCONF. EST EN EXTRADOS # if ssep.ISCP>(3.*pi*RM/2.): ssep.ISCP = ssep.ISCP - 3.*pi*RM/2. else: ssep.ISCP = ssep.ISCP + pi*RM/2. - print 'ABSC. CURV. CIRCONF. CENTRE SOUS-EPAISSEUR SUR PLAQUE : %.2f'%ssep.ISCP + echo_mess.append( 'ABSC. CURV. CIRCONF. CENTRE SOUS-EPAISSEUR SUR PLAQUE : %.2f \n'%ssep.ISCP) # # -- CALCUL DE LA TAILLE CIRCONFERENTIELLE # NB : MESURE FAITE EN PEAU EXTERNE SUR LE COUDE # ssep.ICIRP = ssep['AXE_CIRC']*(RM/(RM+EP/2.)) if ssep.ICIRP>(2.*pi*RM) : - print ' ASCSEP valeur hors domaine' - print ' sous-epaisseur numero : %d'%i - print ' taille axe circonferentiel : %.2f'%ssep.ICIRP - print ' bord plaque : %.2f'%2*pi*RM - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier - print 'TAILLE CIRCONFERENTIELLE SOUS-EPAISSEUR SUR PLAQUE : %.2f'%ssep.ICIRP - print '<=> TAILLE EQUIVALENTE SUR LA CIRCONFERENCE (DEGRES) : %.2f'%(ssep.ICIRP*360./(2.*pi*RM)) + texte_final=string.join(echo_mess) + aster.affiche("MESSAGE",texte_final) + message= ' ASCSEP valeur hors domaine \n' + message=message+' sous-epaisseur numero : %d \n'%i + message=message+' taille axe circonferentiel : %.2f \n'%ssep.ICIRP + message=message+' bord plaque : %.2f \n'%2*pi*RM + UTMESS('F', "MACR_ASCOUF_MAIL", message) + echo_mess.append( 'TAILLE CIRCONFERENTIELLE SOUS-EPAISSEUR SUR PLAQUE : %.2f \n'%ssep.ICIRP) + echo_mess.append( '<=> TAILLE EQUIVALENTE SUR LA CIRCONFERENCE (DEGRES) : %.2f \n'%(ssep.ICIRP*360./(2.*pi*RM))) + # # -- CALCUL COTE AXIALE DU CENTRE SOUS-EPAISSEUR SUR LA PLAQUE # EN FONCTION DE L ABSCISSE CURVILIGNE DONNEE SUR LE COUDE @@ -321,29 +329,29 @@ def ASCSEP(MCL_SOUS_EPAIS,ALPHA,RM,RC,EP,GEOM,SYME): if GEOM=='COUDE': ssep.ISLP = ssep['POSI_CURV_LONGI']/(1.+(RM+EP/2.)/RC*cos(AZIMC)) AZIML = ssep.ISLP/RC - print 'ANGLE COUDE CENTRE SOUS-EPAISSEUR (DEGRES) : %.2f'%(AZIML*180./pi) + echo_mess.append( 'ANGLE COUDE CENTRE SOUS-EPAISSEUR (DEGRES) : %.2f \n'%(AZIML*180./pi)) else : ssep.ISLP = ssep['POSI_CURV_LONGI'] if (SYME in ('QUART','DEMI')) and (ssep.ISLP!=ALPHA*CG*RC/2.) : - print ' ASCSEP cas de symetrie :' - print ' la sous-epaisseur doit etre dans la section mediane du coude !' - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + texte_final=string.join(echo_mess) + aster.affiche("MESSAGE",texte_final) + message= ' ASCSEP cas de symetrie :\n' + message=message+ ' la sous-epaisseur doit etre dans la section mediane du coude !\n' + UTMESS('F', "MACR_ASCOUF_MAIL", message) else : if GEOM=='COUDE': - print 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR COUDE : %.2f'%((ssep.BETA)*CG*(RC+(RM+EP/2.)*cos(AZIMC))) + echo_mess.append( 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR COUDE : %.2f \n'%((ssep.BETA)*CG*(RC+(RM+EP/2.)*cos(AZIMC)))) AZIML = (ssep.BETA)*CG else : - print 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR TUBE : %.2f'%((ssep.BETA)*CG*RC) + echo_mess.append( 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR TUBE : %.2f \n'%((ssep.BETA)*CG*RC) ) ssep.ISLP = (ssep.BETA)*CG*RC if (SYME in ('QUART','DEMI')) and (ssep.BETA!=ALPHA/2.) : - print ' ASCSEP cas de symetrie :' - print ' la sous-epaisseur doit etre dans la section mediane du coude !' - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier - print 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR PLAQUE : %.2f'%ssep.ISLP + texte_final=string.join(echo_mess) + aster.affiche("MESSAGE",texte_final) + message= ' ASCSEP cas de symetrie :\n' + message=message+ ' la sous-epaisseur doit etre dans la section mediane du coude !\n' + UTMESS('F', "MACR_ASCOUF_MAIL", message) + echo_mess.append( 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR PLAQUE : %.2f \n'%ssep.ISLP) # # -- CALCUL DE LA TAILLE LONGITUDINALE # NB : MESURE FAITE EN PEAU EXTERNE SUR LE COUDE @@ -386,12 +394,12 @@ def ASCSEP(MCL_SOUS_EPAIS,ALPHA,RM,RC,EP,GEOM,SYME): ssep.ILONP = BPLAQ+BEMB if BEMB1>0.: ssep.ISLP = ALPHA*CG*RC - ssep.ILONP/2. + BEMB1 - print 'CORRECTION CENTRE : SOUS-EP. A CHEVAL SUR EMBOUT' - print 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR PLAQUE : %.2f'%ssep.ISLP + echo_mess.append( 'CORRECTION CENTRE : SOUS-EP. A CHEVAL SUR EMBOUT \n') + echo_mess.append( 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR PLAQUE : %.2f \n'%ssep.ISLP) if BEMB2>0.: ssep.ISLP = ssep.ILONP/2. - BEMB2 - print 'CORRECTION CENTRE : SOUS-EP. A CHEVAL SUR EMBOUT' - print 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR PLAQUE : %.2f'%ssep.ISLP + echo_mess.append( 'CORRECTION CENTRE : SOUS-EP. A CHEVAL SUR EMBOUT \n') + echo_mess.append( 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR PLAQUE : %.2f \n'%ssep.ISLP) if ssep.ISLP<0. : ssep.ISLP = 0. if (ssep.ISLP>ALPHA*CG*RC) : ssep.ISLP = ALPHA*CG*RC # @@ -399,9 +407,11 @@ def ASCSEP(MCL_SOUS_EPAIS,ALPHA,RM,RC,EP,GEOM,SYME): # ON CORRIGE SA POSITION EN LE METTANT A L INTERFACE SINON CA PLANTE # DANS LA PROC DE MAILLAGE (A AMELIORER) # - print 'TAILLE LONGITUDINALE SOUS-EPAISSEUR SUR PLAQUE : %.2f'%ssep.ILONP - print '<=> TAILLE EQUIVALENTE PAR RAPPORT A L ANGLE DU COUDE (DEGRES): %.2f'%(ssep.ILONP*360/(2*pi*RC)) + echo_mess.append( 'TAILLE LONGITUDINALE SOUS-EPAISSEUR SUR PLAQUE : %.2f \n'%ssep.ILONP) + echo_mess.append( '<=> TAILLE EQUIVALENTE PAR RAPPORT A L ANGLE DU COUDE (DEGRES): %.2f \n'%(ssep.ILONP*360/(2*pi*RC))) # + texte_final=string.join(echo_mess) + aster.affiche('MESSAGE',texte_final) return ier # ------------------------------------------------------------------------------ @@ -426,6 +436,7 @@ def ASCTCI(MCL_SOUS_EPAIS,RM): # # --- tri du tableau des abscisses curvilignes circonf. plaque # + echo_mess=['MACR_ASCOUF_MAIL ASCTCI \n',] TAMPON = [] COORXG = [] COORYG = [] @@ -433,25 +444,25 @@ def ASCTCI(MCL_SOUS_EPAIS,RM): for ssep in MCL_SOUS_EPAIS : i=i+1 if (ssep.ISCP>2.*pi*RM) or (ssep.ISCP<0.) : - print ' valeur hors domaine' - print ' SOUS-EPAISSEUR NUMERO :%d'%MCL_SOUS_EPAIS.index(ssep) - print ' ABSC. CURV. CIRCONF. :%.2f'%ssep.ISCP - print ' BORD PLAQUE :%.2f'%(2.*pi*RM) - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + texte_final=string.join(echo_mess) + aster.affiche("MESSAGE",texte_final) + message= ' valeur hors domaine \n' + message=message+ ' SOUS-EPAISSEUR NUMERO :%d'%MCL_SOUS_EPAIS.index(ssep) + message=message+ ' ABSC. CURV. CIRCONF. :%.2f \n'%ssep.ISCP + message=message+ ' BORD PLAQUE :%.2f \n'%(2.*pi*RM) + UTMESS('F', "MACR_ASCOUF_MAIL", message) TAMPON.append((ssep.ISCP,i)) TAMPON.sort() IABSC1=[] for j in range(i): IABSC1.append(TAMPON[j][1]) - print - print 'TRI DES CENTRES ABSC. CURV. CIRCONF. :' - print '------------------------------------' + echo_mess.append( ' \n') + echo_mess.append( 'TRI DES CENTRES ABSC. CURV. CIRCONF. :\n ') + echo_mess.append( '------------------------------------\n') i=0 for ssep in TAMPON : i=i+1 - print '%d) SOUS-EP NO %d <> XC = %.2f'%(i,ssep[1],ssep[0]) + echo_mess.append( '%d) SOUS-EP NO %d <> XC = %.2f \n'%(i,ssep[1],ssep[0]) ) # # --- calcul des abcisses droites et gauches des sous-epaisseurs # @@ -475,15 +486,17 @@ def ASCTCI(MCL_SOUS_EPAIS,RM): IABSC2=[] for j in range(2*len(MCL_SOUS_EPAIS)): IABSC2.append(TAMPON[j][1]) - print - print 'TRI DES INTERVALLES G ET D ABSC. CURV. CIRCONF. :' - print '-----------------------------------------------' + echo_mess.append( '\n') + echo_mess.append( 'TRI DES INTERVALLES G ET D ABSC. CURV. CIRCONF. :\n') + echo_mess.append( '-----------------------------------------------\n' ) for j in range(2*len(MCL_SOUS_EPAIS)): if fmod(IABSC2[j],2): - print '%d) SOUS-EP NO %d <> XG = %.2f'%(j+1,IABSC1[IABSC2[j]/2],TAMPON[j][0]) + echo_mess.append( '%d) SOUS-EP NO %d <> XG = %.2f \n'%(j+1,IABSC1[IABSC2[j]/2],TAMPON[j][0])) else: - print '%d) SOUS-EP NO %d <> XD = %.2f'%(j+1,IABSC1[IABSC2[j]/2-1],TAMPON[j][0]) + echo_mess.append( '%d) SOUS-EP NO %d <> XD = %.2f \n'%(j+1,IABSC1[IABSC2[j]/2-1],TAMPON[j][0])) # + texte_final=string.join(echo_mess) + aster.affiche('MESSAGE',texte_final) return TAMPON,IABSC1,IABSC2,COORXD,COORXG # ------------------------------------------------------------------------------ @@ -511,31 +524,32 @@ def ASCTLO(MCL_SOUS_EPAIS,RC,ALPHA,LTCHAR,LTCLIM): # # tri du tableau des abscisses curvilignes axiales plaque # + echo_mess=['MACR_ASCOUF_MAIL ASCTLO \n',] ALPHAR = 2.*ALPHA*pi/360. TAMPON = [] i=0 for ssep in MCL_SOUS_EPAIS : i=i+1 if (ssep.ISLP>ALPHAR*RC) or (ssep.ISLP<0.) : - print ' valeur hors domaine' - print ' SOUS-EPAISSEUR NUMERO :%d'%MCL_SOUS_EPAIS.index(ssep) - print ' ABSC. CURV. LONGIT. :%.2f'%ssep.ISLP - print ' BORDS PLAQUE :%.2f'%(ALPHAR*RC) - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + texte_final=string.join(echo_mess) + aster.affiche("MESSAGE",texte_final) + message= ' valeur hors domaine \n' + message=message+ ' SOUS-EPAISSEUR NUMERO :%d \n'%MCL_SOUS_EPAIS.index(ssep) + message=message+ ' ABSC. CURV. LONGIT. :%.2f \n'%ssep.ISLP + message=message+ ' BORDS PLAQUE :%.2f \n'%(ALPHAR*RC) + UTMESS('F', "MACR_ASCOUF_MAIL", message) TAMPON.append((ssep.ISLP,i)) TAMPON.sort() IORDO1=[] for j in range(i): IORDO1.append(TAMPON[j][1]) - print - print 'TRI DES CENTRES ABSC. CURV. LONGIT. :' - print '------------------------------------' + echo_mess.append( '\n') + echo_mess.append( 'TRI DES CENTRES ABSC. CURV. LONGIT. : \n') + echo_mess.append( '------------------------------------ \n') i=0 for ssep in TAMPON : i=i+1 - print '%d) SOUS-EP NO %d <> YC = %.2f'%(i,ssep[1],ssep[0]) + echo_mess.append( '%d) SOUS-EP NO %d <> YC = %.2f \n'%(i,ssep[1],ssep[0])) # # calcul des abscisses sup. et inf. des sous-ep. # @@ -553,21 +567,21 @@ def ASCTLO(MCL_SOUS_EPAIS,RC,ALPHA,LTCHAR,LTCLIM): YI=ALPHAR*RC-(MCL_SOUS_EPAIS[bid[1]-1].ILONP-(MCL_SOUS_EPAIS[bid[1]-1]['AXE_LONGI'])/2.) YS=ALPHAR*RC+(MCL_SOUS_EPAIS[bid[1]-1]['AXE_LONGI'])/2. if YI<(-LTCHAR): - print ' valeur hors domaine' - print ' SOUS-EPAISSEUR NUMERO :',bid[1] - print ' BORD INFERIEUR :',YI - print ' BORD PLAQUE :',-LTCHAR - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + texte_final=string.join(echo_mess) + aster.affiche("MESSAGE",texte_final) + message= ' valeur hors domaine \n' + message=message+ ' SOUS-EPAISSEUR NUMERO :%d \n'%bid[1] + message=message+ ' BORD INFERIEUR :%.2f \n'%YI + message=message+ ' BORDS PLAQUE :%.2f \n'%(-1*LTCHAR) + UTMESS('F', "MACR_ASCOUF_MAIL", message) if YS>(ALPHAR*RC+LTCLIM): - print ' valeur hors domaine' - print ' SOUS-EPAISSEUR NUMERO :',bid[1] - print ' BORD INFERIEUR :',YS - print ' BORD PLAQUE :',ALPHAR*RC+LTCLIM - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + texte_final=string.join(echo_mess) + aster.affiche("MESSAGE",texte_final) + message= ' valeur hors domaine \n' + message=message+ ' SOUS-EPAISSEUR NUMERO :%d \n'%bid[1] + message=message+ ' BORD INFERIEUR :%.2f \n'%YI + message=message+ ' BORDS PLAQUE :%.2f \n'%(ALPHAR*RC+LTCLIM) + UTMESS('F', "MACR_ASCOUF_MAIL", message) COORYI.append(YI) COORYS.append(YS) # @@ -581,15 +595,17 @@ def ASCTLO(MCL_SOUS_EPAIS,RC,ALPHA,LTCHAR,LTCLIM): IORDO2=[] for j in range(2*len(MCL_SOUS_EPAIS)): IORDO2.append(TAMPON[j][1]) - print - print 'TRI DES INTERVALLES I ET S ABSC. CURV. LONGIT. :' - print '-----------------------------------------------' + echo_mess.append( '\n') + echo_mess.append( 'TRI DES INTERVALLES I ET S ABSC. CURV. LONGIT. : \n') + echo_mess.append( '----------------------------------------------- \n') for j in range(2*len(MCL_SOUS_EPAIS)): if fmod(IORDO2[j],2): - print '%d) SOUS-EP NO %d <> YI = %.2f'%(j+1,IORDO1[IORDO2[j]/2],TAMPON[j][0]) + echo_mess.append( '%d) SOUS-EP NO %d <> YI = %.2f \n'%(j+1,IORDO1[IORDO2[j]/2],TAMPON[j][0])) else: - print '%d) SOUS-EP NO %d <> YS = %.2f'%(j+1,IORDO1[IORDO2[j]/2-1],TAMPON[j][0]) + echo_mess.append( '%d) SOUS-EP NO %d <> YS = %.2f \n'%(j+1,IORDO1[IORDO2[j]/2-1],TAMPON[j][0])) # + texte_final=string.join(echo_mess) + aster.affiche('MESSAGE',texte_final) return TAMPON,IORDO1,IORDO2,COORYI,COORYS # # @@ -630,9 +646,10 @@ def ASCNBE(MCL_SOUS_EPAIS,COORXG,COORXD,COORYI,COORYS,BD,BG,BS,BI,DNX,DNY,RM,RC, # # calcul du nombre d'elements longi. et circonf. dans les sous-epaisseurs: # - print - print 'DETERMINATION DU NOMBRE D''ELEMENTS DANS LES SOUS-EPAISSEURS :' - print '------------------------------------------------------------' + echo_mess=['MACR_ASCOUF_MAIL ASCNBE \n',] + echo_mess.append( '\n') + echo_mess.append( 'DETERMINATION DU NOMBRE D''ELEMENTS DANS LES SOUS-EPAISSEURS :\n') + echo_mess.append( '------------------------------------------------------------\n') NLX=[0]*len(MCL_SOUS_EPAIS) NLY=[0]*len(MCL_SOUS_EPAIS) for j in range(len(BD)): @@ -649,7 +666,7 @@ def ASCNBE(MCL_SOUS_EPAIS,COORXG,COORXD,COORYI,COORYS,BD,BG,BS,BI,DNX,DNY,RM,RC, if ((COORXG[l]=COORXG[l] and BD[j]<=COORXD[l])\ or (COORXG[l]>=COORXD[l] and (BG[j]<=COORXG[l] or BD[j]>=COORXD[l]))): NLX[i]=NLX[i]+NBEL - print 'SOUS-EP NO %d ZONE CIRC. NO %d NB ELEM. = %d'%(i+1,j+1,NBEL) + echo_mess.append( 'SOUS-EP NO %d ZONE CIRC. NO %d NB ELEM. = %d \n'%(i+1,j+1,NBEL)) for j in range(len(BS)): if INDSEY[j]!=0: @@ -665,13 +682,15 @@ def ASCNBE(MCL_SOUS_EPAIS,COORXG,COORXD,COORYI,COORYS,BD,BG,BS,BI,DNX,DNY,RM,RC, l=IORDO1[i]-1 if (BI[j]>=COORYI[l] and BS[j]<=COORYS[l]): NLY[i]=NLY[i]+NBEL - print 'SOUS-EP NO %d ZONE LONGI. NO %d NB ELEM. = %d'%(i+1,j+1,NBEL) + echo_mess.append( 'SOUS-EP NO %d ZONE LONGI. NO %d NB ELEM. = %d \n'%(i+1,j+1,NBEL) ) for j in range(len(NLX)): - print 'SOUS-EP NO %d NBE TOTAL ELEMENTS CIRCONF. : %d'%(j+1,NLX[j]) - print 'SOUS-EP NO %d NBE TOTAL ELEMENTS LONGI. : %d'%(j+1,NLY[j]) + echo_mess.append( 'SOUS-EP NO %d NBE TOTAL ELEMENTS CIRCONF. : %d \n'%(j+1,NLX[j])) + echo_mess.append( 'SOUS-EP NO %d NBE TOTAL ELEMENTS LONGI. : %d \n'%(j+1,NLY[j])) # + texte_final=string.join(echo_mess) + aster.affiche('MESSAGE',texte_final) return NLX,NLY # ################################################################################ @@ -702,6 +721,7 @@ def ASCNBE(MCL_SOUS_EPAIS,COORXG,COORXD,COORYI,COORYS,BD,BG,BS,BI,DNX,DNY,RM,RC, # ------------------------------------------------------------------------------ def ASCSYM(MCL_SOUS_EPAIS,RM,RC,ALPHA,LTCHAR,LTCLIM): ier=0 + echo_mess=['MACR_ASCOUF_MAIL ASCSYM \n',] DERAFC = 18. DERAFL = 5. INDSEX = [] @@ -777,18 +797,18 @@ def ASCSYM(MCL_SOUS_EPAIS,RM,RC,ALPHA,LTCHAR,LTCLIM): INDSEX.append(1) - print - print 'ZONES APRES RECOUVREMENT ABSC. CURV. CIRCONF. :' - print '---------------------------------------------' + echo_mess.append( '\n') + echo_mess.append( 'ZONES APRES RECOUVREMENT ABSC. CURV. CIRCONF. :\n') + echo_mess.append( '--------------------------------------------- \n') EPS=0.000000000001 NZONEX=len(BG) for j in range(NZONEX) : if ( fabs(BG[j]) < EPS ) and ( fabs(BD[j]) < EPS ) : - print 'ZONE NO %d BORNE GAUCHE = %.2f'\ - ' / BORNE DROITE = %.2f * SOUS-EPAISSEUR'%(j+1,BG[j],BD[j]) + echo_mess.append( 'ZONE NO %d BORNE GAUCHE = %.2f'\ + ' / BORNE DROITE = %.2f * SOUS-EPAISSEUR \n'%(j+1,BG[j],BD[j]) ) else: - print 'ZONE NO %d BORNE GAUCHE = %.2f'\ - ' / BORNE DROITE = %.2f'%(j+1,BG[j],BD[j]) + echo_mess.append( 'ZONE NO %d BORNE GAUCHE = %.2f \n'\ + ' / BORNE DROITE = %.2f \n'%(j+1,BG[j],BD[j])) # tri des donnees sous-epaisseurs en axial @@ -816,22 +836,24 @@ def ASCSYM(MCL_SOUS_EPAIS,RM,RC,ALPHA,LTCHAR,LTCLIM): DNY.append(0) INDSEY.append(0) INDSEY.append(1) - print - print 'ZONES APRES RECOUVREMENT ABSC. CURV. LONGIT. :' - print '-----------------------------------------------' + echo_mess.append( '\n') + echo_mess.append( 'ZONES APRES RECOUVREMENT ABSC. CURV. LONGIT. : \n') + echo_mess.append( '----------------------------------------------- \n') NZONEY=len(BI) for j in range(NZONEY) : if ( fabs(BI[j]) < EPS ) and ( fabs(BS[j]) < EPS ) : - print 'ZONE NO %d <> BORNE INF. = %.2f'\ - ' / BORNE SUP. = %.2f * SOUS-EPAISSEUR'%(j+1,BI[j],BS[j]) + echo_mess.append( 'ZONE NO %d <> BORNE INF. = %.2f \n'\ + ' / BORNE SUP. = %.2f * SOUS-EPAISSEUR'%(j+1,BI[j],BS[j])) else: - print 'ZONE NO %d <> BORNE INF. = %.2f'\ - ' / BORNE SUP. = %.2f'%(j+1,BI[j],BS[j]) + echo_mess.append( 'ZONE NO %d <> BORNE INF. = %.2f \n'\ + ' / BORNE SUP. = %.2f'%(j+1,BI[j],BS[j])) # calcul du nombre d'elements longi. et circonf. dans les soue-ep NLX,NLY=ASCNBE(MCL_SOUS_EPAIS,COORXG,COORXD,COORYI,COORYS,BD,BG,BS,BI, DNX,DNY,RM,RC,INDSEX,INDSEY,IABSC1,IORDO1) + texte_final=string.join(echo_mess) + aster.affiche('MESSAGE',texte_final) return ier,NLX,NLY,NZONEX,NZONEY,BG,BD,BI,BS,INDBG,INDBD,INDBI,INDBS,DNX,DNY ################################################################################ ################################################################################ @@ -861,12 +883,13 @@ def ASCSYM(MCL_SOUS_EPAIS,RM,RC,ALPHA,LTCHAR,LTCLIM): # ------------------------------------------------------------------------------ def ASCPRE(MCL_SOUS_EPAIS,RM,RC,ALPHA,SYME,LTCHAR,LTCLIM): ier=0 + echo_mess=['MACR_ASCOUF_MAIL ASCPRE \n',] ALPHAR = 2.*ALPHA*pi/360. DERAFC = 18. DERAFL = 5. EPSI = 0.001 NBSEP = len(MCL_SOUS_EPAIS) - print 'RECHERCHE DES ZONES DE SOUS-EPAISSEURS DANS LE COUDE\n' + echo_mess.append( 'RECHERCHE DES ZONES DE SOUS-EPAISSEURS DANS LE COUDE\n' ) # tri des donnees sous-epaisseurs en circonferentiel TAMPON,IABSC1,IABSC2,COORXD,COORXG=ASCTCI(MCL_SOUS_EPAIS,RM) @@ -1112,16 +1135,16 @@ def ASCPRE(MCL_SOUS_EPAIS,RM,RC,ALPHA,SYME,LTCHAR,LTCLIM): # un centre de sous-ep. if fabs(BG[NZONEX-1]-BD[NZONEX-1]) BORNE GAUCHE = %.2f'\ - ' / BORNE DROITE = %.2f * SOUS-EPAISSEUR'%(BG[j],BD[j]) + echo_mess.append( 'ZONE NO %d <> BORNE GAUCHE = %.2f \n'\ + ' / BORNE DROITE = %.2f * SOUS-EPAISSEUR'%(j+1,BG[j],BD[j])) else: - print 'ZONE NO',j+1,'<> BORNE GAUCHE = %.2f'\ - ' / BORNE DROITE = %.2f'%(BG[j],BD[j]) + echo_mess.append( 'ZONE NO %d <> BORNE GAUCHE = %.2f \n'\ + ' / BORNE DROITE = %.2f'%(j+1,BG[j],BD[j])) # --- tri des donnees sous-ep. en axial @@ -1375,24 +1398,27 @@ def ASCPRE(MCL_SOUS_EPAIS,RM,RC,ALPHA,SYME,LTCHAR,LTCLIM): INDSEY.append(0) else:pass - print - print 'ZONES APRES RECOUVREMENT ABSC. CURV. LONGIT. :' - print '-----------------------------------------------' + echo_mess.append( '\n') + echo_mess.append( 'ZONES APRES RECOUVREMENT ABSC. CURV. LONGIT. :\n') + echo_mess.append( '----------------------------------------------- \n') for j in range(NZONEY) : if INDBI[j]==0 and INDBS[j]==0 : - print 'ZONE NO',j+1,'<> BORNE INF. = %.2f'\ - ' / BORNE SUP. = %.2f * SOUS-EPAISSEUR'%(BI[j],BS[j]) + echo_mess.append( 'ZONE NO %d <> BORNE INF. = %.2f \n'\ + ' / BORNE SUP. = %.2f * SOUS-EPAISSEUR'%(j+1,BI[j],BS[j])) else: - print 'ZONE NO',j+1,'<> BORNE INF. = %.2f'\ - ' / BORNE SUP. = %.2f '%(BI[j],BS[j]) + echo_mess.append( 'ZONE NO %d <> BORNE INF. = %.2f \n'\ + ' / BORNE SUP. = %.2f '%(j+1,BI[j],BS[j])) # calcul du nombre d'elements longi. et circonf. dans les sous-ep NLX,NLY=ASCNBE(MCL_SOUS_EPAIS,COORXG,COORXD,COORYI,COORYS,BD,BG,BS,BI, DNX,DNY,RM,RC,INDSEX,INDSEY,IABSC1,IORDO1) + texte_final=string.join(echo_mess) + aster.affiche('MESSAGE',texte_final) return ier,NLX,NLY,NZONEX,NZONEY,BG,BD,BI,BS,INDBG,INDBD,INDBI,INDBS,DNX,DNY + ################################################################################ ################################################################################ ################################################################################ @@ -1458,8 +1484,7 @@ def write_file_dgib_ASCFDO(nomFichierDATG,RM,RC,ALPHA,NBTRAN,EP1,EP2,EPI,TETA1, texte=texte+'nivmag = '+str(NIVMAG) +POIVIR texte=texte+'*\n' texte=texte+'* FIN PARAMETRES UTILISATEUR\n' - texte=texte+'opti donn ' - texte=texte+"'"+loc_datg+'ascouf_fiss_v4.datg'+"';\n" + texte = texte + open(os.path.join(loc_datg, 'ascouf_fiss_v4.datg'), 'r').read() fdgib=open(nomFichierDATG,'w') fdgib.write(texte) fdgib.close() @@ -1576,8 +1601,7 @@ def write_file_dgib_ASCSQO(nomFichierDATG,TYPELE,RM,RC,ALPHA,NBTRAN,EP1,EP2, texte=texte+" sousep . 1 = 'non'"+POIVIR texte=texte+'*\n' texte=texte+'* FIN PARAMETRES UTILISATEUR \n' - texte=texte+'opti donn ' - texte=texte+"'"+loc_datg+'ascouf_ssep_mono_v1.datg'+"'"+POIVIR + texte = texte + open(os.path.join(loc_datg, 'ascouf_ssep_mono_v1.datg'), 'r').read() fdgib=open(nomFichierDATG,'w') fdgib.write(texte) fdgib.close() @@ -1718,8 +1742,7 @@ def write_file_dgib_ASCSP1(nomFichierDATG,TYPELE,MCL_SOUS_EPAIS,NIVMAG,loc_datg) texte=texte+'axisym = table '+POIVIR texte=texte+'sousep = table '+POIVIR texte=texte+'* \n' - texte=texte+'opti donn ' - texte=texte+"'"+loc_datg+'ascouf_ssep_mult_v1.datg'+"';\n" + texte = texte + open(os.path.join(loc_datg, 'ascouf_ssep_mult_v1.datg'), 'r').read() fdgib=open(nomFichierDATG,'w') fdgib.write(texte) fdgib.close() @@ -1987,8 +2010,7 @@ def write_file_dgib_ASCRDO(nomFichierDATG,TYPELE,NIVMAG,TYPBOL,ALPHA,RC,RM,EP,SU texte=texte+'nzgv = '+str(NZGV) +POIVIR texte=texte+'*\n' texte=texte+'* FIN PARAMETRES UTILISATEUR\n' - texte=texte+'opti donn ' - texte=texte+"'"+loc_datg+'ascouf_regl_v1.datg'+"';\n" + texte = texte + open(os.path.join(loc_datg, 'ascouf_regl_v1.datg'), 'r').read() fdgib=open(nomFichierDATG,'w') fdgib.write(texte) fdgib.close() @@ -2063,13 +2085,11 @@ def macr_ascouf_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,COUDE, else: NBTRAN = 1 if COUDE['SYME']!='ENTIER': - print ' les quart et demi structure' - print ' ne peuvent etre realisees ' - print ' sur un modele comportant une transition ' - print ' d epaisseur ' - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' les quart et demi structure \n' + message=message+' ne peuvent etre realisees \n' + message=message+' sur un modele comportant une transition \n' + message=message+' d epaisseur \n' + UTMESS('F', "MACR_ASCOUF_MAIL", message) # DEXT = COUDE['DEXT_T1'] EP1 = COUDE['EPAIS_T1'] @@ -2094,31 +2114,29 @@ def macr_ascouf_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,COUDE, E = EP1 # if COUDE['SYME']!='ENTIER' and (LTCHAR!=LTCLIM) : - print ' les deux embouts doivent etre' - print ' de meme longueur pour les cas de symetrie ' - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' les deux embouts doivent etre \n' + message=message+' de meme longueur pour les cas de symetrie \n' + UTMESS('F', "MACR_ASCOUF_MAIL", message) # LAMOR = 3.0/2.0 * sqrt( RM*RM*RM / EP1) if LTCHAR longueur d embout P1 inferieure' - print ' a la longueur d amortissement = ',LAMOR - print ' alarme' + message= ' longueur d embout P1 inferieure \n' + message=message+' a la longueur d amortissement = %.2f \n'%LAMOR + UTMESS('A', "MACR_ASCOUF_MAIL", message) # LAMOR = 3.0/2.0 * sqrt( RM2*RM2*RM2 / EP2) if LTCLIM longueur d embout P2 inferieure' - print ' a la longueur d amortissement = ',LAMOR - print ' alarme' + message= ' longueur d embout P2 inferieure \n' + message=message+' a la longueur d amortissement = %.2f \n'%LAMOR + UTMESS('A', "MACR_ASCOUF_MAIL", message) # if TYPBOL!=None: if TYPBOL[:1]=='GV' : - print ' la condition aux limites raccord' - print ' 3d-poutre appliquee avec la macro de calcul' - print ' ascouf n est pas licite avec un embout' - print ' de type conique' - print ' alarme' + message= ' la condition aux limites raccord \n' + message=message+' 3d-poutre appliquee avec la macro de calcul \n ' + message=message+' ascouf n est pas licite avec un embout \n' + message=message+' de type conique \n' + UTMESS('A', "MACR_ASCOUF_MAIL", message) # ################################################################################ # --- caracteristiques de la fissure --- @@ -2126,23 +2144,21 @@ def macr_ascouf_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,COUDE, # if FISS_COUDE!=None: if NBEP!=3: - print ' le nombre d elements dans l epaisseur' - print ' du coude n est pas parametrable pour' - print ' un coude avec fissure' - print ' mot-cle NB_ELEM_EPAIS ignore' - print ' alarme' + message= ' le nombre d elements dans l epaisseur \n' + message=message+' du coude n est pas parametrable pour \n' + message=message+' un coude avec fissure \n' + message=message+' mot-cle NB_ELEM_EPAIS ignore \n' + UTMESS('A', "MACR_ASCOUF_MAIL", message) FPROF = FISS_COUDE['PROFONDEUR'] FAXI = FISS_COUDE['AXIS'] if FAXI=='NON' and FISS_COUDE['LONGUEUR']==None : - print ' pour les fissures non axisymetriques' - print ' la longueur doit etre specifiee ' - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' pour les fissures non axisymetriques \n' + message=message+' la longueur doit etre specifiee \n' + UTMESS('F', "MACR_ASCOUF_MAIL", message) if FAXI=='OUI' and FISS_COUDE['LONGUEUR']!=None : - print ' la fissure est axisymetrique : on ne' - print ' tient pas compte de la longueur specifiee' - print ' alarme' + message= ' la fissure est axisymetrique : on ne \n' + message=message+' tient pas compte de la longueur specifiee \n' + UTMESS('A', "MACR_ASCOUF_MAIL", message) if FISS_COUDE['LONGUEUR']!=None : FLONG = FISS_COUDE['LONGUEUR'] if FAXI=='OUI' : #### on prend une marge de securite a cause des modifs dans ascfis @@ -2174,30 +2190,22 @@ def macr_ascouf_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,COUDE, DGAXEC = FLONG/2.0 DC = DGAXEC if ORIEN!=90.0 and NBTRAN!=0 : - print ' avec une transition d epaisseur' - print ' la fissure doit obligatoirement etre transverse ' - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' avec une transition d epaisseur \n' + message=message+' la fissure doit obligatoirement etre transverse \n' + UTMESS('F', "MACR_ASCOUF_MAIL", message) if ORIEN!=90.0 and NBTRAN!=0 : - print ' avec une transition d epaisseur' - print ' la fissure doit obligatoirement etre transverse ' - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' avec une transition d epaisseur \n' + message=message+' la fissure doit obligatoirement etre transverse \n' + UTMESS('F', "MACR_ASCOUF_MAIL", message) if ORIEN!=90.0 and COUDE['SYME']!='ENTIER' : - print ' l orientation de la fissure doit' - print ' etre transverse (orien : 90.) pour modeliser ' - print ' un quart ou une demi structure ' - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' l orientation de la fissure doit \n' + message=message+' etre transverse (orien : 90.) pour modeliser \n' + message=message+' un quart ou une demi structure \n' + UTMESS('F', "MACR_ASCOUF_MAIL", message) if ORIEN!=90.0 and FAXI=='OUI' : - print ' la fissure est axisymetrique : son' - print ' orientation doit etre transverse (ORIEN : 90.)' - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' la fissure est axisymetrique : son \n' + message=message+' orientation doit etre transverse (ORIEN : 90.) \n' + UTMESS('F', "MACR_ASCOUF_MAIL", message) # ################################################################################ # --- caracteristiques des sous epaisseurs --- @@ -2208,92 +2216,72 @@ def macr_ascouf_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,COUDE, if SOUS_EPAIS_MULTI!=None : MCL_SOUS_EPAIS = SOUS_EPAIS_MULTI if SOUS_EPAIS_COUDE!=None : MCL_SOUS_EPAIS = SOUS_EPAIS_COUDE if SOUS_EPAIS_MULTI!=None and NBTRAN!=0 : - print ' il ne peut pas y avoir plusieurs' - print ' sous-epaisseurs en meme temps qu une' - print ' transition d epaisseur : si une seule' - print ' sous-epaisseur utiliser sous_epais_coude' - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' il ne peut pas y avoir plusieurs \n' + message=message+' sous-epaisseurs en meme temps qu une \n' + message=message+' transition d epaisseur : si une seule \n' + message=message+' sous-epaisseur utiliser sous_epais_coude \n' + UTMESS('F', "MACR_ASCOUF_MAIL", message) if SOUS_EPAIS_COUDE!=None and FISS_COUDE!=None and NBTRAN!=0 : - print ' avec une transition d epaisseur' - print ' il doit obligatoirement y avoir un defaut' - print ' soit une fissure soit une sous-epaisseur' - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' avec une transition d epaisseur' + message=message+' il doit obligatoirement y avoir un defaut \n' + message=message+' soit une fissure soit une sous-epaisseur \n' + UTMESS('F', "MACR_ASCOUF_MAIL", message) if MCL_SOUS_EPAIS!=None : AZIM = 90.0 if MCL_SOUS_EPAIS.__class__.__name__ !='MCList' : MCL_SOUS_EPAIS=[MCL_SOUS_EPAIS,] if len(MCL_SOUS_EPAIS)!=1 and COUDE['SYME']!='ENTIER' : - print ' ne modeliser qu une seule' - print ' sous-epaisseur pour un quart ou demi-coude' - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' ne modeliser qu une seule \n' + message=message+' sous-epaisseur pour un quart ou demi-coude\n ' + UTMESS('F', "MACR_ASCOUF_MAIL", message) for ssep in MCL_SOUS_EPAIS : isep=isep+1 if ssep['AXE_CIRC']!=None and ssep['TYPE']=='AXIS' : - print ' vous ne pouvez declarer la sous-' - print ' epaisseur comme axisymetrique et donner' - print ' une taille d axe circonferentiel' - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' vous ne pouvez declarer la sous- \n' + message=message+' epaisseur comme axisymetrique et donner \n' + message=message+' une taille d axe circonferentiel \n' + UTMESS('F', "MACR_ASCOUF_MAIL", message) if ssep['AXE_CIRC']==None and ssep['TYPE']=='ELLI' : - print ' vous devez donner une taille d axe' - print ' circonferentiel pour une sous-epaisseur de' - print ' type elliptique' - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' vous devez donner une taille d axe \n' + message=message+' circonferentiel pour une sous-epaisseur de \n' + message=message+' type elliptique \n' + UTMESS('F', "MACR_ASCOUF_MAIL", message) if ssep['POSI_CURV_LONGI']!=None: if ssep['POSI_CURV_LONGI']>(ALPHA*RC*pi/180.0) : - print ' valeur hors domaine de validite' - print ' sous-epaisseur numero :',isep - print ' abscisse curv. longit. :',ssep['POSI_CURV_LONGI'] - print ' valeur maximale autorisee :',(ALPHA*RC*pi/180.0) - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' valeur hors domaine de validite \n' + message=message+' sous-epaisseur numero : %d \n'%isep + message=message+' abscisse curv. longit. : %.2f \n'%ssep['POSI_CURV_LONGI'] + message=message+' valeur maximale autorisee : %.2f \n'%(ALPHA*RC*pi/180.0) + UTMESS('F', "MACR_ASCOUF_MAIL", message) LDEFAU = ssep['POSI_CURV_LONGI'] + ssep['AXE_LONGI']/2.0 BETA = 0.0 else: BETA=ssep['POSI_ANGUL'] if (BETA<0.) or (BETA>ALPHA) : - print ' valeur hors domaine de validite' - print ' sous-epaisseur numero :',isep - print ' position angulaire centre sous-ep :',BETA - print ' valeur limite autorisee :',ALPHA - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' valeur hors domaine de validite \n' + message=message+' sous-epaisseur numero : %d \n'%isep + message=message+' position angulaire centre sous-ep : %.2f \n'%BETA + message=message+' valeur limite autorisee : %.2f \n'%ALPHA + UTMESS('F', "MACR_ASCOUF_MAIL", message) LDEFAU = (BETA*RC*pi/180.0) + ssep['AXE_LONGI']/2.0 # if ssep['POSI_CURV_CIRC']!=None: if ssep['POSI_CURV_CIRC']>(2*pi*RM) : - print ' valeur hors domaine de validite' - print ' sous-epaisseur numero :',isep - print ' abscisse curv. circonf. :',ssep['POSI_CURV_CIRC'] - print ' valeur maximale autorisee :',(2*pi*RM) - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' valeur hors domaine de validite \n' + message=message+' sous-epaisseur numero : %d \n'%isep + message=message+' abscisse curv. circonf. : %.2f \n'%ssep['POSI_CURV_CIRC'] + message=message+' valeur limite autorisee : %.2f \n'%(2*pi*RM) + UTMESS('F', "MACR_ASCOUF_MAIL", message) if ssep['POSI_CURV_CIRC']!=(pi*RM) and ssep['TYPE']=='AXIS': - print ' le centre d une sous-epaisseur' - print ' axisymetrique est impose en intrados (pi*RM)' - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' le centre d une sous-epaisseur \n' + message=message+' axisymetrique est impose en intrados (pi*RM) \n' + UTMESS('F', "MACR_ASCOUF_MAIL", message) else: ssep.IPHIC=ssep['AZIMUT'] if ssep['AZIMUT']!=180. and ssep['TYPE']=='AXIS': - print ' le centre d une sous-epaisseur' - print ' axisymetrique est impose en intrados' - print ' l azimut est fixe a 180 degres' - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' le centre d une sous-epaisseur \n' + message=message+' axisymetrique est impose en intrados \n' + message=message+' l azimut est fixe a 180 degres \n' + UTMESS('F', "MACR_ASCOUF_MAIL", message) # l_ITYPE.append(ssep['TYPE' ]) # l_ICIRC.append(ssep['AXE_CIRC' ]) # l_ILONC.append(ssep['AXE_LONGI' ]) @@ -2309,11 +2297,11 @@ def macr_ascouf_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,COUDE, # l_IEVID.append(ssep['EMPREINTE' ]) if SOUS_EPAIS_COUDE!=None and COUDE['NB_ELEM_EPAIS']!=3 : - print ' le nombre d elements dans l' - print ' epaisseur du coude n est pas parametrable pour' - print ' la version 2 de la procedure de plaque avec sous' - print ' -epaisseur : mot-cle NB_ELEM_EPAIS ignore' - print ' alarme' + message= ' le nombre d elements dans l \n' + message=message+' epaisseur du coude n est pas parametrable pour \n' + message=message+' la version 2 de la procedure de plaque avec sous \n' + message=message+' -epaisseur : mot-cle NB_ELEM_EPAIS ignore \n' + UTMESS('A', "MACR_ASCOUF_MAIL", message) # ################################################################################ # --- verifications de coherences --- @@ -2322,50 +2310,38 @@ def macr_ascouf_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,COUDE, # donnees globales if COUDE['TRANSFORMEE']=='COUDE' or COUDE['TRAN_EPAIS']=='NON' : if SUREP<0. or SUREP>(RM-EP1/2.0): - print ' valeur hors domaine de validite' - print ' surepaisseur :',SUREP - print ' valeur limite autorisee (RM-EP1/2) :',(RM-EP1/2.0) - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' valeur hors domaine de validite \n' + message=message+' surepaisseur : \n',SUREP + message=message+' valeur limite autorisee (RM-EP1/2) : %.2f \n'%(RM-EP1/2.0) + UTMESS('F', "MACR_ASCOUF_MAIL", message) if RC<=(RM+EP1/2.0): - print ' valeur hors domaine de validite' - print ' le rayon de cintrage :',RC - print ' doit etre superieur a (RM+EP1/2) :',(RM+EP1/2.0) - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' valeur hors domaine de validite \n' + message=message+' le rayon de cintrage : %.2f \n',RC + message=message+' doit etre superieur a (RM+EP1/2) : %.2f \n'%(RM+EP1/2.0) + UTMESS('F', "MACR_ASCOUF_MAIL", message) # # coude fissure # if FISS_COUDE!=None: if (RM/EP1)<5. or (RM/EP1)>50.: - print ' valeur hors domaine de validite (5,50)' - print ' rapport RM/EP1 :',(RM/EP1) - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' valeur hors domaine de validite (5,50) \n' + message=message+' rapport RM/EP1 : %.2f \n'%(RM/EP1) + UTMESS('F', "MACR_ASCOUF_MAIL", message) if FISS_COUDE['ABSC_CURV']!=None: if SF<0. or SF>(ALPHA*RC*pi/180.0) : - print ' valeur hors domaine de validite' - print ' abscisse curviligne centre fissure :',SF - print ' valeur limite autorisee :',(ALPHA*RC*pi/180.0) - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' valeur hors domaine de validite \n' + message=message+' abscisse curviligne centre fissure : %.2f \n'%SF + message=message+' valeur limite autorisee : %.2f \n'%(ALPHA*RC*pi/180.0) + UTMESS('F', "MACR_ASCOUF_MAIL", message) if (NT-2*(NT/2))!=0: - print ' valeur hors domaine de validite' - print ' nombre de tranches :',NT - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' valeur hors domaine de validite \n' + message=message+' nombre de tranches : %d \n'%NT + UTMESS('F', "MACR_ASCOUF_MAIL", message) if FISS_COUDE['ABSC_CURV'] and ((BETA<0.) or (BETA>ALPHA)): - print ' valeur hors domaine de validite' - print ' position angulaire centre fissure :',BETA - print ' posi_angul doit etre >= 0 et <= ',ALPHA - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' valeur hors domaine de validite \n' + message=message+' position angulaire centre fissure : %.2f \n'%BETA + message=message+' posi_angul doit etre >= 0 et <= %.2f \n'%ALPHA + UTMESS('F', "MACR_ASCOUF_MAIL", message) # # transition d epaisseur # @@ -2373,131 +2349,101 @@ def macr_ascouf_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,COUDE, LCOUDE = ALPHA * RC * pi / 180.0 DEXT = 2.0*RM + EP1 if (LTRANLCOUDE) : - print ' valeur hors domaine de validite' - print ' debut transition d epaisseur :',LTRAN - print ' valeur minimale autorisee :',LDEFAU - print ' valeur maximale autorisee :',LCOUDE - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' valeur hors domaine de validite \n' + message=message+' debut transition d epaisseur : %.2f \n'%LTRAN + message=message+' valeur minimale autorisee : %.2f \n'%LDEFAU + message=message+' valeur maximale autorisee : %.2f \n'%LCOUDE + UTMESS('F', "MACR_ASCOUF_MAIL", message) if (TETA1<0.) or (TETA1>30.) : - print ' valeur hors domaine de validite' - print ' angle de transition TETA1 :',TETA1 - print ' valeur minimale autorisee :',0. - print ' valeur maximale autorisee :',30. - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' valeur hors domaine de validite \n' + message=message+' angle de transition TETA1 : %.2f \n'%TETA1 + message=message+' valeur minimale autorisee : %.2f \n'%0. + message=message+' valeur maximale autorisee : %.2f \n'%30. + UTMESS('F', "MACR_ASCOUF_MAIL", message) # # transition d epaisseur a une pente # if NBTRAN==1: if (EP1<12.) or (EP1>80.) : - print ' valeur hors domaine de validite' - print ' epaisseur avant la transition :',EP1 - print ' valeur minimale autorisee :',12. - print ' valeur maximale autorisee :',80. - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' valeur hors domaine de validite \n' + message=message+' epaisseur avant la transition : %.2f \n'%EP1 + message=message+' valeur minimale autorisee : %.2f \n'%12. + message=message+' valeur maximale autorisee : %.2f \n'%80. + UTMESS('F', "MACR_ASCOUF_MAIL", message) if (EP2<20.) or (EP2>110.) : - print ' valeur hors domaine de validite' - print ' epaisseur apres la transition :',EP2 - print ' valeur minimale autorisee :',20. - print ' valeur maximale autorisee :',110. - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' valeur hors domaine de validite \n' + message=message+' epaisseur apres la transition : %.2f \n'%EP2 + message=message+' valeur minimale autorisee : %.2f \n'%20. + message=message+' valeur maximale autorisee : %.2f \n'%110. + UTMESS('F', "MACR_ASCOUF_MAIL", message) if (EP1>EP2) : - print ' l epaisseur avant la transition' - print ' doit etre inferieure ' - print ' a celle apres la transition' - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' l epaisseur avant la transition \n' + message=message+' doit etre inferieure \n' + message=message+' a celle apres la transition \n' + UTMESS('F', "MACR_ASCOUF_MAIL", message) LTRANF = LTRAN + ((EP2-EP1)/(tan(TETA1))) if (LTRANF>LCOUDE) : - print ' valeur hors domaine de validite' - print ' fin transition d epaisseur :',LTRANF - print ' valeur limite autorisee :',LCOUDE - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' valeur hors domaine de validite \n' + message=message+' fin transition d epaisseur : %.2f \n'%LTRANF + message=message+' valeur limite autorisee : %.2f \n'%LCOUDE + UTMESS('F', "MACR_ASCOUF_MAIL", message) if DEXT<112. or DEXT>880. : - print ' valeur hors domaine de validite' - print ' diam ext du tube avant transition:',DEXT - print ' valeur minimum autorisee :',112. - print ' valeur maximum autorisee :',880. - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' valeur hors domaine de validite\n' + message=message+' diam ext du tube avant transition: %.2f \n'%DEXT + message=message+' valeur minimum autorisee : %.2f \n'%112. + message=message+' valeur maximum autorisee : %.2f \n'%880. + UTMESS('F', "MACR_ASCOUF_MAIL", message) # # transition d epaisseur a une pente # else: if (TETA2<0.) or (TETA2>45.) : - print ' valeur hors domaine de validite' - print ' angle de transition TETA2 :',TETA2 - print ' valeur minimale autorisee :',0. - print ' valeur maximale autorisee :',45. - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' valeur hors domaine de validite\n' + message=message+' angle de transition TETA2: %.2f \n'%TETA2 + message=message+' valeur minimum autorisee : %.2f \n'%0. + message=message+' valeur maximum autorisee : %.2f \n'%45. + UTMESS('F', "MACR_ASCOUF_MAIL", message) if (EP1<7.) or (EP1>35.) : - print ' valeur hors domaine de validite' - print ' epaisseur avant 1ere transition :',EP1 - print ' valeur minimale autorisee :',7. - print ' valeur maximale autorisee :',35. - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' valeur hors domaine de validite\n' + message=message+' epaisseur avant 1ere transition: %.2f \n'%EP1 + message=message+' valeur minimum autorisee : %.2f \n'%7. + message=message+' valeur maximum autorisee : %.2f \n'%35. + UTMESS('F', "MACR_ASCOUF_MAIL", message) if (EP2<15.) or (EP2>40.) : - print ' valeur hors domaine de validite' - print ' epaisseur avant 2eme transition :',EP2 - print ' valeur minimale autorisee :',15. - print ' valeur maximale autorisee :',40. - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' valeur hors domaine de validite\n' + message=message+' epaisseur avant 2eme transition: %.2f \n'%EP2 + message=message+' valeur minimum autorisee : %.2f \n'%15. + message=message+' valeur maximum autorisee : %.2f \n'%40. + UTMESS('F', "MACR_ASCOUF_MAIL", message) if (EPI<15.) or (EPI>40.) : - print ' valeur hors domaine de validite' - print ' epaisseur intermediaire :',EPI - print ' valeur minimale autorisee :',15. - print ' valeur maximale autorisee :',40. - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' valeur hors domaine de validite\n' + message=message+' epaisseur intermediaire: %.2f \n'%EPI + message=message+' valeur minimum autorisee : %.2f \n'%15. + message=message+' valeur maximum autorisee : %.2f \n'%40. + UTMESS('F', "MACR_ASCOUF_MAIL", message) if (EP1>EPI) : - print ' valeur hors domaine de validite' - print ' l epaisseur avant la transition' - print ' doit etre inferieure a l epaisseur intermediaire' - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' valeur hors domaine de validite\n' + message=message+' l epaisseur avant la transition \n' + message=message+' doit etre inferieure a l epaisseur intermediaire \n' + UTMESS('F', "MACR_ASCOUF_MAIL", message) if (EP2 valeur hors domaine de validite' - print ' l epaisseur apres la transition' - print ' doit etre inferieure a l epaisseur intermediaire' - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' valeur hors domaine de validite\n' + message=message+' l epaisseur apres la transition \n' + message=message+' doit etre inferieure a l epaisseur intermediaire \n' + UTMESS('F', "MACR_ASCOUF_MAIL", message) LTRANF = LTRAN + (EPI-EP1)/(tan(TETA1)) LTRANF = LTRANF + (EP2-EPI)/(tan(TETA2)) if (LTRANF>LCOUDE) : - print ' valeur hors domaine de validite' - print ' fin transition d epaisseur :',LTRANF - print ' valeur limite autorisee :',LCOUDE - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' valeur hors domaine de validite\n' + message=message+' fin transition d epaisseur: %.2f \n'%LTRANF + message=message+' valeur limite autorisee : %.2f \n'%LCOUDE + UTMESS('F', "MACR_ASCOUF_MAIL", message) if (DEXT<77.) or (DEXT>355.) : - print ' valeur hors domaine de validite' - print ' diam ext du tube avant transition:',LTRANF - print ' valeur minimale autorisee :',77. - print ' valeur maximale autorisee :',355. - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' valeur hors domaine de validite\n' + message=message+' diam ext du tube avant transition: %.2f \n'%LTRANF + message=message+' valeur minimum autorisee : %.2f \n'%77. + message=message+' valeur maximum autorisee : %.2f \n'%355. + UTMESS('F', "MACR_ASCOUF_MAIL", message) # ################################################################################ # --- calcul taille initiale des defauts sur la plaque --- @@ -2530,9 +2476,7 @@ def macr_ascouf_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,COUDE, if logiel=='GIBI98' : logiel = loc_gibi+'gibi98' elif logiel=='GIBI2000': logiel = loc_gibi+'gibi2000' else : - self.cr.fatal(" seuls gibi98 et gibi2000 sont appelableS") - ier = ier+1 - return ier + UTMESS('F', "MACR_ASCOUF_MAIL", "seuls gibi98 et gibi2000 sont appelables") # # --- ecriture sur le fichier .datg de la procedure --- # diff --git a/Aster/Cata/cataSTA8/Macro/macr_aspic_calc_ops.py b/Aster/Cata/cataSTA8/Macro/macr_aspic_calc_ops.py index 5426c395..eda90f99 100644 --- a/Aster/Cata/cataSTA8/Macro/macr_aspic_calc_ops.py +++ b/Aster/Cata/cataSTA8/Macro/macr_aspic_calc_ops.py @@ -1,4 +1,4 @@ -#@ MODIF macr_aspic_calc_ops Macro DATE 08/02/2005 AUTEUR CIBHHLV L.VIVAN +#@ MODIF macr_aspic_calc_ops Macro DATE 09/05/2006 AUTEUR REZETTE C.REZETTE # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -23,12 +23,13 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C FOND_FISS_1,FOND_FISS_2,CHARGE,RESU_THER,AFFE_MATERIAU,EQUILIBRE, PRES_REP,ECHANGE,TORS_CORP,TORS_TUBU,COMP_INCR,COMP_ELAS, THETA_3D,OPTION,SOLVEUR,CONVERGENCE,NEWTON,RECH_LINEAIRE, - INCREMENT,PAS_AZIMUT,IMPRESSION,INFO,TITRE ,**args): + INCREMENT,PAS_AZIMUT,IMPRESSION,INFO,TITRE,BORNES ,**args): """ Ecriture de la macro MACR_ASPIC_CALC """ from Accas import _F import types + from Utilitai.Utmess import UTMESS ier=0 #------------------------------------------------------------------ # On recopie le mot cle affe_materiau pour le proteger @@ -48,8 +49,7 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C POST_RCCM =self.get_cmd('POST_RCCM' ) DEFI_FOND_FISS =self.get_cmd('DEFI_FOND_FISS' ) CALC_THETA =self.get_cmd('CALC_THETA' ) - CALC_G_THETA_T =self.get_cmd('CALC_G_THETA_T' ) - CALC_G_LOCAL_T =self.get_cmd('CALC_G_LOCAL_T' ) + CALC_G =self.get_cmd('CALC_G' ) IMPR_RESU =self.get_cmd('IMPR_RESU' ) # La macro compte pour 1 dans la numerotation des commandes @@ -77,63 +77,40 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C i=i+1 MRCCM=mate['MATER'] if i>1 : - ier=ier+1 - self.cr.fatal(""" vous affectez plus d un materiau contenant l option rccm""") - return ier + UTMESS('E', "MACR_ASPIC_CALC", "vous affectez plus d un materiau contenant l option rccm") # if (TYPE_MAILLAGE[:4]=='SAIN') and (TUBULURE==None) : - ier=ier+1 - self.cr.fatal(""" pour les piquages sains, TUBULURE doit etre renseigne""") - return ier + UTMESS('E', "MACR_ASPIC_CALC", "pour les piquages sains, TUBULURE doit etre renseigne") # if EQUILIBRE['NOEUD'] not in ('P1_CORP','P2_CORP') : - ier=ier+1 - self.cr.fatal(""" EQUILIBRE[NOEUD] : on attend 'P1_CORP ' ou 'P2_CORP'""") - return ier + UTMESS('E', "MACR_ASPIC_CALC", "EQUILIBRE[NOEUD] : on attend P1_CORP ou P2_CORP") # if PRES_REP['EFFE_FOND']=='OUI' : if PRES_REP['NOEUD']==None : - ier=ier+1 - self.cr.fatal(""" il faut preciser un noeud pour EFFE_FOND""") - return ier + UTMESS('E', "MACR_ASPIC_CALC", "il faut preciser un noeud pour EFFE_FOND") if PRES_REP['NOEUD'] not in ('P1_CORP','P2_CORP') : - ier=ier+1 - self.cr.fatal(""" PRES_REP[NOEUD] : on attend 'P1_CORP' ou 'P2_CORP'""") - return ier + UTMESS('E', "MACR_ASPIC_CALC", "PRES_REP[NOEUD] : on attend P1_CORP ou P2_CORP") if PRES_REP['NOEUD']==EQUILIBRE['NOEUD'] : - ier=ier+1 - self.cr.fatal(""" on ne peut appliquer un EFFE_FOND sur PRES_REP[NOEUD] car ce noeud est bloque""") - return ier + UTMESS('E', "MACR_ASPIC_CALC", "on ne peut appliquer un EFFE_FOND sur PRES_REP[NOEUD] car ce noeud est bloque") # if TORS_CORP!=None : for tors in TORS_CORP : if tors['NOEUD'] not in ('P1_CORP','P2_CORP') : - ier=ier+1 - self.cr.fatal(""" TORS_CORP[NOEUD] : on attend 'P1_CORP' ou 'P2_CORP'""") - return ier + UTMESS('E', "MACR_ASPIC_CALC", "TORS_CORP[NOEUD] : on attend P1_CORP ou P2_CORP") if tors['NOEUD']==EQUILIBRE['NOEUD'] : - ier=ier+1 - self.cr.fatal(""" on ne peut appliquer un torseur sur TORS_CORP[NOEUD] car ce noeud est bloque""") - return ier + UTMESS('E', "MACR_ASPIC_CALC", "on ne peut appliquer un torseur sur TORS_CORP[NOEUD] car ce noeud est bloque") # if (TYPE_MAILLAGE[:4]=='SAIN') and (THETA_3D!=None) : - ier=ier+1 - self.cr.fatal(""" si TYPE_MAILLAGE SAIN : mecanique de la rupture impossible""") - return ier + UTMESS('E', "MACR_ASPIC_CALC", "si TYPE_MAILLAGE SAIN : mecanique de la rupture impossible") # if OPTION in ('CALC_G_MAX','CALC_G_MAX_LOCAL') : if BORNES==None : - ier=ier+1 - self.cr.fatal(""" mot-clef obligatoire avec cette option""") - return ier + UTMESS('E', "MACR_ASPIC_CALC", "mot-clef obligatoire avec cette option") # if IMPRESSION!=None : if IMPRESSION['FORMAT'] in ('IDEAS','CASTEM') : if IMPRESSION['NOM_CHAM']==None : - ier=ier+1 - self.cr.fatal(""" impression de resultats demandée sans preciser le nom des champs - cf. la documentation utilisateur : U4.PC.20.""") - return ier + UTMESS('E', "MACR_ASPIC_CALC", "impression de resultats demandée sans preciser le nom des champs cf. la documentation utilisateur : U4.PC.20.") # #------------------------------------------------------------------ # @@ -223,7 +200,7 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C AEFOCO = 'EXCORP1' ATORCO = 'P1_CORP' LINTC = 'L_INT_C1' - __conlim = AFFE_CHAR_MECA( MODELE = modele , + _conlim = AFFE_CHAR_MECA( MODELE = modele , LIAISON_ELEM = ( _F( OPTION ='3D_POU' , GROUP_MA_1='EXCORP1', GROUP_NO_2='P1_CORP'), @@ -256,13 +233,13 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C _F(GROUP_MA =AEFOCO, GROUP_MA_INT=LINTC, PRES =PRES_REP['PRES'])) - __chpres = AFFE_CHAR_MECA( MODELE = modele ,**motscles) + _chpres = AFFE_CHAR_MECA( MODELE = modele ,**motscles) # # --- commande AFFE_CHAR_MECA --- # chargement mecanique : torseur sur le corps # if TORS_CORP!=None: - __chtrc = [None]*6 + _chtrc = [None]*6 i=0 for tors in TORS_CORP : mcsimp={} @@ -273,7 +250,7 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C if tors['MY']!=None : mcsimp['MY']=tors['MY'] if tors['MZ']!=None : mcsimp['MZ']=tors['MZ'] mcfact=_F(GROUP_NO=ATORCO,**mcsimp) - __chtrc[i] = AFFE_CHAR_MECA( MODELE = modele , + _chtrc[i] = AFFE_CHAR_MECA( MODELE = modele , FORCE_NODALE = mcfact , ) i=i+1 # @@ -281,7 +258,7 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C # chargement mecanique : torseur sur la tubulure # if TORS_TUBU!=None: - __chtrt = [None]*6 + _chtrt = [None]*6 i=0 for tors in TORS_TUBU : mcsimp={} @@ -292,7 +269,7 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C if tors['MY']!=None : mcsimp['MY']=tors['MY'] if tors['MZ']!=None : mcsimp['MZ']=tors['MZ'] mcfact=_F(GROUP_NO='P_TUBU ',**mcsimp) - __chtrt[i] = AFFE_CHAR_MECA( MODELE = modele , + _chtrt[i] = AFFE_CHAR_MECA( MODELE = modele , FORCE_NODALE = mcfact , ) i=i+1 # @@ -301,28 +278,28 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C motscles={} # mcfex=[] # mot clé facteur EXCIT - mcfex.append(_F(CHARGE=__conlim,)) + mcfex.append(_F(CHARGE=_conlim,)) if ECHANGE!=None : mcfex.append(_F(CHARGE=chmeth,)) if PRES_REP['FONC_MULT']!=None : - mcfex.append(_F(CHARGE=__chpres,FONC_MULT=PRES_REP['FONC_MULT'])) + mcfex.append(_F(CHARGE=_chpres,FONC_MULT=PRES_REP['FONC_MULT'])) else : - mcfex.append(_F(CHARGE=__chpres,)) + mcfex.append(_F(CHARGE=_chpres,)) if TORS_CORP!=None: i=0 for tors in TORS_CORP : if tors['FONC_MULT']!=None : - mcfex.append(_F(CHARGE=__chtrc[i],FONC_MULT=tors['FONC_MULT'])) + mcfex.append(_F(CHARGE=_chtrc[i],FONC_MULT=tors['FONC_MULT'])) else : - mcfex.append(_F(CHARGE=__chtrc[i],)) + mcfex.append(_F(CHARGE=_chtrc[i],)) i=i+1 if TORS_TUBU!=None: i=0 for tors in TORS_TUBU : if tors['FONC_MULT']!=None : - mcfex.append(_F(CHARGE=__chtrt[i],FONC_MULT=tors['FONC_MULT'])) + mcfex.append(_F(CHARGE=_chtrt[i],FONC_MULT=tors['FONC_MULT'])) else : - mcfex.append(_F(CHARGE=__chtrt[i],)) + mcfex.append(_F(CHARGE=_chtrt[i],)) i=i+1 motscles['EXCIT'] =mcfex # @@ -686,20 +663,20 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C R_INF = tht3d['R_INF'], R_SUP = tht3d['R_SUP'], ) ) # -# --- commande CALC_G_THETA_T --- +# --- commande CALC_G (3D GLOBAL) --- # montit = 'G_THETA AVEC R_INF = '+str(tht3d['R_INF'])+' ET R_SUP = '+str(tht3d['R_SUP']) motscles={} if COMP_ELAS!=None: motscles['COMP_ELAS']= _F(TOUT = 'OUI', RELATION = COMP_ELAS['RELATION'],) if COMP_INCR!=None: motscles['COMP_INCR']= _F(RELATION = COMP_INCR['RELATION'],) - print motscles - __gtheta = CALC_G_THETA_T( MODELE = modele, - CHAM_MATER = affmat, - THETA = __theta, - RESULTAT = nomres, - TOUT_ORDRE = 'OUI', - TITRE = montit,**motscles) + __gtheta = CALC_G ( MODELE = modele, + CHAM_MATER = affmat, + THETA = _F(THETA=__theta), + OPTION = 'CALC_G_GLOB', + RESULTAT = nomres, + TOUT_ORDRE = 'OUI', + TITRE = montit,**motscles) IMPR_TABLE(TABLE = __gtheta, ) # # recherche du g max @@ -711,35 +688,36 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C mcfact.append(_F( NUME_ORDRE = born['NUME_ORDRE'] , VALE_MIN = born['VALE_MIN' ] , VALE_MAX = born['VALE_MAX' ] ) ) - __gbil = CALC_G_THETA_T( MODELE = modele, - CHAM_MATER = affmat, - THETA = __theta, - RESULTAT = nomres, - TOUT_ORDRE = 'OUI', - COMP_ELAS = _F(TOUT = 'OUI', - RELATION = COMP_ELAS['RELATION'],), - TITRE = montit, - OPTION = OPTION, - BORNES = mcfact,) + __gbil = CALC_G( MODELE = modele, + CHAM_MATER = affmat, + THETA = _F(THETA=__theta), + RESULTAT = nomres, + TOUT_ORDRE = 'OUI', + COMP_ELAS = _F(TOUT = 'OUI', + RELATION = COMP_ELAS['RELATION'],), + TITRE = montit, + OPTION = 'G_MAX_GLOB', + BORNES = mcfact,) IMPR_TABLE(TABLE = __gbil, ) # -# --- commande CALC_G_LOCAL_T --- +# --- commande CALC_G (3D LOCAL) --- # montit = 'G_LOCAL AVEC R_INF = '+str(tht3d['R_INF'])+' ET R_SUP = '+str(tht3d['R_SUP']) motscles={} if COMP_ELAS!=None: motscles['COMP_ELAS' ]= _F(TOUT = 'OUI', RELATION = COMP_ELAS['RELATION'],) if FERME: - motscles['LISSAGE_THETA']= 'LAGRANGE' - motscles['LISSAGE_G' ]= 'LAGRANGE' - __glocal = CALC_G_LOCAL_T( MODELE = modele, - CHAM_MATER = affmat, - FOND_FISS = fond3d[j], - RESULTAT = nomres, - TOUT_ORDRE = 'OUI', - R_INF = tht3d['R_INF'], - R_SUP = tht3d['R_SUP'], - TITRE = montit,**motscles) + motscles['LISSAGE']=_F(LISSAGE_THETA= 'LAGRANGE', + LISSAGE_G= 'LAGRANGE',) + __glocal = CALC_G( MODELE = modele, + CHAM_MATER = affmat, + THETA=_F( FOND_FISS = fond3d[j], + R_INF = tht3d['R_INF'], + R_SUP = tht3d['R_SUP'],), + RESULTAT = nomres, + TOUT_ORDRE = 'OUI', + TITRE = montit,**motscles) + IMPR_TABLE(TABLE = __glocal, ) # # recherche du g max local # @@ -748,24 +726,24 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C motscles={} mcfact=[] if FERME: - motscles['LISSAGE_THETA']= 'LAGRANGE' - motscles['LISSAGE_G' ]= 'LAGRANGE' + motscles['LISSAGE']=_F(LISSAGE_THETA= 'LAGRANGE', + LISSAGE_G= 'LAGRANGE',) for born in BORNES : mcfact.append(_F( NUME_ORDRE = born['NUME_ORDRE'] , VALE_MIN = born['VALE_MIN' ] , VALE_MAX = born['VALE_MAX' ] ) ) motscles['BORNES']=mcfact - __glbil = CALC_G_LOCAL_T( MODELE = modele, - CHAM_MATER = affmat, - FOND_FISS = fond3d[j], - RESULTAT = nomres, - TOUT_ORDRE = 'OUI', - COMP_ELAS = _F(TOUT = 'OUI', - RELATION = COMP_ELAS['RELATION'],), - TITRE = montit, - OPTION = 'CALC_G_MAX', - R_INF = tht3d['R_INF'], - R_SUP = tht3d['R_SUP'],**motscles) + __glbil = CALC_G( MODELE = modele, + CHAM_MATER = affmat, + THETA=_F( FOND_FISS = fond3d[j], + R_INF = tht3d['R_INF'], + R_SUP = tht3d['R_SUP'],), + RESULTAT = nomres, + TOUT_ORDRE = 'OUI', + COMP_ELAS = _F(TOUT = 'OUI', + RELATION = COMP_ELAS['RELATION'],), + TITRE = montit, + OPTION = 'G_MAX',**motscles) IMPR_TABLE(TABLE = __glbil, ) # # --- commande IMPR_RESU --- @@ -781,13 +759,13 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C else : ncham=[IMPRESSION['NOM_CHAM'],] if len(ncham)==3 : motscles['NOM_CHAM' ]=('DEPL','EQUI_ELNO_SIGM') elif (len(ncham)==1) and (ncham[0][:4]!='TEMP') : - motscles['NOM_CHAM' ]= ncham[0]['NOM_CHAM'] + motscles['NOM_CHAM' ]= ncham[0] elif (len(ncham)==2) and (ncham[0][:4]!='TEMP') and (ncham[1][:4]!='TEMP') : - motscles['NOM_CHAM' ]=(ncham[0]['NOM_CHAM'],ncham[1]['NOM_CHAM']) + motscles['NOM_CHAM' ]=(ncham[0],ncham[1]) elif (len(ncham)==2) and (ncham[0][:4]=='TEMP') : - motscles['NOM_CHAM' ]= ncham[1]['NOM_CHAM'] + motscles['NOM_CHAM' ]= ncham[1] elif (len(ncham)==2) and (ncham[1][:4]=='TEMP') : - motscles['NOM_CHAM' ]= ncham[0]['NOM_CHAM'] + motscles['NOM_CHAM' ]= ncham[0] if IMPRESSION['TOUT_ORDRE']!=None : motscles['TOUT_ORDRE']= IMPRESSION['TOUT_ORDRE'] elif IMPRESSION['NUME_ORDRE']!=None : @@ -804,11 +782,11 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C if IMPRESSION['FORMAT'] in ('IDEAS','CASTEM') : if len(ncham)==3 : motscles['NOM_CHAM' ]=('TEMP',) elif (len(ncham)==1) and (ncham[0][:4]=='TEMP') : - motscles['NOM_CHAM' ]= ncham[0]['NOM_CHAM'] + motscles['NOM_CHAM' ]= ncham[0] elif (len(ncham)==2) and (ncham[0][:4]=='TEMP') : - motscles['NOM_CHAM' ]= ncham[0]['NOM_CHAM'] + motscles['NOM_CHAM' ]= ncham[0] elif (len(ncham)==2) and (ncham[1][:4]=='TEMP') : - motscles['NOM_CHAM' ]= ncham[1]['NOM_CHAM'] + motscles['NOM_CHAM' ]= ncham[1] if IMPRESSION['TOUT_ORDRE']!=None : motscles['TOUT_ORDRE']= IMPRESSION['TOUT_ORDRE'] elif IMPRESSION['NUME_ORDRE']!=None : @@ -819,7 +797,7 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C motsclei['VERSION' ]= IMPRESSION['VERSION'] if IMPRESSION['FORMAT']=='CASTEM' : motsclei['NIVE_GIBI' ]= IMPRESSION['NIVE_GIBI'] - mcfresu.append(_F(RESULTAT=nomres,**motscles)) + mcfresu.append(_F(RESULTAT=resuth,**motscles)) IMPR_RESU( MODELE = modele, RESU = mcfresu, FORMAT=IMPRESSION['FORMAT'],**motsclei) diff --git a/Aster/Cata/cataSTA8/Macro/macr_aspic_mail_ops.py b/Aster/Cata/cataSTA8/Macro/macr_aspic_mail_ops.py index 296cab1d..783db3ab 100644 --- a/Aster/Cata/cataSTA8/Macro/macr_aspic_mail_ops.py +++ b/Aster/Cata/cataSTA8/Macro/macr_aspic_mail_ops.py @@ -1,4 +1,4 @@ -#@ MODIF macr_aspic_mail_ops Macro DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +#@ MODIF macr_aspic_mail_ops Macro DATE 22/05/2006 AUTEUR MCOURTOI M.COURTOIS # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -19,43 +19,44 @@ # ====================================================================== - -from math import sqrt,cos,sin,pi,pow,tan +import os.path +from math import sqrt, cos, sin, pi, pow, tan # Ecriture du fichier GIBI principal (dgib) - ASPID0 def write_file_dgib_ASPID0(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ZMAX, H, ALPHA, JEU, EPC, DEC, XMAX, TYPMAI, THETA, TYPELE, - ITYPSO, DPENE, NIVMAG, loc_datg) : - + ITYPSO, DPENE, NIVMAG, loc_datg): + import aster # Ouverture du fichier d'entrée de commandes fdgib=open(nomFichierDATG,'w') - POIVIR = ' ; \n' - texte='****************************************************************\n' - texte=texte+'opti echo 0 ; \n' - texte=texte+'epT1 = '+str(EPT1) +POIVIR - texte=texte+'DeT1 = '+str(DET1) +POIVIR - texte=texte+'d1 = '+str(D1) +POIVIR - texte=texte+'d2 = '+str(D2) +POIVIR - texte=texte+'epT2 = '+str(EPT2) +POIVIR - texte=texte+'DeT2 = '+str(DET2) +POIVIR - texte=texte+'Zmax = '+str(ZMAX) +POIVIR - texte=texte+'type_s = '+str(ITYPSO) +POIVIR - texte=texte+'d_pene = '+str(DPENE) +POIVIR - texte=texte+'h = '+str(H) +POIVIR - texte=texte+'angl_s = '+str(ALPHA) +POIVIR - texte=texte+'jeu = '+str(JEU) +POIVIR - texte=texte+'epC = '+str(EPC) +POIVIR - texte=texte+'DeC = '+str(DEC) +POIVIR - texte=texte+'Xmax = '+str(XMAX) +POIVIR - texte=texte+'typmai = MOT '+TYPMAI +POIVIR - texte=texte+'theta = '+str(THETA) +POIVIR - texte=texte+'typele = MOT '+TYPELE +POIVIR - texte=texte+'typ_eque = MOT '+'SAINE' +POIVIR - texte=texte+'nivmag = '+str(NIVMAG) +POIVIR - texte=texte+'* \n' - texte=texte+'opti donn ' - texte=texte+"'"+loc_datg+'aspic.datg'+"';\n" - print texte + texte = """ +**************************************************************** +opti echo 0; +epT1 = %s; +DeT1 = %s; +d1 = %s; +d2 = %s; +epT2 = %s; +DeT2 = %s; +Zmax = %s; +type_s = %s; +d_pene = %s; +h = %s; +angl_s = %s; +jeu = %s; +epC = %s; +DeC = %s; +Xmax = %s; +typmai = MOT %s; +theta = %s; +typele = MOT %s; +typ_eque = MOT SAINE; +nivmag = %s; +**************************************************************** +""" % (EPT1, DET1, D1, D2, EPT2, DET2, ZMAX, ITYPSO, DPENE, H, + ALPHA, JEU, EPC, DEC, XMAX, TYPMAI, THETA, TYPELE, NIVMAG) + aster.affiche('MESSAGE',texte + ' + aspic.datg...\n') + texte = texte + open(os.path.join(loc_datg, 'aspic.datg'), 'r').read() fdgib.write(texte) fdgib.close() @@ -65,6 +66,7 @@ def write_file_dgib_ASPID1(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, A,C,EPS, RC0, NS,NC,NT,POSI, NDT,FETIRF,FETIRP, TFISS,ZETA,ITYPSO,DPENE, NIVMAG, loc_datg) : + import aster # Ouverture du fichier d'entrée de commandes fdgib=open(nomFichierDATG,'w') POIVIR = ' ; \n' @@ -103,9 +105,8 @@ def write_file_dgib_ASPID1(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, texte=texte+'typ_eque = MOT '+'FISS_LON' +POIVIR texte=texte+'nivmag = '+str(NIVMAG) +POIVIR texte=texte+'* \n' - texte=texte+'opti donn ' - texte=texte+"'"+loc_datg+'aspic_v2.datg'+"';\n" - print texte + aster.affiche('MESSAGE',texte + ' + aspic_v2.datg...\n') + texte = texte + open(os.path.join(loc_datg, 'aspic_v2.datg'), 'r').read() fdgib.write(texte) fdgib.close() @@ -116,6 +117,7 @@ def write_file_dgib_ASPID2(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ALP,BETA, NS, NC, NT, POSI ,NDT,NSDT,TFISS, ZETA,ITYPSO,DPENE, NIVMAG, loc_datg) : # + import aster CALPHA = cos(ALPHA*pi/180.) SALPHA = sin(ALPHA*pi/180.) CTHETA = cos(THETA*pi/180.) @@ -172,10 +174,10 @@ def write_file_dgib_ASPID2(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, EPSIL = STHETA * tan(ALPHA*pi/180.0) PHI = (EPSIL * ZA) - YA DELTA = pow(PHI,2) - ((1 + pow(EPSIL,2))*(pow(PHI,2) - (pow((DEC/2.0),2)*pow(EPSIL,2)))) - if (THETA > 0) : + if (STHETA > 0) : YD = ( sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) else : - YD = ( -1.0*sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) + YD = ( -1.0*sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) ZD = sqrt(pow((DEC/2.0),2) - pow(YD,2)) @@ -193,6 +195,14 @@ def write_file_dgib_ASPID2(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ZN0 = ZD0 - A*CALPHA XN = XN0 * CTHETA YN = XN0 * STHETA + DNXY = sqrt(pow(XD,2) + pow(YD,2)) - sqrt(pow(XN,2) + pow(YN,2)) + DNXY0 = XD0 - XN0 + RAPP = DNXY/DNXY0 + # Correction necessaire dans le cas theta et/ou alpha grand + if (RAPP < 0.5) : + DXY = sqrt(pow(XD,2) + pow(YD,2) ) + XN = XN * DXY/XD0 + YN = YN * DXY/XD0 SGAMN = YN / ZN0 ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2)) D0N0 = sqrt( pow((XD0 - XN0),2) + pow((ZD0 - ZN0),2) ) @@ -234,7 +244,7 @@ def write_file_dgib_ASPID2(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, EPSIL = STHETA * TGALP PHI = (EPSIL * ZA) - YA DELTA = pow(PHI,2) - (1.0 + pow(EPSIL,2))*(pow(PHI,2) - pow((DEC/2.0),2)*pow(EPSIL,2)) - if (THETA > 0) : + if (STHETA > 0) : YD = (sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) else : YD = (-1.0*sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) @@ -336,9 +346,10 @@ def write_file_dgib_ASPID2(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ECART = (RAPP - 1.0) * B0N0 A = A + ECART - print ' CORRECTION PROFONDEUR DEFAUT' - print ' PROFONDEUR SUR PIQUAGE : ', AOLD - print ' PROFONDEUR SUR EQUERRE : ', A + message= ' CORRECTION PROFONDEUR DEFAUT \n' + message=message+ ' PROFONDEUR SUR PIQUAGE : %.2f \n'%AOLD + message=message+ ' PROFONDEUR SUR EQUERRE : %.2f \n'%A + aster.affiche('MESSAGE',message) # Ouverture du fichier d'entrée de commandes @@ -384,9 +395,8 @@ def write_file_dgib_ASPID2(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, texte=texte+'nivmag = '+str(NIVMAG) +POIVIR texte=texte+'* \n' texte=texte+'list epc ;\n' - texte=texte+'opti donn ' - texte=texte+"'"+loc_datg+'aspic.datg'+"';\n" - print texte + aster.affiche('MESSAGE',texte + ' + aspic.datg...\n') + texte = texte + open(os.path.join(loc_datg, 'aspic.datg'), 'r').read() fdgib.write(texte) fdgib.close() @@ -399,6 +409,7 @@ def macr_aspic_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,RAFF_MAIL,TUBULURE, from Accas import _F import types import aster + from Utilitai.Utmess import UTMESS ier=0 # On importe les definitions des commandes a utiliser dans la macro @@ -436,9 +447,7 @@ def macr_aspic_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,RAFF_MAIL,TUBULURE, TYPSOU= TUBULURE['TYPE' ] DPENE = TUBULURE['L_PENETR' ] if TYPSOU=='TYPE_2' and DPENE>0.0 : - self.cr.fatal(" les piquages penetrants sont autorises uniquement avec les soudures de type 1") - ier = ier+1 - return ier + UTMESS('F', "MACR_ASPIC_MAIL", "les piquages penetrants sont autorises uniquement avec les soudures de type 1") if TYPSOU=='TYPE_2' : ITYPSO = 2 else : @@ -466,12 +475,10 @@ def macr_aspic_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,RAFF_MAIL,TUBULURE, ZMAXC = LZMAX + ( DEC/2.0 ) + D1 + D2 LOK = ( abs(ZMAX-ZMAXC) <= EPSI * abs(ZMAXC) ) if not LOK : - print ' erreur donnees' - print ' Z_MAX FOURNIE : ', ZMAX - print ' Z_MAX CALCULEE : ', ZMAXC - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' erreur donnees \n' + message=message+ ' Z_MAX FOURNIE : %.2f \n'%ZMAX + message=message+ ' Z_MAX CALCULEE : %.2f \n'%ZMAXC + UTMESS('F', "MACR_ASPIC_MAIL", message) RMC = ( DEC - EPC ) / 2.0 VAL1 = 1.5 * sqrt( RMC**3 / EPC ) VAL2 = 3.0 * sqrt( RMC * EPC ) @@ -479,14 +486,13 @@ def macr_aspic_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,RAFF_MAIL,TUBULURE, XMAXC = LXMAX + ( DET1 / 2.0 ) LOK = ( abs(XMAX-XMAXC) <= EPSI * abs(XMAXC) ) if not LOK : - print ' erreur donnees' - print ' Z_MAX FOURNIE : ', ZMAX - print ' Z_MAX CALCULEE : ', ZMAXC - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier - print ' MACR_ASPIC_MAIL / X_MAX CALCULEE : ',XMAX - print ' MACR_ASPIC_MAIL / Z_MAX CALCULEE : ',XMAXC + message= ' erreur donnees \n' + message=message+ ' Z_MAX FOURNIE : %.2f \n'%ZMAX + message=message+ ' Z_MAX CALCULEE : %.2f \n'%ZMAXC + UTMESS('F', "MACR_ASPIC_MAIL", message) + message= ' MACR_ASPIC_MAIL / X_MAX CALCULEE : %.2f \n'%XMAX + message=message+ ' MACR_ASPIC_MAIL / Z_MAX CALCULEE : %.2f \n'%XMAXC + aster.affiche('MESSAGE',message) # # --- caracteristiques de la fissure --- # @@ -511,22 +517,18 @@ def macr_aspic_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,RAFF_MAIL,TUBULURE, N1 = 1 else : N1 = 0 if (TFISS=='DEB_INT') and (POSI=='INCLINE') and (DPENE>0.0) and (JEU>0.0) : - print ' erreur donnees' - print ' dans le cas de fissures' - print ' inclinees debouchant en peau interne avec' - print ' piquage penetrant le jeu doit etre nul' - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' erreur donnees \n' + message=message+ ' dans le cas de fissures \n' + message=message+ ' inclinees debouchant en peau interne avec \n' + message=message+ ' piquage penetrant le jeu doit etre nul \n' + UTMESS('F', "MACR_ASPIC_MAIL", message) ZETA = 0.5 if TFISS not in ('DEB_INT','DEB_EXT') : if FISS_SOUDURE['LIGA_INT']==None : - print ' erreur donnees' - print ' dans le cas de fissures internes' - print ' (NON_DEB) le ligament inferieur est obligatoire' - self.cr.fatal(" erreur donnees ") - ier = ier+1 - return ier + message= ' erreur donnees \n' + message=message+ ' dans le cas de fissures internes\n' + message=message+ ' (NON_DEB) le ligament inferieur est obligatoire \n' + UTMESS('F', "MACR_ASPIC_MAIL", message) LIGA = FISS_SOUDURE['LIGA_INT'] if POSI=='DROIT' : if ITYPSO==1 : ZETA = (A+LIGA)/(EPC+H) @@ -535,33 +537,21 @@ def macr_aspic_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,RAFF_MAIL,TUBULURE, if ITYPSO==1 : ZETA = (A+LIGA)*cos(ALPHA*pi/180.0)/EPC else : ZETA = (A+LIGA)*cos(ALPHA*pi/180.0)/EPT1 if ZETA < 0.1 : - self.cr.fatal(" dans le cas de fissures internes (NON_DEB) le ligament est trop petit ") - ier = ier+1 - return ier + UTMESS('F', "MACR_ASPIC_MAIL", "dans le cas de fissures internes (NON_DEB) le ligament est trop petit ") if ZETA > 0.9 : - self.cr.fatal(" dans le cas de fissures internes (NON_DEB) le ligament est trop grand ") - ier = ier+1 - return ier + UTMESS('F', "MACR_ASPIC_MAIL", "dans le cas de fissures internes (NON_DEB) le ligament est trop grand ") if LIGA < 0.1*EPC : - self.cr.fatal(" dans le cas de fissures internes (NON_DEB) le ligament est trop petit ") - ier = ier+1 - return ier + UTMESS('F', "MACR_ASPIC_MAIL", "dans le cas de fissures internes (NON_DEB) le ligament est trop petit ") if (LIGA + 2.0*A) > 0.9*EPC : - self.cr.fatal(" dans le cas de fissures internes (NON_DEB) le ligament est trop grand ") - ier = ier+1 - return ier + UTMESS('F', "MACR_ASPIC_MAIL", "dans le cas de fissures internes (NON_DEB) le ligament est trop grand ") if N1==0 : if FISCOU : - self.cr.fatal(" dans le cas de fissures courte il faut preciser la longueur ") - ier = ier+1 - return ier + UTMESS('F', "MACR_ASPIC_MAIL", "dans le cas de fissures courte il faut preciser la longueur") if AXIS=='NON' : - self.cr.fatal(" dans le cas de la fissure longue il faut preciser la longueur ou axis=oui ") - ier = ier+1 - return ier + UTMESS('F', "MACR_ASPIC_MAIL", "dans le cas de la fissure longue il faut preciser la longueur ou axis=oui ") C = 0.0 else : - if AXIS=='OUI' : print ' fissure axisymetrique : le mot clef ne doit pas etre renseigne' + if AXIS=='OUI' : UTMESS('A', "MACR_ASPIC_MAIL", "fissure axisymetrique : le mot clef ne doit pas etre renseigne") C = 0.5 * C LEQU=2.*(pi*(DEC-EPC)-DET1+2.*EPT1) # @@ -654,9 +644,7 @@ def macr_aspic_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,RAFF_MAIL,TUBULURE, if logiel=='GIBI98' : logiel = loc_gibi+'gibi98' elif logiel=='GIBI2000': logiel = loc_gibi+'gibi2000' else : - self.cr.fatal(" seuls gibi98 et gibi2000 sont appelableS") - ier = ier+1 - return ier + UTMESS('F', "MACR_ASPIC_MAIL", "seuls gibi98 et gibi2000 sont appelables ") # # --- ecriture sur le fichier .datg de la procedure --- # @@ -841,5 +829,80 @@ def macr_aspic_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,RAFF_MAIL,TUBULURE, IMPR_RESU( RESU = impr_resu, FORMAT = impr['FORMAT'],**motscles ) # +# +# --- Verification profondeur fissure (courte débouchante) --- +# + if FISCOU and not (TFISS=='NON_DEB') : + nomres=DEFI_GROUP( reuse=nomres, + MAILLAGE=nomres, + CREA_GROUP_NO=(_F( GROUP_MA = 'LEVRTUBU',), + _F( NOM = 'FONDORDO', + GROUP_MA = 'FONDFISS', + OPTION = 'NOEUD_ORDO',),),); + + nommail=nomres.nom + coord =aster.getvectjev(nommail.ljust(8)+'.COORDO .VALE') + collgrno=aster.getcolljev(nommail.ljust(8)+'.GROUPENO') + + grfo=collgrno['FONDORDO'] + Nbno = len(grfo) + listx = [None]*Nbno + listy = [None]*Nbno + listz = [None]*Nbno + k = 0 + for node in grfo: + listx[k] = coord[3*(node-1)] + listy[k] = coord[3*(node-1)+1] + listz[k] = coord[3*(node-1)+2] + k = k+1 + + XAB = listx[Nbno-1] - listx[0] + YAB = listy[Nbno-1] - listy[0] + ZAB = listz[Nbno-1] - listz[0] + AB = sqrt(XAB*XAB + YAB*YAB +ZAB*ZAB) + d = 0 + for k in range(0,Nbno) : + XAM = listx[k] - listx[0] + YAM = listy[k] - listy[0] + ZAM = listz[k] - listz[0] + Xvect = YAB*ZAM-ZAB*YAM + Yvect = ZAB*XAM-XAB*ZAM + Zvect = XAB*YAM-YAB*XAM + AM = sqrt(Xvect*Xvect+ Yvect*Yvect +Zvect*Zvect) + dk = AM/AB + if dk > d : + XC = listx[k] + YC = listy[k] + ZC = listz[k] + d = max(dk, d) + + grlev=collgrno['LEVRTUBU'] + Nbnol = len(grlev) + listxl = [None]*Nbnol + listyl = [None]*Nbnol + listzl = [None]*Nbnol + k = 0 + for node in grlev: + listxl[k] = coord[3*(node-1)] + listyl[k] = coord[3*(node-1)+1] + listzl[k] = coord[3*(node-1)+2] + k = k+1 + dist = 0 + for k in range(0,Nbnol) : + XAM = listxl[k] - listx[0] + YAM = listyl[k] - listy[0] + ZAM = listzl[k] - listz[0] + Scal = (XAB*XAM + YAB*YAM + ZAB*ZAM)/(AB*AB) + if (abs(Scal) < 0.51) and (abs(Scal) > 0.49) : + Xk = listxl[k] -XC + Yk = listyl[k] -YC + Zk = listzl[k] -ZC + dk = sqrt(Xk**2+ Yk**2 +Zk**2) + dist = max(dk, dist) + + texte=" PROFONDEUR DE LA FISSURE DANS LE MAILLAGE : %.2f \n"%dist + aster.affiche('MESSAGE',texte) +# return ier + diff --git a/Aster/Cata/cataSTA8/Macro/macr_cabri_calc_ops.py b/Aster/Cata/cataSTA8/Macro/macr_cabri_calc_ops.py index a829425f..da2fa29f 100644 --- a/Aster/Cata/cataSTA8/Macro/macr_cabri_calc_ops.py +++ b/Aster/Cata/cataSTA8/Macro/macr_cabri_calc_ops.py @@ -1,4 +1,4 @@ -#@ MODIF macr_cabri_calc_ops Macro DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +#@ MODIF macr_cabri_calc_ops Macro DATE 07/10/2005 AUTEUR CIBHHPD L.SALMONA # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -22,7 +22,7 @@ def macr_cabri_calc_ops(self,MAILLAGE,MODELE_MECA,MODELE_THER,CHAR_THER, - CHAR_MECA,RESU_THER, + CHAR_MECA,RESU_THER,RESO_INTE, AFFE_MATERIAU,DEFI_CHAR_THER,DEFI_CHAR_MECA,RELATION,SOLVEUR,CONVERGENCE,NEWTON, INCREMENT,CHAM_MATER,**args): """ @@ -40,7 +40,7 @@ def macr_cabri_calc_ops(self,MAILLAGE,MODELE_MECA,MODELE_THER,CHAR_THER, # On met certains mots-clefs dans des variables locales pour les proteger affemateriau = AFFE_MATERIAU mail = MAILLAGE - + resointe = RESO_INTE # On importe les definitions des commandes a utiliser dans la macro # Le nom de la variable doit etre obligatoirement le nom de la commande @@ -511,7 +511,7 @@ def macr_cabri_calc_ops(self,MAILLAGE,MODELE_MECA,MODELE_THER,CHAR_THER, _F(CHARGE=cl_me11,), ), SOLVEUR = solveur, - COMP_INCR =_F(RELATION=relation,), + COMP_INCR =_F(RELATION=relation,RESO_INTE=resointe), NEWTON = newton, INCREMENT = increment, CONVERGENCE = convergence, @@ -532,7 +532,7 @@ def macr_cabri_calc_ops(self,MAILLAGE,MODELE_MECA,MODELE_THER,CHAR_THER, _F(CHARGE=cl_me11,), ), SOLVEUR = solveur, - COMP_ELAS =_F(RELATION=relation,), + COMP_ELAS =_F(RELATION=relation,RESO_INTE=resointe), NEWTON = newton, INCREMENT = increment, CONVERGENCE = convergence, diff --git a/Aster/Cata/cataSTA8/Macro/macr_cara_poutre_ops.py b/Aster/Cata/cataSTA8/Macro/macr_cara_poutre_ops.py index e0849aff..89195496 100644 --- a/Aster/Cata/cataSTA8/Macro/macr_cara_poutre_ops.py +++ b/Aster/Cata/cataSTA8/Macro/macr_cara_poutre_ops.py @@ -1,4 +1,4 @@ -#@ MODIF macr_cara_poutre_ops Macro DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +#@ MODIF macr_cara_poutre_ops Macro DATE 27/02/2006 AUTEUR DURAND C.DURAND # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -26,6 +26,7 @@ def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD, """ import types from Accas import _F + from Utilitai.Utmess import UTMESS ier=0 # On importe les definitions des commandes a utiliser dans la macro # Le nom de la variable doit etre obligatoirement le nom de la commande @@ -49,21 +50,18 @@ def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD, INTE_MAIL_2D =self.get_cmd('INTE_MAIL_2D') POST_RELEVE_T =self.get_cmd('POST_RELEVE_T') IMPR_TABLE =self.get_cmd('IMPR_TABLE') - IMPR_CO =self.get_cmd('IMPR_CO') + CREA_TABLE =self.get_cmd('CREA_TABLE') # La macro compte pour 1 dans la numerotation des commandes - #self.icmd=1 self.set_icmd(1) - # Le concept sortant (de type tabl_cara_geom) est nommé 'nomres' dans + # Le concept sortant (de type table_sdaster) est nommé 'nomres' dans # le contexte de la macro self.DeclareOut('nomres',self.sd) # if GROUP_MA_BORD and GROUP_MA: # if not LIAISON: -# ier=ier+1 -# self.cr.fatal(" Avec GROUP_MA, il faut obligatoirement preciser LIAISON, LONGUEUR ET MATERIAU") -# return ier +# UTMESS('F', "MACR_CARA_POUTRE", "Avec GROUP_MA, il faut obligatoirement preciser LIAISON, LONGUEUR ET MATERIAU") # __nomlma=LIRE_MAILLAGE(UNITE=UNITE_MAILLAGE,) @@ -79,6 +77,7 @@ def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD, AFFE=_F(TOUT='OUI', MATER=__nomdma,), ) + # --- CALCUL DES CARACTERISTIQUES GEOMETRIQUES DE LA SECTION : # ------------------------------------------------------ @@ -88,10 +87,9 @@ def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD, 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 ) - + __cageo=POST_ELEM(MODELE=__nomamo, + CHAM_MATER=__nomama, + CARA_GEOM=mfact ) # nb : si GROUP_MA n existe pas : le mot clé est ignoré # @@ -106,6 +104,7 @@ def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD, # ================================================================== 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 : # --------------------------------------------------------- @@ -128,7 +127,7 @@ def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD, # --------------------------------------------------------------- __nomapi=CREA_MAILLAGE(MAILLAGE=__nomlma, - REPERE=_F(TABLE=nomres, + REPERE=_F(TABLE=__cageo, NOM_ORIG='CDG', ), ) # --- AFFECTATION DU PHENOMENE 'THERMIQUE' AU MODELE EN VUE DE @@ -355,36 +354,34 @@ def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD, if args.has_key('GROUP_MA_INTE'): lgmaint=args['GROUP_MA_INTE'] if lgmaint != None : - motscles['CARA_POUTRE']=_F(CARA_GEOM=nomres, + motscles['CARA_POUTRE']=_F(CARA_GEOM=__cageo, LAPL_PHI=__tempe1, RT=__rt, TOUT='OUI', OPTION='CARA_TORSION', GROUP_MA_INTE=args['GROUP_MA_INTE'],) else: - motscles['CARA_POUTRE']=_F(CARA_GEOM=nomres, + motscles['CARA_POUTRE']=_F(CARA_GEOM=__cageo, LAPL_PHI=__tempe1, RT=__rt, TOUT='OUI', OPTION='CARA_TORSION', ) - nomres=POST_ELEM(reuse=nomres, - MODELE=__nomoth, - CHAM_MATER=__chmath, - **motscles ) + __cator=POST_ELEM(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',), ) + __cacis=POST_ELEM(MODELE=__nomoth, + CHAM_MATER=__chmath, + CARA_POUTRE=_F(CARA_GEOM=__cator, + LAPL_PHI_Y=__tempe2, + LAPL_PHI_Z=__tempe3, + TOUT='OUI', + OPTION='CARA_CISAILLEMENT',), ) # @@ -410,7 +407,7 @@ def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD, # ---------- __nomapt=CREA_MAILLAGE(MAILLAGE=__nomapi, - REPERE=_F(TABLE=nomres, + REPERE=_F(TABLE=__cacis, NOM_ORIG='TORSION',) ) # --- AFFECTATION DU PHENOMENE 'THERMIQUE' AU MODELE EN VUE DE @@ -542,10 +539,9 @@ def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD, # --- CALCUL DE L INERTIE DE GAUCHISSEMENT : # ------------------------------------- - nomres=POST_ELEM(reuse=nomres, - MODELE=__nomot2, + nomres=POST_ELEM(MODELE=__nomot2, CHAM_MATER=__chmat2, - CARA_POUTRE=_F(CARA_GEOM=nomres, + CARA_POUTRE=_F(CARA_GEOM=__cacis, LAPL_PHI=__tempe4, TOUT='OUI', OPTION='CARA_GAUCHI'), ) @@ -565,6 +561,9 @@ def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD, if GROUP_MA_BORD and GROUP_MA: +# --- CALCUL DES CARACTERISTIQUES GEOMETRIQUES DE LA SECTION : +# ------------------------------------------------------ + if type(GROUP_MA_BORD)==types.StringType : l_group_ma_bord=[GROUP_MA_BORD,] else: @@ -581,14 +580,11 @@ def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD, l_noeud= args['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 + UTMESS('F', "MACR_CARA_POUTRE", "GROUP_MA et GROUP_MA_BORD incoherents") if args.has_key('NOEUD') and (len(l_group_ma)!=len(l_noeud)): - ier=ier+1 - self.cr.fatal(" GROUP_MA et NOEUD incoherents") - return ier + UTMESS('F', "MACR_CARA_POUTRE", "GROUP_MA et NOEUD incoherents") + __catp2=__cageo for i in range(0,len(l_group_ma_bord)): # --- TRANSFORMATION DES GROUP_MA EN GROUP_NO SUR-LESQUELS @@ -606,7 +602,7 @@ def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD, # --------------------------------------------------------------- __nomapi=CREA_MAILLAGE(MAILLAGE=__nomlma, - REPERE=_F(TABLE=nomres, + REPERE=_F(TABLE=__cageo, NOM_ORIG='CDG', GROUP_MA=l_group_ma[i], ), ) @@ -787,30 +783,35 @@ def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD, # --- 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, - RT=__rt, - GROUP_MA=l_group_ma[i], - OPTION='CARA_TORSION' ), ) + __catp1=POST_ELEM(MODELE=__nomoth, + CHAM_MATER=__chmath, + CARA_POUTRE=_F(CARA_GEOM=__catp2, + LAPL_PHI=__tempe1, + RT=__rt, + GROUP_MA=l_group_ma[i], + OPTION='CARA_TORSION' ), ) # --- CALCUL DES COEFFICIENTS DE CISAILLEMENT ET DES COORDONNEES DU # --- CENTRE DE CISAILLEMENT/TORSION : # ------------------------------ - 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=args['LONGUEUR'], - MATERIAU=args['MATERIAU'], - LIAISON =args['LIAISON'], - OPTION='CARA_CISAILLEMENT' ), ) + __catp2=POST_ELEM(MODELE=__nomoth, + CHAM_MATER=__chmath, + CARA_POUTRE=_F(CARA_GEOM=__catp1, + LAPL_PHI_Y=__tempe2, + LAPL_PHI_Z=__tempe3, + GROUP_MA=l_group_ma[i], + LONGUEUR=args['LONGUEUR'], + MATERIAU=args['MATERIAU'], + LIAISON =args['LIAISON'], + OPTION='CARA_CISAILLEMENT' ), ) + IMPR_TABLE(TABLE=__catp2) + dprod = __catp2.EXTR_TABLE().dict_CREA_TABLE() + nomres = CREA_TABLE(**dprod) + if not GROUP_MA_BORD : + nomres=POST_ELEM(MODELE=__nomamo, + CHAM_MATER=__nomama, + CARA_GEOM=mfact ) IMPR_TABLE(TABLE=nomres) return ier diff --git a/Aster/Cata/cataSTA8/Macro/macr_lign_coupe_ops.py b/Aster/Cata/cataSTA8/Macro/macr_lign_coupe_ops.py index aa2648c8..a2912b6e 100644 --- a/Aster/Cata/cataSTA8/Macro/macr_lign_coupe_ops.py +++ b/Aster/Cata/cataSTA8/Macro/macr_lign_coupe_ops.py @@ -1,4 +1,4 @@ -#@ MODIF macr_lign_coupe_ops Macro DATE 24/05/2005 AUTEUR MCOURTOI M.COURTOIS +#@ MODIF macr_lign_coupe_ops Macro DATE 09/05/2006 AUTEUR GALENNE E.GALENNE # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -26,6 +26,7 @@ def crea_mail_lig_coup(dimension,lignes,groups): import os,sys,copy + from Utilitai.Utmess import UTMESS # construction du maillage au format Aster des segments de lignes de coupe @@ -113,15 +114,17 @@ def crea_mail_lig_coup(dimension,lignes,groups): ######################################################################## -def macr_lign_coupe_ops(self,RESULTAT,UNITE_MAILLAGE,LIGN_COUPE,NOM_CHAM,MODELE,**args): +def macr_lign_coupe_ops(self,RESULTAT,UNITE_MAILLAGE,LIGN_COUPE,NOM_CHAM, + MODELE,GROUP_MA,MAILLE,**args): """ Ecriture de la macro MACR_LIGN_COUPE """ import os,string,types from Accas import _F from Noyau.N_utils import AsType - import aster + import aster,math from Utilitai.UniteAster import UniteAster + from Utilitai.Utmess import UTMESS ier=0 # On importe les definitions des commandes a utiliser dans la macro @@ -131,9 +134,9 @@ def macr_lign_coupe_ops(self,RESULTAT,UNITE_MAILLAGE,LIGN_COUPE,NOM_CHAM,MODELE, PROJ_CHAMP =self.get_cmd('PROJ_CHAMP') POST_RELEVE_T =self.get_cmd('POST_RELEVE_T') CREA_TABLE =self.get_cmd('CREA_TABLE') + MODI_REPERE =self.get_cmd('MODI_REPERE') # La macro compte pour 1 dans la numerotation des commandes - #self.icmd=1 self.set_icmd(1) nomresu=RESULTAT.nom @@ -141,9 +144,7 @@ def macr_lign_coupe_ops(self,RESULTAT,UNITE_MAILLAGE,LIGN_COUPE,NOM_CHAM,MODELE, n_modele=string.strip(l_modele[0]) if n_modele=='' : if MODELE==None: - ier=ier+1 - self.cr.fatal(" nom du modele absent dans le concept resultat "+nomresu) - return ier + UTMESS('F', "MACR_LIGN_COUPE", "nom du modele absent dans le concept resultat "+nomresu) else : n_modele=MODELE.nom l_mailla=aster.getvectjev(n_modele.ljust(8)+'.MODELE .NOMA') n_mailla=string.strip(l_mailla[0]) @@ -160,9 +161,7 @@ def macr_lign_coupe_ops(self,RESULTAT,UNITE_MAILLAGE,LIGN_COUPE,NOM_CHAM,MODELE, elif m['GROUP_NO']!=None : ngrno=m['GROUP_NO'].ljust(8).upper() if ngrno not in collgrno.keys() : - ier=ier+1 - self.cr.fatal(" le group_no "+ngrno+" n est pas dans le maillage "+n_mailla) - return ier + UTMESS('F', "MACR_LIGN_COUPE", "le group_no "+ngrno+" n est pas dans le maillage "+n_mailla) grpn=collgrno[ngrno] l_coor_group=[ngrno,] for node in grpn: @@ -170,9 +169,7 @@ def macr_lign_coupe_ops(self,RESULTAT,UNITE_MAILLAGE,LIGN_COUPE,NOM_CHAM,MODELE, groups.append(l_coor_group) if minidim!=dime: - ier=ier+1 - self.cr.fatal(" dimensions de maillage et de coordonnees incoherentes") - return ier + UTMESS('F', "MACR_LIGN_COUPE", "dimensions de maillage et de coordonnees incoherentes") # Création du maillage des NB_POINTS segments entre COOR_ORIG et COOR_EXTR @@ -214,12 +211,124 @@ def macr_lign_coupe_ops(self,RESULTAT,UNITE_MAILLAGE,LIGN_COUPE,NOM_CHAM,MODELE, PHENOMENE='THERMIQUE', MODELISATION='PLAN',),); + motscles={} + motscles['VIS_A_VIS']=[] + if GROUP_MA != None : + motscles['VIS_A_VIS'].append(_F(GROUP_MA_1 = GROUP_MA,TOUT_2='OUI'),) + if MAILLE != None : + motscles['VIS_A_VIS'].append(_F(MAILLE_1 = MAILLE,TOUT_2='OUI'),) + __recou=PROJ_CHAMP(METHODE='ELEM', RESULTAT=RESULTAT, MODELE_1=self.jdc.current_context[n_modele], MODELE_2=__mocou, TYPE_CHAM='NOEU', - NOM_CHAM=NOM_CHAM,); + NOM_CHAM=NOM_CHAM, **motscles); + + + + # Expression des contraintes aux noeuds ou des déplacements dans le repere local + __remodr=__recou + if AsType(RESULTAT).__name__ in ('evol_elas','evol_noli') : + for m in LIGN_COUPE : + if m['VECT_Y'] !=None : + epsi=0.00000001 + # --- determination des angles nautiques + cx1=m['COOR_EXTR'][0]-m['COOR_ORIG'][0] + cx2=m['COOR_EXTR'][1]-m['COOR_ORIG'][1] + cx3=0. + if dime == 3: + cx3=m['COOR_EXTR'][2]-m['COOR_ORIG'][2] + nvx=math.sqrt(cx1**2+cx2**2+cx3**2) + if abs(nvx) < epsi: + UTMESS('F', "MACR_LIGN_COUPE", "definition incorrecte de la ligne de coupe") + cx1=cx1/nvx + cx2=cx2/nvx + cx3=cx3/nvx + cy1=m['VECT_Y'][0] + cy2=m['VECT_Y'][1] + cy3=0. + if dime == 3: + cy3=m['VECT_Y'][2] + nvy=math.sqrt(cy1**2+cy2**2+cy3**2) + if abs(nvy) < epsi: + UTMESS('F', "MACR_LIGN_COUPE", "valeurs incorrectes pour VECT_Y") + cy1=cy1/nvy + cy2=cy2/nvy + cy3=cy3/nvy + if ((abs(cx1-cy1) epsi : + cz1=cx2*cy3-cx3*cy2 + cz2=cx3*cy1-cx1*cy3 + cz3=cx1*cy2-cx2*cy1 + nvz=math.sqrt(cz1**2+cz2**2+cz3**2) + cz1=cz1/nvz + cz2=cz2/nvz + cz3=cz3/nvz + cy1=cz2*cx3-cz3*cx2 + cy2=cz3*cx1-cz1*cx3 + cy3=cz1*cx2-cz2*cx1 + nvy=math.sqrt(cy1**2+cy2**2+cy3**2) + cy1=cy1/nvy + cy2=cy2/nvy + cy3=cy3/nvy + UTMESS('A','MACR_LIGN_COUPE','LE VECTEUR Y N EST PAS ORTHOGONAL A LA LIGNE DE COUPE' + +'LE VECTEUR Y A ETE ORTHONORMALISE POUR VOUS') + UTMESS('A','MACR_LIGN_COUPE','VECT_Y=('+str(cy1)+','+str(cy2)+','+str(cy3)+')') + else: + cz1=cx2*cy3-cx3*cy2 + cz2=cx3*cy1-cx1*cy3 + cz3=cx1*cy2-cx2*cy1 + beta=0. + gamma=0. + if dime ==2: + alpha = math.atan2(cx2,cx1) + else: + if cx1**2 + cx2**2 > epsi : + alpha=math.atan2(cx2,cx1) + beta=math.asin(cx3) + gamma=math.atan2(cy3,cz3) + else: + alpha=math.atan2(cy1,cz1) + beta=math.asin(cx3) + gamma=0. + alpha=alpha*180/math.pi + beta=beta*180/math.pi + gamma=gamma*180/math.pi + + # --- MODI_REPERE + motscles={} + motscles['MODI_CHAM']=[] + motscles['DEFI_REPERE']=[] + # MODI_CHAM + if NOM_CHAM == 'DEPL': + if dime == 2: + LCMP=['DX','DY'] + TYPE_CHAM='VECT_2D' + elif dime ==3 : + LCMP=['DX','DY','DZ'] + TYPE_CHAM='VECT_3D' + motscles['MODI_CHAM'].append(_F(NOM_CHAM=NOM_CHAM,NOM_CMP=LCMP,TYPE_CHAM=TYPE_CHAM),) + elif NOM_CHAM in ('SIGM_NOEU_DEPL','SIGM_NOEU_SIEF','SIGM_NOEU_ELGA','SIGM_NOEU_COQU'): + if dime == 2: + LCMP=['SIXX','SIYY','SIZZ','SIXY'] + TYPE_CHAM='TENS_2D' + elif dime ==3 : + LCMP=['SIXX','SIYY','SIZZ','SIXY','SIXZ','SIYZ'] + TYPE_CHAM='TENS_3D' + motscles['MODI_CHAM'].append(_F(NOM_CHAM=NOM_CHAM,NOM_CMP=LCMP,TYPE_CHAM=TYPE_CHAM),) + # DEFI_REPERE + ANGL_NAUT=[] + ANGL_NAUT.append(alpha) + if dime ==3: + ANGL_NAUT.append(beta) + ANGL_NAUT.append(gamma) + motscles['DEFI_REPERE'].append(_F(REPERE='UTILISATEUR',ANGL_NAUT=ANGL_NAUT),) + __remodr=MODI_REPERE(RESULTAT=__recou,**motscles) + + # Production d'une table pour toutes les lignes de coupe @@ -236,7 +345,7 @@ def macr_lign_coupe_ops(self,RESULTAT,UNITE_MAILLAGE,LIGN_COUPE,NOM_CHAM,MODELE, if m['INTITULE'] !=None : intitl=m['INTITULE'] else : intitl=groupe mcACTION.append( _F(INTITULE = intitl, - RESULTAT = __recou, + RESULTAT = __remodr, GROUP_NO = groupe, NOM_CHAM = NOM_CHAM, TOUT_CMP = 'OUI', diff --git a/Aster/Cata/cataSTA8/Macro/macr_recal_ops.py b/Aster/Cata/cataSTA8/Macro/macr_recal_ops.py index 17597e90..40e793af 100644 --- a/Aster/Cata/cataSTA8/Macro/macr_recal_ops.py +++ b/Aster/Cata/cataSTA8/Macro/macr_recal_ops.py @@ -1,4 +1,4 @@ -#@ MODIF macr_recal_ops Macro DATE 14/03/2005 AUTEUR DURAND C.DURAND +#@ MODIF macr_recal_ops Macro DATE 08/11/2005 AUTEUR ASSIRE A.ASSIRE # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -22,35 +22,40 @@ def macr_recal_ops(self,UNITE_ESCL, RESU_EXP, POIDS, LIST_PARA, RESU_CALC, ITER_MAXI, RESI_GLOB_RELA,UNITE_RESU,PARA_DIFF_FINI, - GRAPHIQUE, **args ): + GRAPHIQUE, INFO, **args ): """Macro commande réalisant le recalage de modèles Aster""", # Initialisation du compteur d'erreurs ier=0 - # On essaie d'importer Numeric -> ERREUR FATALE - try: - import Numeric - except ImportError: - ier=ier+1 - self.cr.fatal(" Le module Numeric de Python n'a pu etre chargé") - return ier - # On essaie d'importer Gnuplot -> PAS DE GRAPHIQUE - try: - import Gnuplot - gnuplot=1 - except ImportError: - gnuplot=0 - import string - import copy - import types + + import string, copy, types, Numeric import Macro from Cata import cata from Cata.cata import DEFI_LIST_REEL - from Macro.recal import gestion,transforme_list_Num,calcul_F,graphique + from Macro.recal import gestion,transforme_list_Num,calcul_F from Macro import reca_message from Macro import reca_algo from Macro import reca_interp + from Macro import reca_graphique + + try: + from Utilitai.Utmess import UTMESS + except ImportError: + def UTMESS(code,sprg,texte): + fmt='\n <%s> <%s> %s\n\n' + print fmt % (code,sprg,texte) + + # Test du mot-clé GRAPHIQUE + if GRAPHIQUE: + dGRAPHIQUE=GRAPHIQUE[0].cree_dict_valeurs(GRAPHIQUE[0].mc_liste) + if dGRAPHIQUE.has_key('FORMAT') and dGRAPHIQUE['FORMAT'] == 'GNUPLOT': + # On essaie d'importer Gnuplot -> PAS DE GRAPHIQUE + try: + import Gnuplot + except ImportError: + GRAPHIQUE == None + UTMESS('A','MACR_RECAL',"Le logiciel Gnuplot ou le module python Gnuplot.py n'est pas disponible. On desactive l'affichage des courbes.") + # La macro compte pour 1 dans l'execution des commandes - #self.icmd=1 self.set_icmd(1) self.DeclareOut('nomres',self.sd) @@ -68,10 +73,7 @@ def macr_recal_ops(self,UNITE_ESCL, RESU_EXP, POIDS, LIST_PARA, RESU_CALC, #_____________________________________________ texte_erreur = gestion(UNITE_ESCL,LIST_PARA,RESU_CALC,RESU_EXP,POIDS,GRAPHIQUE,UNITE_RESU) if (texte_erreur != ""): - ier=ier+1 - texte_erreur=' '+texte_erreur - self.cr.fatal(texte_erreur) - return ier + UTMESS('F', "MACR_RECAL", texte_erreur) #_____________________________________________ # @@ -132,16 +134,19 @@ def macr_recal_ops(self,UNITE_ESCL, RESU_EXP, POIDS, LIST_PARA, RESU_CALC, A = Dim.adim_sensi(A) residu = reca_algo.test_convergence(gradient_init,erreur,A,s) Mess.affiche_result_iter(iter,J,val,residu,Act,UNITE_RESU) - if (gnuplot): - if (GRAPHIQUE): + + # Affichage des courbes + if GRAPHIQUE: GRAPHE_UL_OUT=GRAPHIQUE['UNITE'] interactif=(GRAPHIQUE['INTERACTIF']=='OUI') - graphique(L_F,RESU_EXP,RESU_CALC,iter,GRAPHE_UL_OUT,interactif) + reca_graphique.graphique(GRAPHIQUE['FORMAT'],L_F,RESU_EXP,RESU_CALC,iter,GRAPHE_UL_OUT,interactif) + # On teste un manque de temps CPU restant,temps_iter,err=reca_algo.temps_CPU(self,restant,temps_iter) if (err==1): ier=ier+1 return ier + #_____________________________________________ # # FIN DES ITERATIONS diff --git a/Aster/Cata/cataSTA8/Macro/macro_elas_mult_ops.py b/Aster/Cata/cataSTA8/Macro/macro_elas_mult_ops.py index 38d6e265..bdd9e7df 100644 --- a/Aster/Cata/cataSTA8/Macro/macro_elas_mult_ops.py +++ b/Aster/Cata/cataSTA8/Macro/macro_elas_mult_ops.py @@ -1,4 +1,4 @@ -#@ MODIF macro_elas_mult_ops Macro DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +#@ MODIF macro_elas_mult_ops Macro DATE 05/09/2005 AUTEUR DURAND C.DURAND # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -29,6 +29,7 @@ def macro_elas_mult_ops(self,MODELE,CHAM_MATER,CARA_ELEM,NUME_DDL, ier=0 import types from Accas import _F + from Utilitai.Utmess import UTMESS # On met le mot cle NUME_DDL dans une variable locale pour le proteger numeddl=NUME_DDL @@ -44,7 +45,6 @@ def macro_elas_mult_ops(self,MODELE,CHAM_MATER,CARA_ELEM,NUME_DDL, 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 self.set_icmd(1) # Le concept sortant (de type mult_elas ou fourier_elas) est nommé @@ -62,9 +62,7 @@ def macro_elas_mult_ops(self,MODELE,CHAM_MATER,CARA_ELEM,NUME_DDL, 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 + UTMESS('F', "MACRO_ELAS_MULT", "On ne peut avoir a la fois NOM_CAS et MODE_FOURIER") if (numeddl in self.sdprods) or (numeddl==None): # Si le concept numeddl est dans self.sdprods ou n est pas nommé diff --git a/Aster/Cata/cataSTA8/Macro/macro_matr_ajou_ops.py b/Aster/Cata/cataSTA8/Macro/macro_matr_ajou_ops.py index 34595923..c3b17003 100644 --- a/Aster/Cata/cataSTA8/Macro/macro_matr_ajou_ops.py +++ b/Aster/Cata/cataSTA8/Macro/macro_matr_ajou_ops.py @@ -1,4 +1,4 @@ -#@ MODIF macro_matr_ajou_ops Macro DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +#@ MODIF macro_matr_ajou_ops Macro DATE 05/09/2005 AUTEUR DURAND C.DURAND # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -29,6 +29,8 @@ def macro_matr_ajou_ops(self,MAILLAGE,GROUP_MA_FLUIDE,GROUP_MA_INTERF,MODELISATI """ from Accas import _F import types + import aster + from Utilitai.Utmess import UTMESS ier=0 # On importe les definitions des commandes a utiliser dans la macro @@ -44,17 +46,17 @@ def macro_matr_ajou_ops(self,MAILLAGE,GROUP_MA_FLUIDE,GROUP_MA_INTERF,MODELISATI self.set_icmd(1) if len(FLUIDE)==1 : - print ' tout le domaine fluide specifie dans GROUP_MA_INTERF et GROUP_MA_FLUIDE' - print ' sera affecte par la masse volumique RHO = ',FLUIDE['RHO'] + message= ' tout le domaine fluide specifie dans GROUP_MA_INTERF et GROUP_MA_FLUIDE \n' + message=message+ ' sera affecte par la masse volumique RHO = '+str(FLUIDE['RHO'])+' \n' + aster.affiche('MESSAGE',message) if FLUIDE['GROUP_MA']!=None : - print ' cas fluide simple : le group_ma dans lequel vous affectez la masse' - print 'volumique RHO doit etre la reunion de GROUP_MA_INTERF et GROUP_MA_FLUIDE.' + message= ' cas fluide simple : le group_ma dans lequel vous affectez la masse \n' + message=message+ 'volumique RHO doit etre la reunion de GROUP_MA_INTERF et GROUP_MA_FLUIDE. \n' + aster.affiche('MESSAGE',message) else : for flu in FLUIDE : if flu['GROUP_MA']==None : - self.cr.fatal(" cas fluides multiples : precisez le GROUP_MA dans lequel vous affectez la masse volumique RHO.") - ier=ier+1 - return ier + UTMESS('F', "MACRO_MATR_AJOU", "cas fluides multiples : precisez le GROUP_MA dans lequel vous affectez la masse volumique RHO") IOCFLU=len(FLUIDE) @@ -109,9 +111,7 @@ def macro_matr_ajou_ops(self,MAILLAGE,GROUP_MA_FLUIDE,GROUP_MA_INTERF,MODELISATI if DDL['GROUP_NO']!=None : mfact=_F(GROUP_NO=DDL['GROUP_NO'],TEMP=DDL['PRES_FLUIDE']) affimp.append(mfact) if nflui==0: - self.cr.fatal(" PRES_FLUIDE obligatoire une fois") - ier=ier+1 - return ier + UTMESS('F', "MACRO_MATR_AJOU", "PRES_FLUIDE obligatoire une fois") __CHARGE=AFFE_CHAR_THER( MODELE = __NOMFLU, TEMP_IMPO = affimp ) @@ -190,9 +190,7 @@ def macro_matr_ajou_ops(self,MAILLAGE,GROUP_MA_FLUIDE,GROUP_MA_INTERF,MODELISATI if MODE_MECA !=None : mostcles['MODE_MECA'] =MODE_MECA elif DEPL_IMPO !=None : mostcles['CHAM_NO'] =DEPL_IMPO else : - self.cr.fatal(" amortissement ajoute sur modele generalise non encore implante") - ier=ier+1 - return ier + UTMESS('F', "MACRO_MATR_AJOU", "amortissement ajoute sur modele generalise non encore implante") AMORAJ = CALC_MATR_AJOU(MODELE_FLUIDE = __NOMFLU, MODELE_INTERFACE = __NOMINT, @@ -214,9 +212,7 @@ def macro_matr_ajou_ops(self,MAILLAGE,GROUP_MA_FLUIDE,GROUP_MA_INTERF,MODELISATI if MODE_MECA !=None : mostcles['MODE_MECA'] =MODE_MECA elif DEPL_IMPO !=None : mostcles['CHAM_NO'] =DEPL_IMPO else : - self.cr.fatal(" rigidite ajoutee sur modele generalise non encore implante") - ier=ier+1 - return ier + UTMESS('F', "MACRO_MATR_AJOU", "rigidite ajoute sur modele generalise non encore implante") RIGIAJ = CALC_MATR_AJOU(MODELE_FLUIDE = __NOMFLU, MODELE_INTERFACE = __NOMINT, diff --git a/Aster/Cata/cataSTA8/Macro/macro_matr_asse_ops.py b/Aster/Cata/cataSTA8/Macro/macro_matr_asse_ops.py index 4c7f99f1..60374b6c 100644 --- a/Aster/Cata/cataSTA8/Macro/macro_matr_asse_ops.py +++ b/Aster/Cata/cataSTA8/Macro/macro_matr_asse_ops.py @@ -1,4 +1,4 @@ -#@ MODIF macro_matr_asse_ops Macro DATE 01/04/2005 AUTEUR VABHHTS J.PELLET +#@ MODIF macro_matr_asse_ops Macro DATE 30/01/2006 AUTEUR DURAND C.DURAND # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -26,6 +26,7 @@ def macro_matr_asse_ops(self,MODELE,CHAM_MATER,CARA_ELEM,MATR_ASSE, Ecriture de la macro MACRO_MATR_ASSE """ ier=0 + from Utilitai.Utmess import UTMESS # On met le mot cle NUME_DDL dans une variable locale pour le proteger numeddl=NUME_DDL @@ -35,7 +36,6 @@ def macro_matr_asse_ops(self,MODELE,CHAM_MATER,CARA_ELEM,MATR_ASSE, 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 self.set_icmd(1) if SOLVEUR: @@ -46,36 +46,28 @@ def macro_matr_asse_ops(self,MODELE,CHAM_MATER,CARA_ELEM,MATR_ASSE, 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 + UTMESS('F', "MACRO_MATR_ASSE", "Avec methode LDLT, RENUM doit etre SANS ou RCMK") elif methode=='MULT_FRONT': if SOLVEUR['RENUM']: renum=SOLVEUR['RENUM'] else: renum='MDA' if renum not in ('MDA','MD','METIS'): - ier=ier+1 - self.cr.fatal(" Avec methode MULT_FRONT, RENUM doit etre MDA, MD ou RCMK.") - return ier + UTMESS('F', "MACRO_MATR_ASSE", "Avec methode MULT_FRONT, RENUM doit etre MDA, MD ou RCMK") elif methode=='MUMPS': if SOLVEUR['RENUM']: renum=SOLVEUR['RENUM'] else: renum='SANS' if renum not in ('SANS',): - ier=ier+1 - self.cr.fatal(" Avec methode MUMPS, RENUM doit etre SANS.") - return ier + UTMESS('F', "MACRO_MATR_ASSE", "Avec methode MUMPS, RENUM doit etre SANS") elif methode=='GCPC': if SOLVEUR['RENUM']: renum=SOLVEUR['RENUM'] else: renum='SANS' if renum not in ('SANS','RCMK'): - ier=ier+1 - self.cr.fatal(" Avec methode GCPC, RENUM doit etre SANS ou RCMK.") - return ier + UTMESS('F', "MACRO_MATR_ASSE", "Avec methode GCPC, RENUM doit etre SANS ou RCMK") else: methode='MULT_FRONT' renum ='MDA' @@ -108,18 +100,13 @@ def macro_matr_asse_ops(self,MODELE,CHAM_MATER,CARA_ELEM,MATR_ASSE, 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 + UTMESS('F', "MACRO_MATR_ASSE", "UNE DES OPTIONS DOIT ETRE RIGI_MECA OU RIGI_THER OU RIGI_ACOU OU RIGI_MECA_LAGR") motscles={'OPTION':option} if option == '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 + UTMESS('F', "MACRO_MATR_ASSE", "POUR CALCULER AMOR_MECA, IL FAUT AVOIR CALCULE RIGI_MECA ET MASS_MECA AUPARAVANT (DANS LE MEME APPEL)") if CHAM_MATER != None: motscles['RIGI_MECA'] =rigel motscles['MASS_MECA'] =masel @@ -141,23 +128,22 @@ def macro_matr_asse_ops(self,MODELE,CHAM_MATER,CARA_ELEM,MATR_ASSE, try : motscles['PROPAGATION'] =m['PROPAGATION'] except IndexError : pass - print motscles - __a=CALC_MATR_ELEM(MODELE=MODELE,**motscles) + _a=CALC_MATR_ELEM(MODELE=MODELE,**motscles) if option == 'RIGI_MECA': - rigel = __a + rigel = _a lrigel = 1 if option == 'MASS_MECA': - masel = __a + 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) + 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) + mm=ASSE_MATRICE(MATR_ELEM=_a,NUME_DDL=num) return ier diff --git a/Aster/Cata/cataSTA8/Macro/macro_miss_3d_ops.py b/Aster/Cata/cataSTA8/Macro/macro_miss_3d_ops.py index 0d5d360b..54af120b 100644 --- a/Aster/Cata/cataSTA8/Macro/macro_miss_3d_ops.py +++ b/Aster/Cata/cataSTA8/Macro/macro_miss_3d_ops.py @@ -1,4 +1,4 @@ -#@ MODIF macro_miss_3d_ops Macro DATE 03/11/2004 AUTEUR ACBHHCD G.DEVESA +#@ MODIF macro_miss_3d_ops Macro DATE 20/03/2006 AUTEUR ACBHHCD G.DEVESA # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -22,12 +22,15 @@ def macro_miss_3d_ops(self,UNITE_IMPR_ASTER,UNITE_OPTI_MISS, UNITE_MODELE_SOL,UNITE_RESU_IMPE, - PROJET,REPERTOIRE,OPTION,VERSION,**args): + PROJET,REPERTOIRE,OPTION,VERSION, + UNITE_RESU_FORC,PARAMETRE,**args): """ Ecriture de la macro MACRO_MISS_3D """ import types from Accas import _F + from Utilitai.Utmess import UTMESS + from types import TupleType, ListType ier=0 # On importe les definitions des commandes a utiliser dans la macro @@ -35,7 +38,6 @@ def macro_miss_3d_ops(self,UNITE_IMPR_ASTER,UNITE_OPTI_MISS, DEFI_FICHIER =self.get_cmd('DEFI_FICHIER') EXEC_LOGICIEL =self.get_cmd('EXEC_LOGICIEL') # La macro compte pour 1 dans la numerotation des commandes - #self.icmd=1 self.set_icmd(1) DEFI_FICHIER(ACTION='LIBERER',UNITE=UNITE_IMPR_ASTER) @@ -60,7 +62,32 @@ def macro_miss_3d_ops(self,UNITE_IMPR_ASTER,UNITE_OPTI_MISS, popti = 'fort.'+str(UNITE_OPTI_MISS) pdsol = 'fort.'+str(UNITE_MODELE_SOL) primp = 'fort.'+str(UNITE_RESU_IMPE) - + prfor = 'fort.'+str(UNITE_RESU_FORC) + + l_para = ['FREQ_MIN','FREQ_MAX','FREQ_PAS','Z0','RFIC','SURF', + 'FICH_RESU_IMPE','FICH_RESU_FORC','DREF','ALGO', + 'OFFSET_MAX','OFFSET_NB','SPEC_MAX','SPEC_NB','ISSF', + 'FICH_POST_TRAI','CONTR_NB','CONTR_LISTE','LFREQ_NB', + 'LFREQ_LISTE'] + if PARAMETRE != None and PARAMETRE['LFREQ_NB'] != None: + if len(PARAMETRE['LFREQ_LISTE']) != PARAMETRE['LFREQ_NB']: + UTMESS('F', 'MACRO_MISS3D', 'Longueur de LFREQ_LISTE incorrecte') + if PARAMETRE != None and PARAMETRE['CONTR_NB'] != None: + if len(PARAMETRE['CONTR_LISTE']) != 3*PARAMETRE['CONTR_NB']: + UTMESS('F', 'MACRO_MISS3D', 'Longueur de CONTR_LISTE incorrecte') + + dpara = {} + for cle in l_para: + if cle in ('SURF', 'ISSF'): + dpara[cle] = 'NON' + else: + dpara[cle] = '0' + if PARAMETRE != None and PARAMETRE[cle] != None: + if type(PARAMETRE[cle]) in (TupleType, ListType): + dpara[cle] = ' '.join([str(s) for s in PARAMETRE[cle]]) + else: + dpara[cle] = str(PARAMETRE[cle]) + EXEC_LOGICIEL( LOGICIEL=miss3d, ARGUMENT=(_F(NOM_PARA=MODUL2), @@ -70,7 +97,29 @@ def macro_miss_3d_ops(self,UNITE_IMPR_ASTER,UNITE_OPTI_MISS, _F(NOM_PARA=popti), _F(NOM_PARA=pdsol), _F(NOM_PARA=primp), - _F(NOM_PARA=VERSION), ), + _F(NOM_PARA=VERSION), + _F(NOM_PARA=dpara['FREQ_MIN']), + _F(NOM_PARA=dpara['FREQ_MAX']), + _F(NOM_PARA=dpara['FREQ_PAS']), + _F(NOM_PARA=dpara['Z0']), + _F(NOM_PARA=dpara['SURF']), + _F(NOM_PARA=dpara['RFIC']), + _F(NOM_PARA=dpara['FICH_RESU_IMPE']), + _F(NOM_PARA=dpara['FICH_RESU_FORC']), + _F(NOM_PARA=dpara['DREF']), + _F(NOM_PARA=dpara['ALGO']), + _F(NOM_PARA=dpara['OFFSET_MAX']), + _F(NOM_PARA=dpara['OFFSET_NB']), + _F(NOM_PARA=dpara['SPEC_MAX']), + _F(NOM_PARA=dpara['SPEC_NB']), + _F(NOM_PARA=dpara['ISSF']), + _F(NOM_PARA=dpara['FICH_POST_TRAI']), + _F(NOM_PARA=dpara['CONTR_NB']), + _F(NOM_PARA=dpara['CONTR_LISTE']), + _F(NOM_PARA=dpara['LFREQ_NB']), + _F(NOM_PARA=dpara['LFREQ_LISTE']), + _F(NOM_PARA=prfor), + ), ) return ier diff --git a/Aster/Cata/cataSTA8/Macro/macro_mode_meca_ops.py b/Aster/Cata/cataSTA8/Macro/macro_mode_meca_ops.py index efbd4db3..a24af1f6 100644 --- a/Aster/Cata/cataSTA8/Macro/macro_mode_meca_ops.py +++ b/Aster/Cata/cataSTA8/Macro/macro_mode_meca_ops.py @@ -1,4 +1,4 @@ -#@ MODIF macro_mode_meca_ops Macro DATE 30/11/2004 AUTEUR MCOURTOI M.COURTOIS +#@ MODIF macro_mode_meca_ops Macro DATE 14/06/2005 AUTEUR DURAND C.DURAND # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -40,7 +40,6 @@ def macro_mode_meca_ops(self,MATR_A,MATR_B,INFO,METHODE,OPTION,CALC_FREQ, EXTR_MODE =self.get_cmd('EXTR_MODE') DETRUIRE =self.get_cmd('DETRUIRE') # La macro compte pour 1 dans la numerotation des commandes - #self.icmd=1 self.set_icmd(1) nompro=None diff --git a/Aster/Cata/cataSTA8/Macro/macro_proj_base_ops.py b/Aster/Cata/cataSTA8/Macro/macro_proj_base_ops.py index edfee029..589dde01 100644 --- a/Aster/Cata/cataSTA8/Macro/macro_proj_base_ops.py +++ b/Aster/Cata/cataSTA8/Macro/macro_proj_base_ops.py @@ -1,4 +1,4 @@ -#@ MODIF macro_proj_base_ops Macro DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +#@ MODIF macro_proj_base_ops Macro DATE 05/09/2005 AUTEUR DURAND C.DURAND # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -25,12 +25,12 @@ def macro_proj_base_ops(self,BASE,NB_VECT,MATR_ASSE_GENE,VECT_ASSE_GENE,PROFIL,* Ecriture de la macro MACRO_PROJ_BASE """ ier=0 + from Utilitai.Utmess import UTMESS # On importe les definitions des commandes a utiliser dans la macro NUME_DDL_GENE =self.get_cmd('NUME_DDL_GENE') PROJ_MATR_BASE =self.get_cmd('PROJ_MATR_BASE') PROJ_VECT_BASE =self.get_cmd('PROJ_VECT_BASE') # La macro compte pour 1 dans la numerotation des commandes - #self.icmd=1 self.set_icmd(1) _num=NUME_DDL_GENE(BASE=BASE,NB_VECT=NB_VECT,STOCKAGE=PROFIL) @@ -40,9 +40,7 @@ def macro_proj_base_ops(self,BASE,NB_VECT,MATR_ASSE_GENE,VECT_ASSE_GENE,PROFIL,* 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 + UTMESS('F', "MACRO_PROJ_BASE", "MATR_ASSE et MATR_ASSE_GENE absents") self.DeclareOut('mm',m['MATRICE']) mm=PROJ_MATR_BASE(BASE=BASE,NUME_DDL_GENE=_num,**motscles) @@ -53,9 +51,7 @@ def macro_proj_base_ops(self,BASE,NB_VECT,MATR_ASSE_GENE,VECT_ASSE_GENE,PROFIL,* 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 + UTMESS('F', "MACRO_PROJ_BASE", "MATR_ASSE et MATR_ASSE_GENE absents") motscles['TYPE_VECT']=v['TYPE_VECT'] self.DeclareOut('vv',v['VECTEUR']) vv=PROJ_VECT_BASE(BASE=BASE,NUME_DDL_GENE=_num,**motscles) diff --git a/Aster/Cata/cataSTA8/Macro/post_k1_k2_k3_ops.py b/Aster/Cata/cataSTA8/Macro/post_k1_k2_k3_ops.py new file mode 100644 index 00000000..5f3f5533 --- /dev/null +++ b/Aster/Cata/cataSTA8/Macro/post_k1_k2_k3_ops.py @@ -0,0 +1,891 @@ +#@ MODIF post_k1_k2_k3_ops Macro DATE 22/05/2006 AUTEUR REZETTE C.REZETTE +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +def veri_tab(tab,nom,ndim) : + from Utilitai.Utmess import UTMESS + macro = 'POST_K1_K2_K3' + for label in ('DX','DY','COOR_X','COOR_Y','ABSC_CURV') : + if label not in tab.para : + message='le label '+label+' doit etre present dans la table : '+nom + UTMESS('F', macro, message) + if ndim==3 : + if 'DZ' not in tab.para : + message='le label DZ doit etre present dans la table : '+nom + UTMESS('F', macro, message) + if 'COOR_Z' not in tab.para : + message='le label COOR_Z doit etre present dans la table : '+nom + UTMESS('F', macro, message) + +def cross_product(a,b): + cross = [0]*3 + cross[0] = a[1]*b[2]-a[2]*b[1] + cross[1] = a[2]*b[0]-a[0]*b[2] + cross[2] = a[0]*b[1]-a[1]*b[0] + return cross + +def post_k1_k2_k3_ops(self,MODELISATION,FOND_FISS,MATER,RESULTAT, + TABL_DEPL_SUP,TABL_DEPL_INF,ABSC_CURV_MAXI,PREC_VIS_A_VIS, + TOUT_ORDRE,NUME_ORDRE,LIST_ORDRE,INST,LIST_INST,SYME_CHAR, + INFO,VECT_K1,TITRE,**args): + """ + Macro POST_K1_K2_K3 + Calcul des facteurs d'intensité de contraintes en 2D et en 3D + par extrapolation des sauts de déplacements sur les lèvres de + la fissure. Produit une table. + """ + import aster + import string + import copy + import math + import Numeric + from Numeric import array,asarray,Float,sqrt,matrixmultiply,transpose,sign,resize,dot,multiply + from math import pi + from types import ListType, TupleType + from Accas import _F + from Utilitai.Table import Table, merge + EnumTypes = (ListType, TupleType) + + macro = 'POST_K1_K2_K3' + from Accas import _F + from Utilitai.Utmess import UTMESS + + ier = 0 + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + # Le concept sortant (de type table_sdaster ou dérivé) est tab + self.DeclareOut('tabout', self.sd) + + # On importe les definitions des commandes a utiliser dans la macro + # Le nom de la variable doit etre obligatoirement le nom de la commande + CREA_TABLE = self.get_cmd('CREA_TABLE') + CALC_TABLE = self.get_cmd('CALC_TABLE') + IMPR_TABLE = self.get_cmd('IMPR_TABLE') + POST_RELEVE_T = self.get_cmd('POST_RELEVE_T') + DETRUIRE = self.get_cmd('DETRUIRE') + MACR_LIGN_COUPE = self.get_cmd('MACR_LIGN_COUPE') + +# ------------------------------------------------------------------ +# CARACTERISTIQUES MATERIAUX +# ------------------------------------------------------------------ + matph = aster.getvectjev( string.ljust(MATER.nom,8)+'.MATERIAU.NOMRC ') + phenom=None + for cmpt in matph : + if cmpt[:4]=='ELAS' : + phenom=cmpt + break + if phenom==None : UTMESS('F', macro, 'IL FAUT DEFINIR ELAS DANS DEFI_MATERIAU') +# --- RECHERCHE SI LE MATERIAU DEPEND DE LA TEMPERATURE: + valk = aster.getvectjev( string.ljust(MATER.nom,8)+'.'+phenom[:10]+'.VALK') + valk = [x.strip() for x in valk] + valr = aster.getvectjev( string.ljust(MATER.nom,8)+'.'+phenom[:10]+'.VALR') + dicmat=dict(zip(valk,valr)) +# --- PROPRIETES MATERIAUX DEPENDANTES DE LA TEMPERATURE + Tempe3D = False + if dicmat.has_key('TEMP_DEF') and FOND_FISS and RESULTAT : +# on recupere juste le nom du resultat thermique + ndim = 3 + Lchar = aster.getvectjev(string.ljust(RESULTAT.nom,8)+'.0000.EXCIT.LCHA ') + for i in range(len(Lchar)): + resuth = aster.getvectjev(Lchar[i][0:8]+'.CHME.TEMPE.TEMP ') + if resuth !=None : + Tempe3D = True + break + elif dicmat.has_key('TEMP_DEF') and not Tempe3D : + message = 'LES PROPRIETES MATERIAUX, NECESSAIRES AUX CALCULS \n' + message = message +'DES COEFFICIENTS D INTENSITE DES CONTRAINTES, ONT ETE OBTENUES A LA\n' + message = message +'TEMPERATURE DE REFERENCE DU MATERIAU ET NON A LA TEMPERATURE CALCULEE.' + UTMESS('A', macro, message) + nompar = ('TEMP',) + valpar = (dicmat['TEMP_DEF'],) + nomres=['E','NU'] + valres,codret = MATER.RCVALE('ELAS',nompar,valpar,nomres,'F') + e = valres[0] + nu = valres[1] + + +# --- PROPRIETES MATERIAUX INDEPENDANTES DE LA TEMPERATURE + else : + e = dicmat['E'] + nu = dicmat['NU'] + + if not Tempe3D : + coefd3 = 0. + coefd = e * sqrt(2.*pi) + unmnu2 = 1. - nu**2 + unpnu = 1. + nu + if MODELISATION=='3D' : + UTMESS('I', macro, 'l operateur CALC_G -option CALC_K_G- calcule plus precisement les K1 K2 K3') + ndim = 3 + coefd = coefd / ( 8.0 * unmnu2 ) + coefd3 = e*sqrt(2*pi) / ( 8.0 * unpnu ) + coefg = unmnu2 / e + coefg3 = unpnu / e + elif MODELISATION=='AXIS' : + ndim = 2 + coefd = coefd / ( 8. * unmnu2 ) + coefg = unmnu2 / e + coefg3 = unpnu / e + elif MODELISATION=='D_PLAN' : + UTMESS('I', macro, 'l operateur CALC_G -option CALC_K_G- calcule plus precisement les K1 K2') + ndim = 2 + coefd = coefd / ( 8. * unmnu2 ) + coefg = unmnu2 / e + coefg3 = unpnu / e + elif MODELISATION=='C_PLAN' : + UTMESS('I', macro, 'l operateur CALC_G -option CALC_K_G- calcule plus precisement les K1 K2') + ndim = 2 + coefd = coefd / 8. + coefg = 1. / e + coefg3 = unpnu / e + else : + UTMESS('F', macro, 'modélisation non implantée') + + +# ------------------------------------------------------------------ +# CAS FOND_FISS +# ------------------------------------------------------------------ + if FOND_FISS : + MAILLAGE = args['MAILLAGE'] + NOEUD = args['NOEUD'] + SANS_NOEUD = args['SANS_NOEUD'] + GROUP_NO = args['GROUP_NO'] + SANS_GROUP_NO = args['SANS_GROUP_NO'] + TOUT = args['TOUT'] + TYPE_MAILLAGE = args['TYPE_MAILLAGE'] + NB_NOEUD_COUPE = args['NB_NOEUD_COUPE'] + LNOFO = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.FOND .NOEU ') + RECOL = False +# Cas double fond de fissure : par convention les noeuds sont ceux de fond_inf + if LNOFO==None : + RECOL = True + LNOFO = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.FOND_INF .NOEU ') + if LNOFO==None : UTMESS('F', macro, 'PROBLEME A LA RECUPERATION DES NOEUDS DU FOND DE FISSURE') + LNOFO = map(string.rstrip,LNOFO) + Nbfond = len(LNOFO) + +# ----------Mots cles TOUT, NOEUD, SANS_NOEUD ------------- + Typ = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.FOND .TYPE ') + if (Typ[0]=='SEG2 ') or (Typ[0]=='SEG3 ' and TOUT=='OUI') : + pas = 1 + elif (Typ[0]=='SEG3 ') : + pas = 2 + else : + UTMESS('F', macro, 'TYPE DE MAILLES DU FOND DE FISSURE NON DEFINI') +#### + NO_SANS = [] + NO_AVEC = [] + if GROUP_NO!=None : + collgrno=aster.getcolljev(string.ljust(MAILLAGE.nom,8)+'.GROUPENO') + cnom = aster.getvectjev(string.ljust(MAILLAGE.nom,8)+'.NOMNOE') + if type(GROUP_NO) not in EnumTypes : GROUP_NO = (GROUP_NO,) + for m in range(len(GROUP_NO)) : + ngrno=GROUP_NO[m].ljust(8).upper() + if ngrno not in collgrno.keys() : + UTMESS('F', macro, "LE GROUP_NO "+ngrno+" N EST PAS DANS LE MAILLAGE") + for i in range(len(collgrno[ngrno])) : NO_AVEC.append(cnom[collgrno[ngrno][i]-1]) + NO_AVEC= map(string.rstrip,NO_AVEC) + if NOEUD!=None : + if type(NOEUD) not in EnumTypes : NO_AVEC = (NOEUD,) + else : NO_AVEC = NOEUD + if SANS_GROUP_NO!=None : + collgrno=aster.getcolljev(string.ljust(MAILLAGE.nom,8)+'.GROUPENO') + cnom = aster.getvectjev(string.ljust(MAILLAGE.nom,8)+'.NOMNOE') + if type(SANS_GROUP_NO) not in EnumTypes : SANS_GROUP_NO = (SANS_GROUP_NO,) + for m in range(len(SANS_GROUP_NO)) : + ngrno=SANS_GROUP_NO[m].ljust(8).upper() + if ngrno not in collgrno.keys() : + UTMESS('F', macro, "LE GROUP_NO "+ngrno+" N EST PAS DANS LE MAILLAGE") + for i in range(len(collgrno[ngrno])) : NO_SANS.append(cnom[collgrno[ngrno][i]-1]) + NO_SANS= map(string.rstrip,NO_SANS) + if SANS_NOEUD!=None : + if type(SANS_NOEUD) not in EnumTypes : NO_SANS = (SANS_NOEUD,) + else : NO_SANS = SANS_NOEUD +# Creation de la liste des noeuds du fond a traiter : Lnf1 + Lnf1 = [] + Nbf1 = 0 + if len(NO_AVEC)!=0 : + for i in range(len(NO_AVEC)) : + if NO_AVEC[i] in LNOFO : + Lnf1.append(NO_AVEC[i]) + Nbf1 = Nbf1 +1 + else : + UTMESS('F', macro, 'LE NOEUD %s N APPARTIENT PAS AU FOND DE FISSURE'%NO_AVEC[i]) + else : + for i in range(0,Nbfond,pas) : + if not (LNOFO[i] in NO_SANS) : + Lnf1.append(LNOFO[i]) + Nbf1 = Nbf1 +1 + +##### Cas maillage libre########### +# creation des directions normales et macr_lign_coup + if TYPE_MAILLAGE =='LIBRE': + if not RESULTAT : UTMESS('F', macro, 'MOT CLE RESULTAT OBLIGATOIRE POUR TYPE_MAILLAGE = LIBRE') + Lnofon = Lnf1 + Nbnofo = Nbf1 + ListmaS = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.LEVRESUP .MAIL ') + if SYME_CHAR=='SANS': + ListmaI = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.LEVREINF .MAIL ') + __NCOFON=POST_RELEVE_T(ACTION=_F(INTITULE='Tab pour coordonnees noeuds du fond', + NOEUD=LNOFO, + RESULTAT=RESULTAT, + NOM_CHAM='DEPL',NUME_ORDRE=1,NOM_CMP=('DX',), + OPERATION='EXTRACTION',),); + tcoorf=__NCOFON.EXTR_TABLE() + DETRUIRE(CONCEPT=_F(NOM=__NCOFON),INFO=1) + nbt = len(tcoorf['NOEUD'].values()['NOEUD']) + xs=array(tcoorf['COOR_X'].values()['COOR_X'][:nbt],Float) + ys=array(tcoorf['COOR_Y'].values()['COOR_Y'][:nbt],Float) + if ndim==2 : zs=Numeric.zeros(nbval,Float) + elif ndim==3 : zs=array(tcoorf['COOR_Z'].values()['COOR_Z'][:nbt],Float) + ns = tcoorf['NOEUD'].values()['NOEUD'][:nbt] + ns = map(string.rstrip,ns) + l_coorf = [[ns[i],xs[i],ys[i],zs[i]] for i in range(0,nbt)] + l_coorf = [(i[0],i[1:]) for i in l_coorf] + d_coorf = dict(l_coorf) +# Calcul des normales a chaque noeud du fond + v1 = array(VECT_K1) + VN = [None]*Nbfond + absfon = [0,] + DTANOR = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.DTAN_ORIGINE') + if DTANOR != None : + VN[0] = array(DTANOR) + else : + Pfon2 = array([d_coorf[LNOFO[0]][0],d_coorf[LNOFO[0]][1],d_coorf[LNOFO[0]][2]]) + Pfon3 = array([d_coorf[LNOFO[1]][0],d_coorf[LNOFO[1]][1],d_coorf[LNOFO[1]][2]]) + VT = (Pfon3 - Pfon2)/sqrt(dot(transpose(Pfon3-Pfon2),Pfon3-Pfon2)) + VN[i] = array(cross_product(VT,v1)) + for i in range(1,Nbfond-1): + Pfon1 = array([d_coorf[LNOFO[i-1]][0],d_coorf[LNOFO[i-1]][1],d_coorf[LNOFO[i-1]][2]]) + Pfon2 = array([d_coorf[LNOFO[i]][0],d_coorf[LNOFO[i]][1],d_coorf[LNOFO[i]][2]]) + Pfon3 = array([d_coorf[LNOFO[i+1]][0],d_coorf[LNOFO[i+1]][1],d_coorf[LNOFO[i+1]][2]]) + absf = sqrt(dot(transpose(Pfon1-Pfon2),Pfon1-Pfon2)) + absfon[i-1] + absfon.append(absf) + VT = (Pfon3 - Pfon2)/sqrt(dot(transpose(Pfon3-Pfon2),Pfon3-Pfon2)) + VT = VT+(Pfon2 - Pfon1)/sqrt(dot(transpose(Pfon2-Pfon1),Pfon2-Pfon1)) + VN[i] = array(cross_product(VT,v1)) + VN[i] = VN[i]/sqrt(dot(transpose(VN[i]),VN[i])) + i = Nbfond-1 + Pfon1 = array([d_coorf[LNOFO[i-1]][0],d_coorf[LNOFO[i-1]][1],d_coorf[LNOFO[i-1]][2]]) + Pfon2 = array([d_coorf[LNOFO[i]][0],d_coorf[LNOFO[i]][1],d_coorf[LNOFO[i]][2]]) + absf = sqrt(dot(transpose(Pfon1-Pfon2),Pfon1-Pfon2)) + absfon[i-1] + absfon.append(absf) + DTANEX = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.DTAN_EXTREMITE') + if DTANEX != None : + VN[i] = array(DTANEX) + else : + VT = (Pfon2 - Pfon1)/sqrt(dot(transpose(Pfon2-Pfon1),Pfon2-Pfon1)) + VN[i] = array(cross_product(VT,v1)) + dicoF = dict([(LNOFO[i],absfon[i]) for i in range(Nbfond)]) + dicVN = dict([(LNOFO[i],VN[i]) for i in range(Nbfond)]) +#Extraction dep sup/inf sur les normales + TlibS = [None]*Nbf1 + TlibI = [None]*Nbf1 + if NB_NOEUD_COUPE < 3 : + message = 'LE NOMBRE DE NOEUDS NB_NOEUD_COUPE DOIT ETRE SUPERIEUR A 3 : ON PREND LA VALEUR PAR DEFAUT' + UTMESS('A', macro, message) + NB_NOEUD_COUPE = 5 + MOD = aster.getvectjev(string.ljust(RESULTAT.nom,19)+'.MODL ') + if MOD==None : UTMESS('F', macro, 'PROBLEME A LA RECUPERATION DU MODELE DANS LA SD RESULTAT FOURNIE') + MOD = map(string.rstrip,MOD) + MODEL = self.jdc.sds_dict[MOD[0]] + for i in range(Nbf1): + Porig = array(d_coorf[Lnf1[i]] ) + Pextr = Porig - ABSC_CURV_MAXI*dicVN[Lnf1[i]] + TlibS[i] = MACR_LIGN_COUPE(RESULTAT=RESULTAT, + NOM_CHAM='DEPL',MODELE=MODEL, MAILLE = ListmaS, + LIGN_COUPE=_F(NB_POINTS=NB_NOEUD_COUPE,COOR_ORIG=(Porig[0],Porig[1],Porig[2],), + COOR_EXTR=(Pextr[0],Pextr[1],Pextr[2]),),); + if SYME_CHAR=='SANS': + TlibI[i] = MACR_LIGN_COUPE(RESULTAT=RESULTAT, + NOM_CHAM='DEPL',MODELE=MODEL, MAILLE = ListmaI, + LIGN_COUPE=_F(NB_POINTS=NB_NOEUD_COUPE,COOR_ORIG=(Porig[0],Porig[1],Porig[2],), + COOR_EXTR=(Pextr[0],Pextr[1],Pextr[2]),),); + + +##### Cas maillage regle########### + else: +# ---------- Dictionnaires des levres ------------- + NnormS = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.SUPNORM .NOEU ') + if NnormS==None : UTMESS('F', macro, 'PROBLEME A LA RECUPERATION DES NOEUDS DES LEVRES') + NnormS = map(string.rstrip,NnormS) + if LNOFO[0]==LNOFO[-1] : Nbfond=Nbfond-1 # Cas fond de fissure ferme + NnormS = [[LNOFO[i],NnormS[i*20:(i+1)*20]] for i in range(0,Nbfond)] + NnormS = [(i[0],i[1][0:]) for i in NnormS] + dicoS = dict(NnormS) + if SYME_CHAR=='SANS': + NnormI = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.INFNORM .NOEU ') + NnormI = map(string.rstrip,NnormI) + NnormI = [[LNOFO[i],NnormI[i*20:(i+1)*20]] for i in range(0,Nbfond)] + NnormI = [(i[0],i[1][0:]) for i in NnormI] + dicoI = dict(NnormI) + +# ---------- Dictionnaire des coordonnees ------------- + if RESULTAT : + Ltot = LNOFO + for i in range(Nbf1) : + for k in range(0,20) : + if dicoS[Lnf1[i]][k] !='': Ltot.append(dicoS[Lnf1[i]][k]) + if SYME_CHAR=='SANS': + for i in range(Nbf1) : + for k in range(0,20) : + if dicoI[Lnf1[i]][k] !='': Ltot.append(dicoI[Lnf1[i]][k]) + Ltot=dict([(i,0) for i in Ltot]).keys() + __NCOOR=POST_RELEVE_T(ACTION=_F(INTITULE='Tab pour coordonnees noeuds des levres', + NOEUD=Ltot, + RESULTAT=RESULTAT, + NOM_CHAM='DEPL',NUME_ORDRE=1,NOM_CMP=('DX',), + OPERATION='EXTRACTION',),); + tcoor=__NCOOR.EXTR_TABLE() + DETRUIRE(CONCEPT=_F(NOM=__NCOOR),INFO=1) + else : + if SYME_CHAR=='SANS': + __NCOOR=CALC_TABLE(TABLE=TABL_DEPL_SUP, + ACTION=_F(OPERATION = 'COMB',NOM_PARA='NOEUD',TABLE=TABL_DEPL_INF,)) + tcoor=__NCOOR.EXTR_TABLE() + DETRUIRE(CONCEPT=_F(NOM=__NCOOR),INFO=1) + else : + tcoor=TABL_DEPL_SUP.EXTR_TABLE() + nbt = len(tcoor['NOEUD'].values()['NOEUD']) + xs=array(tcoor['COOR_X'].values()['COOR_X'][:nbt],Float) + ys=array(tcoor['COOR_Y'].values()['COOR_Y'][:nbt],Float) + if ndim==2 : zs=Numeric.zeros(nbval,Float) + elif ndim==3 : zs=array(tcoor['COOR_Z'].values()['COOR_Z'][:nbt],Float) + ns = tcoor['NOEUD'].values()['NOEUD'][:nbt] + ns = map(string.rstrip,ns) + l_coor = [[ns[i],xs[i],ys[i],zs[i]] for i in range(0,nbt)] + l_coor = [(i[0],i[1:]) for i in l_coor] + d_coor = dict(l_coor) + +# ---------- Abscisse curviligne du fond ------------- + absfon = [0,] + for i in range(Nbfond-1) : + Pfon1 = array([d_coor[LNOFO[i]][0],d_coor[LNOFO[i]][1],d_coor[LNOFO[i]][2]]) + Pfon2 = array([d_coor[LNOFO[i+1]][0],d_coor[LNOFO[i+1]][1],d_coor[LNOFO[i+1]][2]]) + absf = sqrt(dot(transpose(Pfon1-Pfon2),Pfon1-Pfon2)) + absfon[i] + absfon.append(absf) + dicoF = dict([(LNOFO[i],absfon[i]) for i in range(Nbfond)]) + + +# ---Noeuds LEVRE_SUP et LEVRE_INF: ABSC_CURV_MAXI et PREC_VIS_A_VIS----- + + NBTRLS = 0 + NBTRLI = 0 + Lnosup = [None]*Nbf1 + Lnoinf = [None]*Nbf1 + Nbnofo = 0 + Lnofon = [] + precv = PREC_VIS_A_VIS + if ABSC_CURV_MAXI!=None : rmax = ABSC_CURV_MAXI + else : rmax = 100 + precn = precv * rmax + rmprec= rmax*(1.+precv/10.) + for i in range(0,Nbf1) : + Pfon = array([d_coor[Lnf1[i]][0],d_coor[Lnf1[i]][1],d_coor[Lnf1[i]][2]]) + Tmpsup = [] + Tmpinf = [] + itots = 0 + itoti = 0 + NBTRLS = 0 + NBTRLI = 0 + for k in range(0,20) : + if dicoS[Lnf1[i]][k] !='': + itots = itots +1 + Nsup = dicoS[Lnf1[i]][k] + Psup = array([d_coor[Nsup][0],d_coor[Nsup][1],d_coor[Nsup][2]]) + abss = sqrt(dot(transpose(Pfon-Psup),Pfon-Psup)) + if abssprecn : + message= 'LES NOEUDS NE SONT PAS EN VIS-A-VIS \n' + message=message+'DANS LE PLAN PERPENDICULAIRE AU NOEUD %s \n'%Lnf1[i] + UTMESS('A', macro, message) + else : + NBTRLI = NBTRLI +1 + Tmpinf.append(dicoI[Lnf1[i]][k]) +# On verifie qu il y a assez de noeuds + if NBTRLS < 3 : + message= 'IL MANQUE DES POINTS DANS LE PLAN DEFINI PAR LA LEVRE \n' + message=message+'SUPERIEURE ET PERPENDICULAIRE AU FOND %s :\n'%Lnf1[i] + if itots<3 : message=message+' Augmenter PREC_NORM dans DEFI_FOND_FISS \n' + else : message=message+' Augmenter ABSC_CURV_MAXI' + if Lnf1[i]==LNOFO[0] or Lnf1[i]==LNOFO[-1]: message=message+' OU VERIFIER LES TANGENTES EXTREMITES' + UTMESS('A',macro, message) + elif (SYME_CHAR=='SANS') and (NBTRLI < 3) : + message= 'IL MANQUE DES POINTS DANS LE PLAN DEFINI PAR LA LEVRE \n' + message=message+'INFERIEURE ET PERPENDICULAIRE AU FOND %s :\n'%Lnf1[i] + if itoti<3 : message=message+' Augmenter PREC_NORM dans DEFI_FOND_FISS \n' + else : message=message+' Augmenter ABSC_CURV_MAXI' + if Lnf1[i]==LNOFO[0] or Lnf1[i]==LNOFO[-1]: message=message+' OU VERIFIER LES TANGENTES EXTREMITES' + UTMESS('A',macro, message) + else : + Lnosup[Nbnofo] = Tmpsup + if SYME_CHAR=='SANS' : Lnoinf[Nbnofo] = Tmpinf + Lnofon.append(Lnf1[i]) + Nbnofo = Nbnofo+1 + + else : + Nbnofo = 1 + +# ----------Recuperation de la temperature au fond ------------- + if Tempe3D : + resuth = map(string.rstrip,resuth) + Rth = self.jdc.sds_dict[resuth[0]] + __TEMP=POST_RELEVE_T(ACTION=_F(INTITULE='Temperature fond de fissure', + NOEUD=Lnofon,TOUT_CMP='OUI', + RESULTAT=Rth,NOM_CHAM='TEMP',TOUT_ORDRE='OUI', + OPERATION='EXTRACTION',),); + tabtemp=__TEMP.EXTR_TABLE() + DETRUIRE(CONCEPT=_F(NOM=__TEMP),INFO=1) + + +# ------------------------------------------------------------------ +# BOUCLE SUR NOEUDS DU FOND +# ------------------------------------------------------------------ + for ino in range(0,Nbnofo) : + if FOND_FISS and INFO==2 : + texte="\n\n--> TRAITEMENT DU NOEUD DU FOND DE FISSURE: %s"%Lnofon[ino] + aster.affiche('MESSAGE',texte) +# ------------------------------------------------------------------ +# TABLE 'DEPSUP' +# ------------------------------------------------------------------ + if FOND_FISS : + if TYPE_MAILLAGE =='LIBRE': + tabsup=TlibS[ino].EXTR_TABLE() + DETRUIRE(CONCEPT=_F(NOM=TlibS[ino]),INFO=1) + elif RESULTAT : + __TSUP=POST_RELEVE_T(ACTION=_F(INTITULE='Deplacement SUP', + NOEUD=Lnosup[ino], + RESULTAT=RESULTAT, + NOM_CHAM='DEPL', + TOUT_ORDRE='OUI', + NOM_CMP=('DX','DY','DZ',), + OPERATION='EXTRACTION',),); + tabsup=__TSUP.EXTR_TABLE() + DETRUIRE(CONCEPT=_F(NOM=__TSUP),INFO=1) + else : + tabsup=TABL_DEPL_SUP.EXTR_TABLE() + veri_tab(tabsup,TABL_DEPL_SUP.nom,ndim) + Ls = [string.ljust(Lnosup[ino][i],8) for i in range(len(Lnosup[ino]))] + tabsup=tabsup.NOEUD==Ls + else : + tabsup=TABL_DEPL_SUP.EXTR_TABLE() + veri_tab(tabsup,TABL_DEPL_SUP.nom,ndim) + +# ------------------------------------------------------------------ +# TABLE 'DEPINF' +# ------------------------------------------------------------------ + if SYME_CHAR=='SANS': + if FOND_FISS : + if TYPE_MAILLAGE =='LIBRE': + tabinf=TlibI[ino].EXTR_TABLE() + DETRUIRE(CONCEPT=_F(NOM=TlibI[ino]),INFO=1) + elif RESULTAT : + __TINF=POST_RELEVE_T(ACTION=_F(INTITULE='Deplacement INF', + NOEUD=Lnoinf[ino], + RESULTAT=RESULTAT, + NOM_CHAM='DEPL', + TOUT_ORDRE='OUI', + NOM_CMP=('DX','DY','DZ',), + OPERATION='EXTRACTION',),); + tabinf=__TINF.EXTR_TABLE() + DETRUIRE(CONCEPT=_F(NOM=__TINF),INFO=1) + else : + tabinf=TABL_DEPL_INF.EXTR_TABLE() + if TABL_DEPL_INF==None : UTMESS('F', macro, 'TABL_DEPL_SUP et TABL_DEPL_INF sont obligatoires si SYME_CHAR=SANS') + veri_tab(tabinf,TABL_DEPL_INF.nom,ndim) + Li = [string.ljust(Lnoinf[ino][i],8) for i in range(len(Lnoinf[ino]))] + tabinf=tabinf.NOEUD==Li + else : + if TABL_DEPL_INF==None : UTMESS('F', macro, 'TABL_DEPL_SUP et TABL_DEPL_INF sont obligatoires si SYME_CHAR=SANS') + tabinf=TABL_DEPL_INF.EXTR_TABLE() + veri_tab(tabinf,TABL_DEPL_INF.nom,ndim) + + +# ------------------------------------------------------------------ +# LES INSTANTS DE POST-TRAITEMENT +# ------------------------------------------------------------------ + if 'INST' in tabsup.para : + l_inst=None + l_inst_tab=tabsup['INST'].values()['INST'] + l_inst_tab=dict([(i,0) for i in l_inst_tab]).keys() #elimine les doublons + if LIST_ORDRE !=None or NUME_ORDRE !=None : + l_ord_tab = tabsup['NUME_ORDRE'].values()['NUME_ORDRE'] + l_ord_tab=dict([(i,0) for i in l_ord_tab]).keys() + d_ord_tab= [[l_ord_tab[i],l_inst_tab[i]] for i in range(0,len(l_ord_tab))] + d_ord_tab= [(i[0],i[1]) for i in d_ord_tab] + d_ord_tab = dict(d_ord_tab) + if NUME_ORDRE !=None : + if type(NUME_ORDRE) not in EnumTypes : NUME_ORDRE=(NUME_ORDRE,) + l_ord=list(NUME_ORDRE) + elif LIST_ORDRE !=None : + l_ord= aster.getvectjev(string.ljust(LIST_ORDRE.nom,19)+'.VALE') + l_inst = [] + for ord in l_ord : + if ord in l_ord_tab : l_inst.append(d_ord_tab[ord]) + else : + message ='LE NUMERO D ORDRE %i N A PAS ETE ETE TROUVE DANS LA TABLE\n'%ord + UTMESS('F', macro, message) + if INST !=None or LIST_INST !=None : + CRITERE = args['CRITERE'] + PRECISION = args['PRECISION'] + else : + l_inst=l_inst_tab + PRECISION = 1.E-6 + CRITERE='ABSOLU' + if INST !=None : + if type(INST) not in EnumTypes : INST=(INST,) + l_inst=list(INST) + elif LIST_INST !=None : l_inst=LIST_INST.Valeurs() + if l_inst !=None : + for inst in l_inst : + if CRITERE=='RELATIF' and inst!=0.: match=[x for x in l_inst_tab if abs((inst-x)/inst)=2 : + message = 'PLUSIEURS INSTANTS TROUVES DANS LA TABLE POUR L INSTANT %f\n'%inst + UTMESS('F', macro, message) + else : + l_inst = l_inst_tab + else : + l_inst = [None,] + +# ------------------------------------------------------------------ +# BOUCLE SUR LES INSTANTS +# ------------------------------------------------------------------ + for iord in range(len(l_inst)) : + inst=l_inst[iord] + if INFO==2 and inst!=None: + texte="==> INSTANT: %f"%inst + aster.affiche('MESSAGE',texte) + if inst!=None: + if PRECISION == None : PRECISION = 1.E-6 + if CRITERE == None : CRITERE='ABSOLU' + if inst==0. : + tabsupi=tabsup.INST.__eq__(VALE=inst,CRITERE='ABSOLU',PRECISION=PRECISION) + if SYME_CHAR=='SANS': tabinfi=tabinf.INST.__eq__(VALE=inst,CRITERE='ABSOLU',PRECISION=PRECISION) + else : + tabsupi=tabsup.INST.__eq__(VALE=inst,CRITERE=CRITERE,PRECISION=PRECISION) + if SYME_CHAR=='SANS': tabinfi=tabinf.INST.__eq__(VALE=inst,CRITERE=CRITERE,PRECISION=PRECISION) + else : + tabsupi=tabsup + if SYME_CHAR=='SANS': tabinfi=tabinf + +# --- LEVRE SUP : "ABSC_CURV" CROISSANTES, < RMAX ET DEP --- + abscs = getattr(tabsupi,'ABSC_CURV').values() + if not FOND_FISS : + refs=copy.copy(abscs) + refs.sort() + if refs!=abscs : UTMESS('F', macro, 'ABSC_CURV NON CROISSANTS POUR TABL_DEPL_INF') + if ABSC_CURV_MAXI!=None : rmax = ABSC_CURV_MAXI + else : rmax = abscs[-1] + precv = PREC_VIS_A_VIS + rmprec= rmax*(1.+precv/10.) + refsc=[x for x in refs if xprecn : UTMESS('F', macro, 'LES NOEUDS NE SONT PAS EN VIS_A_VIS') + + if FOND_FISS and not RESULTAT :#tri des noeuds avec abscisse + Pfon = array([d_coor[Lnofon[ino]][0],d_coor[Lnofon[ino]][1],d_coor[Lnofon[ino]][2]]) + absci = sqrt((coxi-Pfon[0])**2+(coyi-Pfon[1])**2+(cozi-Pfon[2])**2) + tabinfi['Abs_fo'] = absci + tabinfi.sort('Abs_fo') + absci = getattr(tabinfi,'Abs_fo').values() + absci=array(abscs[:nbval]) + coxi=array(tabinfi['COOR_X'].values()['COOR_X'][:nbval],Float) + coyi=array(tabinfi['COOR_Y'].values()['COOR_Y'][:nbval],Float) + if ndim==2 : cozi=Numeric.zeros(nbval,Float) + elif ndim==3 : cozi=array(tabinfi['COOR_Z'].values()['COOR_Z'][:nbval],Float) + + dxi=array(tabinfi['DX'].values()['DX'][:nbval],Float) + dyi=array(tabinfi['DY'].values()['DY'][:nbval],Float) + if ndim==2 : dzi=Numeric.zeros(nbval,Float) + elif ndim==3 : dzi=array(tabinfi['DZ'].values()['DZ'][:nbval],Float) + + if FOND_FISS and INFO==2 and iord==0 and not TYPE_MAILLAGE =='LIBRE': + for ki in range(0,nbval) : + texte="NOEUD RETENU POUR LA LEVRE INF: %s %f"%(Lnoinf[ino][ki],absci[ki]) + aster.affiche('MESSAGE',texte) + +# --- TESTS NOMBRE DE NOEUDS--- + if nbval<3 : + message= 'IL FAUT AU MOINS TROIS NOEUDS DANS LE PLAN DEFINI PAR LES LEVRES ET PERPENDICULAIRE AU FOND DE FISSURE' + if FOND_FISS : message=message+'Noeud %.s \n'%Lnofon[ino] + message=message+' : augmenter ABSC_CURV_MAXI\n' + UTMESS('F',macro, message) + +# ---------- CALCUL PROP. MATERIAU AVEC TEMPERATURE ----------- + if Tempe3D : + tempeno=tabtemp.NOEUD==Lnofon[ino] + tempeno=tempeno.INST.__eq__(VALE=inst,CRITERE='ABSOLU',PRECISION=PRECISION) + nompar = ('TEMP',) + valpar = (tempeno.TEMP.values()[0],) + nomres=['E','NU'] + valres,codret = MATER.RCVALE('ELAS',nompar,valpar,nomres,'F') + e = valres[0] + nu = valres[1] + coefd = e * sqrt(2.*pi) / ( 8.0 * (1. - nu**2)) + coefd3 = e*sqrt(2*pi) / ( 8.0 * (1. + nu)) + coefg = (1. - nu**2) / e + coefg3 = (1. + nu) / e + +# ------------------------------------------------------------------ +# CHANGEMENT DE REPERE +# ------------------------------------------------------------------ +# +# 1 : VECTEUR NORMAL AU PLAN DE LA FISSURE +# ORIENTE LEVRE INFERIEURE VERS LEVRE SUPERIEURE +# 2 : VECTEUR NORMAL AU FOND DE FISSURE EN M +# 3 : VECTEUR TANGENT AU FOND DE FISSURE EN M +# + if SYME_CHAR=='SANS' : + vo = array([( coxs[-1]+coxi[-1] )/2.,( coys[-1]+coyi[-1] )/2.,( cozs[-1]+cozi[-1] )/2.]) + ve = array([( coxs[0 ]+coxi[0 ] )/2.,( coys[0 ]+coyi[0 ] )/2.,( cozs[0 ]+cozi[0 ] )/2.]) + else : + vo = array([ coxs[-1], coys[-1], cozs[-1]]) + ve = array([ coxs[0], coys[0], cozs[0]]) + v1 = array(VECT_K1) + v2 = ve-vo + v2 = v2/sqrt(v2[0]**2+v2[1]**2+v2[2]**2) + v1p = sum(v2*v1) + v1 = v1-v1p*v2 + v1 = v1/sqrt(v1[0]**2+v1[1]**2+v1[2]**2) + v3 = array([v1[1]*v2[2]-v2[1]*v1[2],v1[2]*v2[0]-v2[2]*v1[0],v1[0]*v2[1]-v2[0]*v1[1]]) + pgl = asarray([v1,v2,v3]) + dpls = asarray([dxs,dys,dzs]) + dpls = matrixmultiply(pgl,dpls) + if SYME_CHAR=='SANS' : + dpli = asarray([dxi,dyi,dzi]) + dpli = matrixmultiply(pgl,dpli) + else : + dpli = [multiply(dpls[0],-1.),dpls[1],dpls[2]] +# ------------------------------------------------------------------ +# CALCUL DES K1, K2, K3 +# ------------------------------------------------------------------ + saut=(dpls-dpli) + isig=sign(transpose(resize(saut[:,-1],(nbval-1,3)))) + isig=sign(isig+0.001) + saut=saut*array([[coefd]*nbval,[coefd]*nbval,[coefd3]*nbval]) + saut=saut**2 + ksig = isig[:,1] + ksig = array([ksig,ksig]) + ksig = transpose(ksig) + kgsig=resize(ksig,(1,6))[0] + if INFO==2 : + mcfact=[] + mcfact.append(_F(PARA='ABSC_CURV' ,LISTE_R=abscs.tolist() )) + mcfact.append(_F(PARA='DEPL_SUP_DX',LISTE_R=dpls[0].tolist() )) + mcfact.append(_F(PARA='DEPL_INF_DX',LISTE_R=dpli[0].tolist() )) + mcfact.append(_F(PARA='SAUT_DX' ,LISTE_R=saut[0].tolist() )) + mcfact.append(_F(PARA='DEPL_SUP_DY',LISTE_R=dpls[1].tolist() )) + mcfact.append(_F(PARA='DEPL_INF_DY',LISTE_R=dpli[1].tolist() )) + mcfact.append(_F(PARA='SAUT_DY' ,LISTE_R=saut[1].tolist() )) + if ndim==3 : + mcfact.append(_F(PARA='DEPL_SUP_DZ',LISTE_R=dpls[2].tolist() )) + mcfact.append(_F(PARA='DEPL_INF_DZ',LISTE_R=dpli[2].tolist() )) + mcfact.append(_F(PARA='SAUT_DZ' ,LISTE_R=saut[2].tolist() )) + __resu0=CREA_TABLE(LISTE=mcfact,TITRE='--> SAUTS') + aster.affiche('MESSAGE',__resu0.EXTR_TABLE().__repr__()) + DETRUIRE(CONCEPT=_F(NOM=__resu0),INFO=1) +# ------------------------------------------------------------------ +# --- METHODE 1 --- +# ------------------------------------------------------------------ + x1 = abscs[1:-1] + x2 = abscs[2: ] + y1 = saut[:,1:-1]/x1 + y2 = saut[:,2: ]/x2 + k = abs(y1-x1*(y2-y1)/(x2-x1)) + g = coefg*(k[0]+k[1])+coefg3*k[2] + kg1 = [max(k[0]),min(k[0]),max(k[1]),min(k[1]),max(k[2]),min(k[2])] + kg1 = sqrt(kg1)*kgsig + kg1=Numeric.concatenate([kg1,[max(g),min(g)]]) + vk = sqrt(k)*isig[:,:-1] + if INFO==2 : + mcfact=[] + mcfact.append(_F(PARA='ABSC_CURV_1' ,LISTE_R=x1.tolist() )) + mcfact.append(_F(PARA='ABSC_CURV_2' ,LISTE_R=x2.tolist() )) + mcfact.append(_F(PARA='K1' ,LISTE_R=vk[0].tolist() )) + mcfact.append(_F(PARA='K2' ,LISTE_R=vk[1].tolist() )) + if ndim==3 : + mcfact.append(_F(PARA='K3' ,LISTE_R=vk[2].tolist() )) + mcfact.append(_F(PARA='G' ,LISTE_R=g.tolist() )) + __resu1=CREA_TABLE(LISTE=mcfact,TITRE='--> METHODE 1') + aster.affiche('MESSAGE',__resu1.EXTR_TABLE().__repr__()) + DETRUIRE(CONCEPT=_F(NOM=__resu1),INFO=1) +# ------------------------------------------------------------------ +# --- METHODE 2 --- +# ------------------------------------------------------------------ + x1 = abscs[1: ] + y1 = saut[:,1:] + k = abs(y1/x1) + g = coefg*(k[0]+k[1])+coefg3*k[2] + kg2= [max(k[0]),min(k[0]),max(k[1]),min(k[1]),max(k[2]),min(k[2])] + kg2 = sqrt(kg2)*kgsig + kg2=Numeric.concatenate([kg2,[max(g),min(g)]]) + vk = sqrt(k)*isig + if INFO==2 : + mcfact=[] + mcfact.append(_F(PARA='ABSC_CURV' ,LISTE_R=x1.tolist() )) + mcfact.append(_F(PARA='K1' ,LISTE_R=vk[0].tolist() )) + mcfact.append(_F(PARA='K2' ,LISTE_R=vk[1].tolist() )) + if ndim==3 : + mcfact.append(_F(PARA='K3' ,LISTE_R=vk[2].tolist() )) + mcfact.append(_F(PARA='G' ,LISTE_R=g.tolist() )) + __resu2=CREA_TABLE(LISTE=mcfact,TITRE='--> METHODE 2') + aster.affiche('MESSAGE',__resu2.EXTR_TABLE().__repr__()) + DETRUIRE(CONCEPT=_F(NOM=__resu2),INFO=1) +# ------------------------------------------------------------------ +# --- METHODE 3 --- +# ------------------------------------------------------------------ + x1 = abscs[:-1] + x2 = abscs[1: ] + y1 = saut[:,:-1] + y2 = saut[:,1: ] + k = (sqrt(y2)*sqrt(x2)+sqrt(y1)*sqrt(x1))*(x2-x1) + k = Numeric.sum(transpose(k)) + de = abscs[-1] + vk = (k/de**2)*isig[:,0] + g = coefg*(vk[0]**2+vk[1]**2)+coefg3*vk[2]**2 + kg3=Numeric.concatenate([[vk[0]]*2,[vk[1]]*2,[vk[2]]*2,[g]*2]) + if INFO==2 : + mcfact=[] + mcfact.append(_F(PARA='K1' ,LISTE_R=vk[0] )) + mcfact.append(_F(PARA='K2' ,LISTE_R=vk[1] )) + if ndim==3 : + mcfact.append(_F(PARA='K3' ,LISTE_R=vk[2] )) + mcfact.append(_F(PARA='G' ,LISTE_R=g )) + __resu3=CREA_TABLE(LISTE=mcfact,TITRE='--> METHODE 3') + aster.affiche('MESSAGE',__resu3.EXTR_TABLE().__repr__()) + DETRUIRE(CONCEPT=_F(NOM=__resu3),INFO=1) +# ------------------------------------------------------------------ +# CREATION DE LA TABLE +# ------------------------------------------------------------------ + kg=array([kg1,kg2,kg3]) + kg=transpose(kg) + mcfact=[] + if TITRE != None : + titre = TITRE + else : + v = aster.__version__ + titre = 'ASTER %s - CONCEPT CALCULE PAR POST_K1_K2_K3 LE &DATE A &HEURE \n'%v + if FOND_FISS : + mcfact.append(_F(PARA='NOEUD_FOND',LISTE_K=[Lnofon[ino],]*3)) + mcfact.append(_F(PARA='ABSC_CURV',LISTE_R=[dicoF[Lnofon[ino]]]*3)) + mcfact.append(_F(PARA='METHODE',LISTE_I=(1,2,3))) + mcfact.append(_F(PARA='K1_MAX' ,LISTE_R=kg[0].tolist() )) + mcfact.append(_F(PARA='K1_MIN' ,LISTE_R=kg[1].tolist() )) + mcfact.append(_F(PARA='K2_MAX' ,LISTE_R=kg[2].tolist() )) + mcfact.append(_F(PARA='K2_MIN' ,LISTE_R=kg[3].tolist() )) + if ndim==3 : + mcfact.append(_F(PARA='K3_MAX' ,LISTE_R=kg[4].tolist() )) + mcfact.append(_F(PARA='K3_MIN' ,LISTE_R=kg[5].tolist() )) + mcfact.append(_F(PARA='G_MAX' ,LISTE_R=kg[6].tolist() )) + mcfact.append(_F(PARA='G_MIN' ,LISTE_R=kg[7].tolist() )) + if (ino==0 and iord==0) and inst==None : + tabout=CREA_TABLE(LISTE=mcfact,TITRE = titre) + elif iord==0 and ino==0 and inst!=None : + mcfact=[_F(PARA='INST' ,LISTE_R=[inst,]*3 )]+mcfact + tabout=CREA_TABLE(LISTE=mcfact,TITRE = titre) + else : + if inst!=None : mcfact=[_F(PARA='INST' ,LISTE_R=[inst,]*3 )]+mcfact + __tabi=CREA_TABLE(LISTE=mcfact,) + npara = ['K1_MAX','METHODE'] + if inst!=None : npara.append('INST') + if FOND_FISS : npara.append('NOEUD_FOND') + tabout=CALC_TABLE(reuse=tabout,TABLE=tabout,TITRE = titre, + ACTION=_F(OPERATION = 'COMB',NOM_PARA=npara,TABLE=__tabi,)) + +# Tri pour conserver le meme ordre que operateur initial en fortran + if len(l_inst)!=1 and FOND_FISS : + tabout=CALC_TABLE(reuse=tabout,TABLE=tabout, + ACTION=_F(OPERATION = 'TRI',NOM_PARA=('INST','ABSC_CURV','METHODE'),ORDRE='CROISSANT')) + + return ier + diff --git a/Aster/Cata/cataSTA8/Macro/reca_algo.py b/Aster/Cata/cataSTA8/Macro/reca_algo.py index 65e02bd1..429de101 100644 --- a/Aster/Cata/cataSTA8/Macro/reca_algo.py +++ b/Aster/Cata/cataSTA8/Macro/reca_algo.py @@ -1,4 +1,4 @@ -#@ MODIF reca_algo Macro DATE 14/03/2005 AUTEUR DURAND C.DURAND +#@ MODIF reca_algo Macro DATE 31/01/2006 AUTEUR MCOURTOI M.COURTOIS # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -21,12 +21,13 @@ import Numeric -from Numeric import take +from Numeric import take, size import copy,os import LinearAlgebra from Cata.cata import INFO_EXEC_ASTER from Cata.cata import DETRUIRE from Accas import _F +from Utilitai.Utmess import UTMESS def calcul_gradient(A,erreur): @@ -132,7 +133,7 @@ def temps_CPU(self,restant_old,temps_iter_old): temps_iter=(temps_iter_old + (restant_old-restant))/2. if ((temps_iter>0.96*restant)or(restant<0.)): err=1 - self.cr.fatal(" Arret de MACR_RECAL par manque de temps CPU") + UTMESS('F', "MACR_RECAL", 'Arret de MACR_RECAL par manque de temps CPU') return restant,temps_iter,err @@ -174,8 +175,15 @@ def Levenberg_bornes(self,val,Dim,val_init,borne_inf,borne_sup,A,erreur,l,ul_out dval[i]=borne_inf[i]-val[i] s[i]=-1. if (len(I)!=0): - # xi=-Q(I)-1.(d(I)+Q(I,Act).dval(Act)) - xi=-LinearAlgebra.solve_linear_equations(take(take(Q,I),I,1),(take(d,I)+Numeric.dot(take(take(Q,I),Act,1),take(Dim.adim(dval),Act)))) + # xi=-Q(I)-1.(d(I)+Q(I,Act).dval(Act)) + t_QI = take(Q, I) + t_tQI_Act = take(t_QI, Act, 1) + t_adim_Act = take(Dim.adim(dval), Act) + if size(t_tQI_Act) > 0 and size(t_adim_Act) > 0: + smemb = take(d, I) + Numeric.dot(t_tQI_Act, t_adim_Act) + else: + smemb = take(d, I) + xi=-LinearAlgebra.solve_linear_equations(take(t_QI, I, 1), smemb) for i in Numeric.arange(len(I)): dval[I[i]]=xi[i]*val_init[I[i]] if (len(Act)!=0): @@ -203,7 +211,7 @@ def Levenberg_bornes(self,val,Dim,val_init,borne_inf,borne_sup,A,erreur,l,ul_out res.write('\n\nval_ini= '+Numeric.array2string(val_init,array_output=1,separator=',')) res.write('\n\nborne_inf= '+Numeric.array2string(borne_inf,array_output=1,separator=',')) res.write('\n\nborne_sup= '+Numeric.array2string(borne_sup,array_output=1,separator=',')) - self.cr.fatal(" Erreur dans l'algorithme de bornes de MACR_RECAL") + UTMESS('F', "MACR_RECAL", "Erreur dans l'algorithme de bornes de MACR_RECAL") return newval=copy.copy(val+dval) return newval,s,l,Act diff --git a/Aster/Cata/cataSTA8/Macro/reca_graphique.py b/Aster/Cata/cataSTA8/Macro/reca_graphique.py new file mode 100644 index 00000000..bab1d8c2 --- /dev/null +++ b/Aster/Cata/cataSTA8/Macro/reca_graphique.py @@ -0,0 +1,92 @@ +#@ MODIF reca_graphique Macro DATE 08/11/2005 AUTEUR ASSIRE A.ASSIRE +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +import string, copy, Numeric, types +import Cata +from Cata.cata import DEFI_FICHIER, IMPR_FONCTION +from Utilitai.Utmess import UTMESS +from Accas import _F + +try: + import Gnuplot +except: + pass + + +#_____________________________________________ +# +# IMPRESSIONS GRAPHIQUES +#_____________________________________________ + +def graphique(FORMAT, L_F, res_exp, reponses, iter, UL_out, interactif): + + if FORMAT=='XMGRACE': + for i in range(len(L_F)): + _tmp = [] + courbe1 = res_exp[i] + _tmp.append( { 'ABSCISSE': courbe1[:,0].tolist(), 'ORDONNEE': courbe1[:,1].tolist(), 'COULEUR': 1 } ) + courbe2 = L_F[i] + _tmp.append( { 'ABSCISSE': courbe2[:,0].tolist(), 'ORDONNEE': courbe2[:,1].tolist(), 'COULEUR': 2 } ) + + motscle2= {'COURBE': _tmp } + if interactif: motscle2['PILOTE']= 'INTERACTIF' + else: motscle2['PILOTE']= 'POSTSCRIPT' + +# DEFI_FICHIER(UNITE=int(UL_out), ACCES='NEW',) + + IMPR_FONCTION(FORMAT='XMGRACE', + UNITE=int(UL_out), + TITRE='Courbe de : ' + reponses[i][0], + SOUS_TITRE='Iteration : ' + str(iter), + LEGENDE_X=reponses[i][1], + LEGENDE_Y=reponses[i][2], + **motscle2 + ); +# DEFI_FICHIER(ACTION='LIBERER',UNITE=int(UL_out),) + + elif FORMAT=='GNUPLOT': + graphe=[] + impr=Gnuplot.Gnuplot() + Gnuplot.GnuplotOpts.prefer_inline_data=1 + impr('set data style linespoints') + impr('set grid') + impr('set pointsize 2.') + impr('set terminal postscript color') + impr('set output "fort.'+str(UL_out)+'"') + + for i in range(len(L_F)): + if interactif: + graphe.append(Gnuplot.Gnuplot(persist=0)) + graphe[i]('set data style linespoints') + graphe[i]('set grid') + graphe[i]('set pointsize 2.') + graphe[i].xlabel(reponses[i][1]) + graphe[i].ylabel(reponses[i][2]) + graphe[i].title(reponses[i][0]+' Iteration '+str(iter)) + graphe[i].plot(Gnuplot.Data(L_F[i],title='Calcul'),Gnuplot.Data(res_exp[i],title='Experimental')) + graphe[i]('pause 5') + + impr.xlabel(reponses[i][1]) + impr.ylabel(reponses[i][2]) + impr.title(reponses[i][0]+' Iteration '+str(iter)) + impr.plot(Gnuplot.Data(L_F[i],title='Calcul'),Gnuplot.Data(res_exp[i],title='Experimental')) + + else: + pass diff --git a/Aster/Cata/cataSTA8/Macro/reca_interp.py b/Aster/Cata/cataSTA8/Macro/reca_interp.py index 00ad62d2..0d04cc21 100644 --- a/Aster/Cata/cataSTA8/Macro/reca_interp.py +++ b/Aster/Cata/cataSTA8/Macro/reca_interp.py @@ -1,4 +1,4 @@ -#@ MODIF reca_interp Macro DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +#@ MODIF reca_interp Macro DATE 05/09/2005 AUTEUR DURAND C.DURAND # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -22,6 +22,7 @@ import os import Numeric import Macro from Macro.recal import calcul_F +from Utilitai.Utmess import UTMESS #=========================================================================================== @@ -121,12 +122,12 @@ class Sim_exp : try: L_J[i] = L_J[i]/L_J_init[i] except ZeroDivisionError: + message= 'Problème de division par zéro dans la normalisation de la fonctionnelle.\n' + message=message+'Une des valeurs de la fonctionnelle initiale est nulle ou inférieure à la précision machine : %.2f \n'%L_J_init fic=open(os.getcwd()+'/fort.'+str(unite_resu),'a') - fic.write('\n Problème de division par zéro dans la normalisation de la fonctionnelle.') - fic.write('\n Une des valeurs de la fonctionnelle initiale est nulle ou inférieure à la précision machine :'+ str(L_J_init)) + fic.write(message) fic.close() - self.cr.fatal(" Problème de division par zéro dans la normalisation de la fonctionnelle.\nUne des valeurs de la fonctionnelle initiale est nulle ou inférieure à la précision machine :"+ str(L_J_init)) - return + UTMESS('F', "MACR_RECAL", message) J = Numeric.sum(L_J) J = J/len(L_J) @@ -155,12 +156,12 @@ class Sim_exp : try: L_A[j][i,k] = -1*(F_interp[j][i] - F_perturbe_interp[j][i])/h except ZeroDivisionError: + message= 'Probleme de division par zéro dans le calcul de la matrice de sensiblité\n ' + message=message+'Le parametre '+para[k]+'est nul ou plus petit que la précision machine \n' fic=open(os.getcwd()+'/fort.'+str(unite_resu),'a') - fic.write('\n Probleme de division par zéro dans le calcul de la matrice de sensiblité') - fic.write('\n Le parametre '+para[k]+'est nul ou plus petit que la précision machine') - fic.close() - self.cr.fatal(" Probleme de division par zéro dans le calcul de la matrice de sensiblité.\n Le parametre "+para[k]+"est nul ou plus petit que la précision machine") - return + fic.write(message) + fic.close() + UTMESS('F', "MACR_RECAL", message) #on construit la matrice de sensiblité sous forme d'un tab num dim =[] for i in range(len(L_A)): diff --git a/Aster/Cata/cataSTA8/Macro/recal.py b/Aster/Cata/cataSTA8/Macro/recal.py index 591614c8..2e43b088 100644 --- a/Aster/Cata/cataSTA8/Macro/recal.py +++ b/Aster/Cata/cataSTA8/Macro/recal.py @@ -1,4 +1,4 @@ -#@ MODIF recal Macro DATE 14/03/2005 AUTEUR DURAND C.DURAND +#@ MODIF recal Macro DATE 08/11/2005 AUTEUR ASSIRE A.ASSIRE # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -21,16 +21,25 @@ -import string -import copy -import Numeric -import types -import Gnuplot +import string, copy, Numeric, types +# import Gnuplot import Cata -from Cata.cata import INCLUDE,DETRUIRE +from Cata.cata import INCLUDE, DETRUIRE, FIN, EXEC_LOGICIEL, DEFI_FICHIER, IMPR_TABLE, LIRE_TABLE, INFO_EXEC_ASTER, EXTR_TABLE +from Utilitai.Utmess import UTMESS from Accas import _F -import os +import os, aster, cPickle, sys + +# try: +# import Gnuplot +# except: pass + +try: + from Utilitai.Utmess import UTMESS +except ImportError: + def UTMESS(code,sprg,texte): + fmt='\n <%s> <%s> %s\n\n' + print fmt % (code,sprg,texte) #_____________________________________________ @@ -39,7 +48,7 @@ import os #_____________________________________________ -# Transforme les donneés entrées par l'utilsateur en tableau Numeric +# Transforme les données entrées par l'utilisateur en tableau Numeric def transforme_list_Num(parametres,res_exp): dim_para = len(parametres) #donne le nb de parametres val_para = Numeric.zeros(dim_para,Numeric.Float) @@ -157,8 +166,8 @@ def calcul_F(self,UL,para,val,reponses): Fichier_Resu.append('Lrep=[]'+'\n') for i in range(len(reponses)): Fichier_Resu.append('t'+str(reponses[i][0])+'='+str(reponses[i][0])+'.EXTR_TABLE()'+'\n') - Fichier_Resu.append('F = '+'t'+str(reponses[i][0])+'.Array('+"'"+str(reponses[i][1])+"'"+','+"'"+str(reponses[i][2])+"'"+')'+'\n') - Fichier_Resu.append('Lrep.append(F)'+'\n') + Fichier_Resu.append('_F_ = '+'t'+str(reponses[i][0])+'.Array('+"'"+str(reponses[i][1])+"'"+','+"'"+str(reponses[i][2])+"'"+')'+'\n') + Fichier_Resu.append('Lrep.append(_F_)'+'\n') #ouverture du fichier fort.3 et mise a jour de celui ci x=open('fort.'+str(UL),'w') @@ -178,37 +187,6 @@ def calcul_F(self,UL,para,val,reponses): x.close() return self.g_context['Lrep'] -#_____________________________________________ -# -# IMPRESSIONS GRAPHIQUES -#_____________________________________________ - -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')) - #_____________________________________________ # diff --git a/Aster/Cata/cataSTA8/Macro/stanley_ops.py b/Aster/Cata/cataSTA8/Macro/stanley_ops.py index a38f2808..51af193a 100644 --- a/Aster/Cata/cataSTA8/Macro/stanley_ops.py +++ b/Aster/Cata/cataSTA8/Macro/stanley_ops.py @@ -1,4 +1,4 @@ -#@ MODIF stanley_ops Macro DATE 30/11/2004 AUTEUR MCOURTOI M.COURTOIS +#@ MODIF stanley_ops Macro DATE 15/05/2006 AUTEUR ASSIRE A.ASSIRE # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -20,7 +20,7 @@ -def stanley_ops(self,RESULTAT,MODELE,CHAM_MATER,CARA_ELEM,**args): +def stanley_ops(self,RESULTAT,MODELE,CHAM_MATER,CARA_ELEM,DISPLAY,**args): """ Importation et lancement de Stanley @@ -31,19 +31,32 @@ def stanley_ops(self,RESULTAT,MODELE,CHAM_MATER,CARA_ELEM,**args): from Accas import _F from Noyau.N_utils import AsType from Utilitai.Utmess import UTMESS + from Utilitai.UniteAster import UniteAster ier=0 # La macro compte pour 1 dans la numerotation des commandes - self.icmd=1 + self.set_icmd(1) + # Redefinition eventuelle du DISPLAY + if DISPLAY: + UTMESS('I','STANLEY', 'Redefinition du DISPLAY vers : ' + DISPLAY) + os.environ['DISPLAY'] = DISPLAY + + # Mode validation de la non-regression + if args['UNITE_VALIDATION']: + UTMESS('I','STANLEY', 'Stanley fonctionne en mode validation de non-regresion') + UL = UniteAster() + FICHIER_VALID=UL.Nom(args['UNITE_VALIDATION']) + else: + FICHIER_VALID=None # On ne lance Stanley que si la variable DISPLAY est définie if os.environ.has_key('DISPLAY'): import Stanley from Stanley import stanley - + if (RESULTAT and MODELE and CHAM_MATER): _MAIL = aster.getvectjev( string.ljust(MODELE.nom,8) + '.MODELE .NOMA ' ) _MAIL = string.strip(_MAIL[0]) @@ -53,7 +66,7 @@ def stanley_ops(self,RESULTAT,MODELE,CHAM_MATER,CARA_ELEM,**args): else: stanley.STANLEY(RESULTAT,MAILLAGE,MODELE,CHAM_MATER,None) else: - stanley.PRE_STANLEY() + stanley.PRE_STANLEY(FICHIER_VALID) else: UTMESS('A','STANLEY', @@ -61,6 +74,11 @@ def stanley_ops(self,RESULTAT,MODELE,CHAM_MATER,CARA_ELEM,**args): STANLEY ne pourra pas fonctionner. On l'ignore. Si vous etes en Interactif, cochez le bouton Suivi Interactif - dans ASTK.""") + dans ASTK. + + Vous pouvez également préciser votre DISPLAY dans les arguments + de la commande STANLEY : + + STANLEY(DISPLAY='adresse_ip:0.0');""") return ier diff --git a/Aster/Cata/cataSTA8/Macro/test_fichier_ops.py b/Aster/Cata/cataSTA8/Macro/test_fichier_ops.py index 5f4ac116..35d34da1 100644 --- a/Aster/Cata/cataSTA8/Macro/test_fichier_ops.py +++ b/Aster/Cata/cataSTA8/Macro/test_fichier_ops.py @@ -1,4 +1,4 @@ -#@ MODIF test_fichier_ops Macro DATE 03/11/2004 AUTEUR MCOURTOI M.COURTOIS +#@ MODIF test_fichier_ops Macro DATE 22/05/2006 AUTEUR MCOURTOI M.COURTOIS # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -18,18 +18,22 @@ # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== +import sys +import os.path +import re +from math import floor, log10 +from types import StringType +import md5 + #------------------------------------------------------------------------------- -def test_fichier_ops(self, UNITE, FICHIER, NB_CHIFFRE, EPSILON, VALE_K, INFO, **args): +def test_fichier_ops(self, FICHIER, NB_CHIFFRE, EPSILON, VALE_K, INFO, **args): """ Macro TEST_FICHIER permettant de tester la non-regression d'un fichier 'a une tolerance' pres pour les nombres reels en calculant le md5sum. """ - import aster - from Accas import _F - ier=0 + ier = 0 # La macro compte pour 1 dans la numerotation des commandes - #self.icmd=1 self.set_icmd(1) # On importe les definitions des commandes a utiliser dans la macro @@ -38,14 +42,14 @@ def test_fichier_ops(self, UNITE, FICHIER, NB_CHIFFRE, EPSILON, VALE_K, INFO, ** DETRUIRE = self.get_cmd('DETRUIRE') CREA_TABLE = self.get_cmd('CREA_TABLE') TEST_TABLE = self.get_cmd('TEST_TABLE') - - import os.path - import re - from types import StringType + + import aster + from Accas import _F from Macro.test_fichier_ops import md5file + from Utilitai.Utmess import UTMESS # vérifie la syntaxe des expressions régulières fournies - l_regexp=[] + l_regexp = [] if args['EXPR_IGNORE']: if type(args['EXPR_IGNORE']) is StringType: lexp = [args['EXPR_IGNORE']] @@ -53,54 +57,51 @@ def test_fichier_ops(self, UNITE, FICHIER, NB_CHIFFRE, EPSILON, VALE_K, INFO, ** lexp = args['EXPR_IGNORE'] for exp in lexp: try: - obj=re.compile(exp) + obj = re.compile(exp) except re.error, s: - print ' '+str(s)+' pour "'+exp+'"' + UTMESS('F', 'TEST_FICHIER', + ' %s pour %s' % (str(s), repr(exp))) else: l_regexp.append(exp) - if len(l_regexp) < len(lexp): - self.cr.fatal(' Expression régulière invalide (voir )') - - is_ok=0 + is_ok = 0 # vérifier que le fichier a été fermé tinfo__ = INFO_EXEC_ASTER(LISTE_INFO='ETAT_UNITE', FICHIER=FICHIER) - if tinfo__['ETAT_UNITE',1].find('OUVERT')>-1: - print " LE FICHIER N'A PAS ETE FERME :\n",FICHIER + if tinfo__['ETAT_UNITE', 1].find('OUVERT')>-1: + UTMESS('A', 'TEST_FICHIER', + "LE FICHIER N'A PAS ETE FERME :\n%s" % FICHIER) # fichier correctement fermé else: # calcule le md5sum du fichier ier, mdsum = md5file(FICHIER, NB_CHIFFRE, EPSILON, l_regexp, INFO) if ier != 0: - if ier==4: - texte_erreur='Fichier inexistant : '+FICHIER + if ier == 4: + texte_erreur = 'Fichier inexistant : '+FICHIER else: - texte_erreur='Erreur dans md5file, code retour = '+str(ier) - texte_erreur=' '+texte_erreur + texte_erreur = 'Erreur dans md5file, code retour = '+str(ier) + texte_erreur = ' '+texte_erreur # aujourd'hui, je ne sais pas déclencher autre chose que ... self.cr.fatal(texte_erreur) return ier # comparaison a la reference if INFO > 0 : - print ' %-20s : %32s' % ('REFERENCE',VALE_K) - print + aster.affiche('MESSAGE', ' %-20s : %32s\n' % ('REFERENCE', VALE_K)) if mdsum == VALE_K: - is_ok=1 + is_ok = 1 # produit le TEST_TABLE - tab1__=CREA_TABLE(LISTE=(_F(PARA='TEST', - TYPE_K='K8', - LISTE_K='VALEUR ',), - _F(PARA='BOOLEEN', - LISTE_I=is_ok,),),) + tab1__ = CREA_TABLE(LISTE=(_F(PARA='TEST', + TYPE_K='K8', + LISTE_K='VALEUR ',), + _F(PARA='BOOLEEN', + LISTE_I=is_ok,),),) if args['REFERENCE'] == 'NON_REGRESSION': - TEST_TABLE(UNITE=UNITE, - TABLE=tab1__, + TEST_TABLE(TABLE=tab1__, FILTRE=_F(NOM_PARA='TEST', VALE_K='VALEUR ',), NOM_PARA='BOOLEEN', @@ -110,8 +111,7 @@ def test_fichier_ops(self, UNITE, FICHIER, NB_CHIFFRE, EPSILON, VALE_K, INFO, ** REFERENCE=args['REFERENCE'], VERSION=args['VERSION'],) else: - TEST_TABLE(UNITE=UNITE, - TABLE=tab1__, + TEST_TABLE(TABLE=tab1__, FILTRE=_F(NOM_PARA='TEST', VALE_K='VALEUR ',), NOM_PARA='BOOLEEN', @@ -126,7 +126,33 @@ def test_fichier_ops(self, UNITE, FICHIER, NB_CHIFFRE, EPSILON, VALE_K, INFO, ** #------------------------------------------------------------------------------- -def md5file(fich,nbch,epsi,regexp_ignore=[],info=0): +def sign(x): + return int(x/abs(x)) + +def _round(x, n, exp): + v = x * 10**(-exp+n) + val = int(v + sign(x)*0.4999) + return val + +def entier_ini(x, nbch, exp=None): + #if exp is None: + #exp = int(floor(log10(abs(x)))) + val = _round(x, nbch-1, exp) + return val, exp-nbch+1 + +def entier_triple(x, nbch, exp_epsi): + #if abs(x) <= 10**exp_epsi: + #return '0' + y = _round(x * 10**(-exp_epsi), 0, 0) * 10**exp_epsi + exp = int(floor(log10(abs(y)))) + z1, e1 = entier_ini(y, nbch+2, exp) + z2, e2 = entier_ini(z1 * 10**e1, nbch+1, exp) + z3, e3 = entier_ini(z2 * 10**e2, nbch, exp) + return '%sE%d' % (z3, e3) + +#------------------------------------------------------------------------------- +def md5file(fich, nbch, epsi, + regexp_ignore=[], info=0, output=None, format_func=entier_triple): """ Cette methode retourne le md5sum d'un fichier en arrondissant les nombres reels a la valeur significative. @@ -136,60 +162,116 @@ def md5file(fich,nbch,epsi,regexp_ignore=[],info=0): epsi : valeur en deca de laquelle on prend 0 regexp_ignore : liste d'expressions régulières permettant d'ignorer certaines lignes + output : pour rediriger l'interprétation du fichier (INFO=2) + dans le fichier de nom `output`, + info : on affiche le résumé si info>0 + format_func : on peut préciser une autre fonction pour formatter + les réels... OUT : code retour : 0 si ok, >0 sinon md5sum - """ - import os.path - import re - import string - import math - import md5 + + NE PAS AJOUTER D'IMPORT QUI RENDRAIT CETTE FONCTION + INUTILISABLE EN DEHORS DE CODE_ASTER. + """ + if output != None: + try: + sys.stdout = open(output, 'w') + except IOError, msg: + print "Erreur d'écriture sur %s : %s" % (output, msg) + # 1 Mo 10 Mo 100 Mo # v0 2.6 s 20.4 s 196.6 s # v1 2.0 s 10.3 s 94.9 s (pas de distinction entier/reel) # remplacer le try/except par if re.search(...), 80% plus lent + # v2 10.7 s if not os.path.isfile(fich): return 4, '' - f=open(fich,'r') - format_float='%'+str(nbch+7)+'.'+str(nbch)+'g' - m=md5.new() - i=0 + f = open(fich,'r') + m = md5.new() + exp_epsi = int(floor(log10(abs(epsi)))) + i = 0 for ligne in f: - i=i+1 - if info>=2: - print 'LIGNE',i, - keep=True + i = i+1 + if info >= 2: + print 'LIGNE', i, + keep = True for exp in regexp_ignore: - if re.search(exp,ligne): - keep=False - if info>=2: + if re.search(exp, ligne): + keep = False + if info >= 2: print ' >>>>>>>>>> IGNOREE <<<<<<<<<<', break if keep: - #r=string.split(ligne) # découpe des nombres collés : 1.34E-142-1.233D+09 - r=string.split(re.sub('([0-9]+)\-','\g<1> -',ligne)) + ligne = re.sub('([0-9]+)\-', '\g<1> -', ligne) + # conversion des DOUBLE fortran en 'E' + ligne = re.sub('([0-9]+)[dD]([\-\+]{0,1}[0-9]+)', '\g<1>E\g<2>', ligne) + r = ligne.split() for x in r: try: - if abs(float(x))=2: + s = x + if info >= 2: print (' %'+str(nbch+7)+'s') % s, m.update(s) - if info>=2: + if info >= 2: print f.close() - md5sum=m.hexdigest() - if info>=1: - form=' %-20s : %32s' - print form % ('Fichier',fich) - print form % ('Nombre de lignes',str(i)) - print form % ('Format des reels',format_float) - print form % ('Epsilon',str(epsi)) - print form % ('md5sum',md5sum) + md5sum = m.hexdigest() + + affich_resu = True + if info >= 1: + while affich_resu: + form = ' %-20s : %32s' + print form % ('Fichier', fich) + print form % ('Nombre de lignes', str(i)) + #print form % ('Format des reels',format_float) + print form % ('Nombre de chiffres', str(nbch)) + print form % ('Epsilon', str(epsi)) + print form % ('md5sum', md5sum) + if output == None: + affich_resu = False + else: + sys.stdout = sys.__stdout__ + output = None return 0, md5sum + + +#------------------------------------------------------------------------------- +if __name__ == '__main__': + from optparse import OptionParser, OptionGroup + + p = OptionParser(usage='usage: %s a_tester [options]' % sys.argv[0]) + p.add_option('-n', '--nbch', + action='store', dest='nbch', type='int', default=6, + help='nombre de chiffres significatifs') + p.add_option('-e', '--epsilon', + action='store', dest='epsi', type='float', default=1.e-14, + help='epsilon en dessous duquel on considère les nombres nuls') + p.add_option('--expr_ignore', + action='store', dest='exp', type='string', + help='expression régulière à ignorer') + p.add_option('-o', '--output', + action='store', dest='output', type='string', default='output.txt', + help='fichier de sortie') + opts, args = p.parse_args() + + if len(args)<1: + p.print_usage() + sys.exit(1) + if opts.exp is None: + exp = [] + else: + exp = [opts.exp] + + print 'Lignes retenues dans %s' % opts.output + iret = md5file(args[0], opts.nbch, opts.epsi, + regexp_ignore=exp, info=2, output=opts.output) + diff --git a/Aster/Cata/cataSTA8/__init__.py b/Aster/Cata/cataSTA8/__init__.py index 0acf34ea..ee8be403 100644 --- a/Aster/Cata/cataSTA8/__init__.py +++ b/Aster/Cata/cataSTA8/__init__.py @@ -4,3 +4,6 @@ import sys rep_macro = os.path.join(prefs.REPINI,'Cata/cataSTA8') sys.path.insert(0,rep_macro) from cata import * +from math import ceil +from Extensions import param2 +pi=param2.Variable('pi',pi) diff --git a/Aster/Cata/cataSTA8/cata.py b/Aster/Cata/cataSTA8/cata.py index 24fbd7f4..e2497c03 100755 --- a/Aster/Cata/cataSTA8/cata.py +++ b/Aster/Cata/cataSTA8/cata.py @@ -1,4 +1,4 @@ -#& MODIF ENTETE DATE 12/05/2005 AUTEUR DURAND C.DURAND +#& MODIF ENTETE DATE 22/05/2006 AUTEUR MCOURTOI M.COURTOIS # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -22,24 +22,23 @@ import Accas from Accas import * from Accas import _F import string -import types +from types import TupleType, ListType, StringType, InstanceType import Numeric from math import sin,cos,tan,asin,acos,atan2,atan,sinh,cosh,tanh,exp,log,log10 from math import sqrt,pi import ops -# pas d'import aster, Utilitai... pour ne pas gener eficas -from Utilitai.t_fonction import t_fonction,t_fonction_c,t_nappe - try: import aster except: pass -# __version__="$Name: $" -__Id__="$Id: cata_STA8.py,v 1.2 2005/06/03 10:22:14 eficas Exp $" -# +__Id__="$Id: cata.py,v 1.1.6.2 2006/06/20 12:14:36 pnoyret Exp $" + +EnumTypes = (ListType, TupleType) + +# ----------------------------------------------------------------------------- JdC = JDC_CATA(code='ASTER', execmodul=None, regles = (AU_MOINS_UN('DEBUT','POURSUITE'), @@ -51,16 +50,46 @@ class entier (ASSD): ASSD.__init__(self,**args) self.valeur=valeur + def __adapt__(self,validator): + if validator.name == "list": + #validateur liste,cardinalité + return (self,) + elif validator.name == "type": + #validateur type + return validator.adapt(self.valeur or 0) + else: + #validateur into et valid + return self + +class reel(ASSD): + def __init__(self,valeur=None,**args): + ASSD.__init__(self,**args) + self.valeur=valeur + + def __call__(self): + return self.valeur + + def __adapt__(self,validator): + if validator.name == "list": + #validateur liste,cardinalité + return (self,) + elif validator.name == "type": + #validateur type + return validator.adapt(self.valeur or 0.) + else: + #validateur into et valid + return self + + +# ----------------------------------------------------------------------------- # Type geometriques class no (GEOM):pass class grno(GEOM):pass class ma (GEOM):pass class grma(GEOM):pass - - +# ----------------------------------------------------------------------------- # Autres - class cabl_precont (ASSD):pass class cara_elem (ASSD):pass class cham_mater (ASSD):pass @@ -77,7 +106,6 @@ class fond_fiss (ASSD):pass class interf_dyna_clas(ASSD):pass class interspfact (ASSD):pass class listis_sdaster (ASSD):pass -class mater_sdaster (ASSD):pass class melasflu_sdaster(ASSD):pass class nume_ddl_sdaster(ASSD):pass class nume_ddl_gene (ASSD):pass @@ -88,13 +116,15 @@ class surface_sdaster (ASSD):pass class tran_gene (ASSD):pass class type_flui_stru (ASSD):pass +# ----------------------------------------------------------------------------- # modeles : -#-------------------------------- class modele_sdaster (ASSD):pass class modele_gene (ASSD): def LIST_SOUS_STRUCT(self) : """ retourne la liste des sous structures du modele generalise la liste des macro-elements sous-jacents""" + if self.par_lot(): + raise Accas.AsException("Erreur dans modele_gene.LIST_SOUS_STRUCT en PAR_LOT='OUI'") nommodgen=self.get_name() ncham=nommodgen+(8-len(nommodgen))*' ' ssno=aster.getvectjev(ncham+(14-len(ncham))*' '+'.MODG.SSNO') @@ -102,55 +132,89 @@ class modele_gene (ASSD): return [([ssno[ind], ssme[ind+1]]) for ind in range(len(ssno))] def LIST_LIAIS_STRUCT(self) : """ retourne la liste des liaisons entre sous structures du modele generalise sous la forme : - [ (ss1, nom_liais1, ss2 , nom_liais2), ...] """ + [ (ss1, nom_liais1, ss2 , nom_liais2), ...] """ + if self.par_lot() : + raise Accas.AsException("Erreur dans modele_gene.LIST_LIAIS_STRUCT en PAR_LOT='OUI'") nommodgen=self.get_name() ncham=nommodgen+(8-len(nommodgen))*' ' lidf=aster.getcolljev(ncham+(14-len(ncham))*' '+'.MODG.LIDF') return [([(lidf[ind][indb]) for indb in range(4)]) for ind in lidf] +# ----------------------------------------------------------------------------- +# materiau +class mater_sdaster(ASSD): + def RCVALE(self, phenomene, nompar=(), valpar=(), nomres=(), stop='F'): + """Appel à la routine fortran RCVALE pour récupérer les valeurs des + propriétés du matériau. + """ + if self.par_lot() : + raise Accas.AsException("Erreur dans mater.RCVALE en PAR_LOT='OUI'") + from Utilitai.Utmess import UTMESS + # vérification des arguments + if not nompar in EnumTypes: + nompar = tuple(nompar) + if not valpar in EnumTypes: + valpar = tuple(valpar) + if not nomres in EnumTypes: + nomres = tuple(nomres) + if len(nompar) != len(valpar): + UTMESS('F', 'RCVALE', """Arguments incohérents : + Nom des paramètres : %s + Valeur des paramètres : %s""" \ + % (', '.join(nompar), ', '.join([repr(v) for v in valpar]))) + if len(nomres) < 1: + UTMESS('F', 'RCVALE', 'Argument invalide : "nomres" vide !') + # appel à l'interface Python/C + return aster.rcvale(self.nom, phenomene, nompar, valpar, nomres, stop) + +# ----------------------------------------------------------------------------- # macro-elements : -#-------------------------------- class macr_elem_dyna (ASSD): def NBRE_MODES(self) : """ retourne le nombre de modes total, dynamiques et d'interface """ + if self.par_lot() : + raise Accas.AsException("Erreur dans macr_elem_dyna.NBRE_MODES en PAR_LOT='OUI'") nommacr=self.get_name() ncham=nommacr+(8-len(nommacr))*' ' ncham=nommacr+(8-len(nommacr))*' '+'.MAEL' - nombase=aster.getvectjev(ncham+(19-len(ncham))*' '+'.REFE')[0] + nombase=aster.getvectjev(ncham+'_REFE')[0] nbmode=Numeric.array(aster.getvectjev(nombase[0:8]+(19-len(nombase[0:8]))*' '+'.UTIL')) nbmodtot=nbmode[1] nbmoddyn=nbmode[2] nbmodint=nbmode[3] return [nbmodtot,nbmoddyn,nbmodint] - + def EXTR_MATR_GENE(self,typmat) : - """ retourne les valeurs des matrices generalisees reelles + """ retourne les valeurs des matrices generalisees reelles dans un format Numerical Array typmat='MASS_GENE' pour obtenir la matrice de masse generalisee typmat='RIGI_GENE' pour obtenir la matrice de raideur generalisee typmat='AMOR_GENE' pour obtenir la matrice d'amortissement generalisee Attributs retourne - self.valeurs : Numeric.array contenant les valeurs """ + if self.par_lot() : + raise Accas.AsException("Erreur dans macr_elem_dyna.EXTR_MATR_GENE en PAR_LOT='OUI'") nommacr=self.get_name() if (typmat=='MASS_GENE') : - ext='.MAEL.MASS ' - elif (typmat=='RIGI_GENE') : - ext='.MAEL.RAID ' - elif (typmat=='AMOR_GENE') : - ext='.MAEL.AMOR ' + ext='.MAEL_MASS' + elif (typmat=='RIGI_GENE') : + ext='.MAEL_RAID' + elif (typmat=='AMOR_GENE') : + ext='.MAEL_AMOR' else: raise Accas.AsException("Le type de la matrice est incorrect") ncham=nommacr+(8-len(nommacr))*' '+ext - desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC')) + print ncham + desc=Numeric.array(aster.getvectjev(ncham+'_DESC')) -# On teste si le DESC du vecteur existe + # On teste si le DESC du vecteur existe if (desc==None): raise Accas.AsException("L'objet matrice n'existe pas ou \ est mal cree par Code Aster") - tmp=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.VALE')) + tmp=Numeric.array(aster.getvectjev(ncham+'_VALE')) matrice=Numeric.zeros([desc[1],desc[1]],Numeric.Float) for j in range(desc[1]+1): for i in range(j): @@ -158,46 +222,48 @@ class macr_elem_dyna (ASSD): matrice[j-1,i]=tmp[k] matrice=(matrice+Numeric.transpose(matrice)) for i in range(desc[1]): - matrice[i,i]=0.5*matrice[i,i] + matrice[i,i]=0.5*matrice[i,i] return matrice def RECU_MATR_GENE(self,typmat,matrice) : - """ envoie les valeurs d'un Numerical Array dans des matrices generalisees + """ envoie les valeurs d'un Numerical Array dans des matrices generalisees reelles definies dans jeveux typmat='MASS_GENE' pour obtenir la matrice de masse generalisee typmat='RIGI_GENE' pour obtenir la matrice de raideur generalisee typmat='AMOR_GENE' pour obtenir la matrice d'amortissement generalisee Attributs ne retourne rien """ + if self.par_lot() : + raise Accas.AsException("Erreur dans macr_elem_dyna.RECU_MATR_GENE en PAR_LOT='OUI'") from Utilitai.Utmess import UTMESS -# avertissement generique + # avertissement generique UTMESS('A','RECU_MATR_GENE',' ATTENTION, VOUS ALLEZ ECRASER DES CONCEPTS EXISTANTS') nommacr=self.get_name() if (typmat=='MASS_GENE') : - ext='.MAEL.MASS ' - elif (typmat=='RIGI_GENE') : - ext='.MAEL.RAID ' - elif (typmat=='AMOR_GENE') : - ext='.MAEL.AMOR ' + ext='.MAEL_MASS' + elif (typmat=='RIGI_GENE') : + ext='.MAEL_RAID' + elif (typmat=='AMOR_GENE') : + ext='.MAEL_AMOR' else: raise Accas.AsException("Le type de la matrice \ est incorrect") ncham=nommacr+(8-len(nommacr))*' '+ext - desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC')) + desc=Numeric.array(aster.getvectjev(ncham+'_DESC')) -# On teste si le DESC de la matrice jeveux existe + # On teste si le DESC de la matrice jeveux existe if (desc==None): raise Accas.AsException("L'objet matrice n'existe pas ou \ est mal cree par Code Aster") Numeric.asarray(matrice) -# On teste si la matrice python est de dimension 2 - if (len(Numeric.shape(matrice))<>2): + # On teste si la matrice python est de dimension 2 + if (len(Numeric.shape(matrice))<>2): raise Accas.AsException("La dimension de la matrice \ est incorrecte") -# On teste si les tailles de la matrice jeveux et python sont identiques + # On teste si les tailles de la matrice jeveux et python sont identiques if (tuple([desc[1],desc[1]])<>Numeric.shape(matrice)) : raise Accas.AsException("La dimension de la matrice \ est incorrecte") @@ -207,27 +273,32 @@ class macr_elem_dyna (ASSD): for i in range(j): k=j*(j-1)/2+i tmp[k]=matrice[j-1,i] - aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALE',len(tmp),tuple(( + aster.putvectjev(ncham+'_VALE',len(tmp),tuple(( range(1,len(tmp)+1))),tuple(tmp),tuple(tmp),1) return - class macr_elem_stat (ASSD):pass +# ----------------------------------------------------------------------------- # liste : -#-------------------------------- class listr8_sdaster (ASSD): - def Valeurs(self) : - """ - Retourne la liste des valeurs : [val1, ..., valN] - """ - vale=string.ljust(self.get_name(),19)+'.VALE' - return list(aster.getvectjev(vale)) + def Valeurs(self) : + """ + Retourne la liste des valeurs : [val1, ..., valN] + """ + if not self.par_lot(): + vale='%-19s.VALE' % self.get_name() + t_vale = aster.getvectjev(vale) + if t_vale == None: + UTMESS('F', 'listr8.Valeurs', "Objet '%s' inexistant" % vale) + return list(t_vale) + else: + raise Accas.AsException("Erreur dans listr8.Valeurs en PAR_LOT='OUI'") +# ----------------------------------------------------------------------------- # post-traitement : -#-------------------------------- class post_comp_cham_el : def __init__(self,valeurs,maille=None,point=None,sous_point=None) : self.valeurs=valeurs @@ -240,76 +311,48 @@ class post_comp_cham_no : self.valeurs=valeurs self.noeud=noeud +# ----------------------------------------------------------------------------- # maillage : -#-------------------------------- class maillage_sdaster(ASSD): def LIST_GROUP_NO(self) : - """ retourne la liste des groupes de noeuds sous la forme : + """ retourne la liste des groupes de noeuds sous la forme : [ (gno1, nb noeuds gno1), ...] """ - nommail=self.get_name() - dic_gpno=aster.getcolljev(nommail.ljust(8)+".GROUPENO") - return [(gpno.strip(),len(dic_gpno[gpno])) for gpno in dic_gpno] + if self.par_lot() : + raise Accas.AsException("Erreur dans maillage.LIST_GROUP_NO en PAR_LOT='OUI'") + nommail=self.get_name() + dic_gpno=aster.getcolljev(nommail.ljust(8)+".GROUPENO") + return [(gpno.strip(),len(dic_gpno[gpno])) for gpno in dic_gpno] def LIST_GROUP_MA(self) : - """ retourne la liste des groupes de mailles sous la forme : + """ retourne la liste des groupes de mailles sous la forme : [ (gma1, nb mailles gma1, dime max des mailles gma1), ...] """ - nommail=self.get_name() - nommail=nommail.ljust(8) - ngpma=[] - ltyma =aster.getvectjev("&CATA.TM.NOMTM") - catama=aster.getcolljev("&CATA.TM.TMDIM") - dic_gpma=aster.getcolljev(nommail+".GROUPEMA") - dimama=[catama[ltyma[ma-1]][0] for ma in aster.getvectjev(nommail+".TYPMAIL")] - for grp in dic_gpma.keys(): - dim=max([dimama[ma-1] for ma in dic_gpma[grp]]) - ngpma.append((grp.strip(),len(dic_gpma[grp]),dim)) - return ngpma - + if self.par_lot() : + raise Accas.AsException("Erreur dans maillage.LIST_GROUP_MA en PAR_LOT='OUI'") + nommail=self.get_name() + nommail=nommail.ljust(8) + ngpma=[] + ltyma =aster.getvectjev("&CATA.TM.NOMTM") + catama=aster.getcolljev("&CATA.TM.TMDIM") + dic_gpma=aster.getcolljev(nommail+".GROUPEMA") + dimama=[catama[ltyma[ma-1]][0] for ma in aster.getvectjev(nommail+".TYPMAIL")] + for grp in dic_gpma.keys(): + dim=max([dimama[ma-1] for ma in dic_gpma[grp]]) + ngpma.append((grp.strip(),len(dic_gpma[grp]),dim)) + return ngpma class squelette (maillage_sdaster):pass -# cham_gd_sdaster (carte_sdaster,cham_no_sdaster,cham_elem_sdaster) -#-------------------------------- - +# ----------------------------------------------------------------------------- +# champ_gd/carte class cham_gd_sdaster(ASSD):pass - -# cham_gd_sdaster/carte_sdaster : -#-------------------------------- class carte_sdaster (cham_gd_sdaster):pass -class carte_dbel_r (carte_sdaster):pass -class carte_depl_c (carte_sdaster):pass -class carte_depl_f (carte_sdaster):pass -class carte_depl_r (carte_sdaster):pass -class carte_durt_r (carte_sdaster):pass -class carte_ener_r (carte_sdaster):pass -class carte_epsi_r (carte_sdaster):pass -class carte_erreur (carte_sdaster):pass -class carte_flux_r (carte_sdaster):pass -class carte_g_depl_r (carte_sdaster):pass -class carte_geom_r (carte_sdaster):pass -class carte_hydr_r (carte_sdaster):pass -class carte_inst_r (carte_sdaster):pass -class carte_inte_r (carte_sdaster):pass -class carte_irra_r (carte_sdaster):pass -class carte_neut_f (carte_sdaster):pass -class carte_neut_r (carte_sdaster):pass -class carte_pres_r (carte_sdaster):pass -class carte_sief_r (carte_sdaster):pass -class carte_sour_r (carte_sdaster):pass -class carte_temp_f (carte_sdaster):pass -class carte_temp_r (carte_sdaster):pass -class carte_var2_r (carte_sdaster):pass -class carte_vnor_c (carte_sdaster):pass -class carte_corr_r (carte_sdaster):pass - - -# cham_gd_sdaster/cham_elem_sdaster : -#-------------------------------- -class cham_elem_sdaster(cham_gd_sdaster): +# ----------------------------------------------------------------------------- +# cham_elem +class cham_elem(cham_gd_sdaster): def EXTR_COMP(self,comp,lgma,topo=0) : - """ retourne les valeurs de la composante comp du champ sur la liste - de groupes de mailles lgma avec eventuellement l'info de la + """ retourne les valeurs de la composante comp du champ sur la liste + de groupes de mailles lgma avec eventuellement l'info de la topologie si topo>0. Si lgma est une liste vide, c'est equivalent a un TOUT='OUI' dans les commandes aster Attributs retourne @@ -318,139 +361,92 @@ class cham_elem_sdaster(cham_gd_sdaster): - self.maille : numero de mailles - self.point : numero du point dans la maille - self.sous_point : numero du sous point dans la maille """ - - - ncham=self.get_name() - ncham=ncham+(8-len(ncham))*' ' - nchams=ncham[0:7]+'S' - ncmp=comp+(8-len(comp))*' ' - - aster.prepcompcham(ncham,nchams,ncmp,"EL ",topo,lgma) - - valeurs=Numeric.array(aster.getvectjev(nchams+(19-len(ncham))*' '+'.V')) - - if (topo>0) : - maille=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.M')) - point=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.P')) - sous_point=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.SP')) - else : - maille=None - point=None - sous_point=None - - aster.prepcompcham("__DETR__",nchams,ncmp,"EL ",topo,lgma) - - return post_comp_cham_el(valeurs,maille,point,sous_point) - -class cham_elem_crit_r(cham_elem_sdaster):pass -class cham_elem_dbel_r(cham_elem_sdaster):pass -class cham_elem_depl_c(cham_elem_sdaster):pass -class cham_elem_depl_f(cham_elem_sdaster):pass -class cham_elem_depl_r(cham_elem_sdaster):pass -class cham_elem_dommag(cham_elem_sdaster):pass -class cham_elem_durt_r(cham_elem_sdaster):pass -class cham_elem_ener_r(cham_elem_sdaster):pass -class cham_elem_epsi_c(cham_elem_sdaster):pass -class cham_elem_epsi_r(cham_elem_sdaster):pass -class cham_elem_erreur(cham_elem_sdaster):pass -class cham_elem_facy_r(cham_elem_sdaster):pass -class cham_elem_flux_r(cham_elem_sdaster):pass -class cham_elem_g_depl(cham_elem_sdaster):pass -class cham_elem_geom_r(cham_elem_sdaster):pass -class cham_elem_hydr_r(cham_elem_sdaster):pass -class cham_elem_inst_r(cham_elem_sdaster):pass -class cham_elem_inte_r(cham_elem_sdaster):pass -class cham_elem_irra_r(cham_elem_sdaster):pass -class cham_elem_neut_f(cham_elem_sdaster):pass -class cham_elem_neut_r(cham_elem_sdaster):pass -class cham_elem_pres_r(cham_elem_sdaster):pass -class cham_elem_sief_c(cham_elem_sdaster):pass -class cham_elem_sief_r(cham_elem_sdaster):pass -class cham_elem_sour_r(cham_elem_sdaster):pass -class cham_elem_spma_r(cham_elem_sdaster):pass -class cham_elem_temp_f(cham_elem_sdaster):pass -class cham_elem_temp_r(cham_elem_sdaster):pass -class cham_elem_vari_r(cham_elem_sdaster):pass -class cham_elem_vnor_c(cham_elem_sdaster):pass - - -# cham_gd/cham_no : -#-------------------------------- -class cham_no_sdaster(cham_gd_sdaster): + if self.par_lot() : + raise Accas.AsException("Erreur dans cham_elem.EXTR_COMP en PAR_LOT='OUI'") + + ncham=self.get_name() + ncham=ncham+(8-len(ncham))*' ' + nchams=ncham[0:7]+'S' + ncmp=comp+(8-len(comp))*' ' + + aster.prepcompcham(ncham,nchams,ncmp,"EL ",topo,lgma) + + valeurs=Numeric.array(aster.getvectjev(nchams+(19-len(ncham))*' '+'.V')) + + if (topo>0) : + maille=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.M')) + point=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.P')) + sous_point=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.SP')) + else : + maille=None + point=None + sous_point=None + + aster.prepcompcham("__DETR__",nchams,ncmp,"EL ",topo,lgma) + + return post_comp_cham_el(valeurs,maille,point,sous_point) + +# ----------------------------------------------------------------------------- +# cham_no : +class cham_no_sdaster(cham_gd_sdaster): def EXTR_COMP(self,comp,lgno,topo=0) : - """ retourne les valeurs de la composante comp du champ sur la liste - de groupes de noeuds lgno avec eventuellement l'info de la + """ retourne les valeurs de la composante comp du champ sur la liste + de groupes de noeuds lgno avec eventuellement l'info de la topologie si topo>0. Si lgno est une liste vide, c'est equivalent a un TOUT='OUI' dans les commandes aster Attributs retourne - self.valeurs : Numeric.array contenant les valeurs Si on a demande la topo (i.e. self.topo = 1) : - self.noeud : numero de noeud """ - - - ncham=self.get_name() - ncham=ncham+(8-len(ncham))*' ' - nchams=ncham[0:7]+'S' - ncmp=comp+(8-len(comp))*' ' - - aster.prepcompcham(ncham,nchams,ncmp,"NO ",topo,lgno) - - valeurs=Numeric.array(aster.getvectjev(nchams+(19-len(ncham))*' '+'.V')) - - if (topo>0) : - noeud=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.N')) - else : - noeud=None - - aster.prepcompcham("__DETR__",nchams,ncmp,"NO ",topo,lgno) - - return post_comp_cham_no(valeurs,noeud) - -class cham_no_dbel_r (cham_no_sdaster):pass -class cham_no_depl_c (cham_no_sdaster):pass -class cham_no_depl_f (cham_no_sdaster):pass -class cham_no_depl_r (cham_no_sdaster):pass -class cham_no_durt_r (cham_no_sdaster):pass -class cham_no_ener_r (cham_no_sdaster):pass -class cham_no_epsi_r (cham_no_sdaster):pass -class cham_no_erreur (cham_no_sdaster):pass -class cham_no_facy_r (cham_no_sdaster):pass -class cham_no_flux_r (cham_no_sdaster):pass -class cham_no_g_depl_r (cham_no_sdaster):pass -class cham_no_geom_r (cham_no_sdaster):pass -class cham_no_hydr_r (cham_no_sdaster):pass -class cham_no_inst_r (cham_no_sdaster):pass -class cham_no_inte_r (cham_no_sdaster):pass -class cham_no_irra_r (cham_no_sdaster):pass -class cham_no_neut_f (cham_no_sdaster):pass -class cham_no_neut_r (cham_no_sdaster):pass -class cham_no_pres_c (cham_no_sdaster):pass -class cham_no_pres_r (cham_no_sdaster):pass -class cham_no_sief_r (cham_no_sdaster):pass -class cham_no_sour_r (cham_no_sdaster):pass -class cham_no_spma_r (cham_no_sdaster):pass -class cham_no_temp_c (cham_no_sdaster):pass -class cham_no_temp_f (cham_no_sdaster):pass -class cham_no_temp_r (cham_no_sdaster):pass -class cham_no_vanl_r (cham_no_sdaster):pass -class cham_no_var2_r (cham_no_sdaster):pass -class cham_no_vnor_c (cham_no_sdaster):pass + if self.par_lot() : + raise Accas.AsException("Erreur dans cham_no.EXTR_COMP en PAR_LOT='OUI'") + ncham=self.get_name() + ncham=ncham+(8-len(ncham))*' ' + nchams=ncham[0:7]+'S' + ncmp=comp+(8-len(comp))*' ' -# resultat_sdaster : (evol_sdaster,mode_stat,mode_meca) -#-------------------------------------- + aster.prepcompcham(ncham,nchams,ncmp,"NO ",topo,lgno) + + valeurs=Numeric.array(aster.getvectjev(nchams+(19-len(ncham))*' '+'.V')) + + if (topo>0) : + noeud=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.N')) + else : + noeud=None + + aster.prepcompcham("__DETR__",nchams,ncmp,"NO ",topo,lgno) + + return post_comp_cham_no(valeurs,noeud) +# ----------------------------------------------------------------------------- +# resultat_sdaster : (evol_sdaster,mode_stat,mode_meca) class resultat_sdaster(ASSD): def LIST_CHAMPS (self) : + if self.par_lot() : + raise Accas.AsException("Erreur dans resultat.LIST_CHAMPS en PAR_LOT='OUI'") return aster.GetResu(self.get_name(), "CHAMPS") def LIST_NOM_CMP (self) : + if self.par_lot() : + raise Accas.AsException("Erreur dans resultat.LIST_NOM_CMP en PAR_LOT='OUI'") return aster.GetResu(self.get_name(), "COMPOSANTES") def LIST_VARI_ACCES (self) : + if self.par_lot() : + raise Accas.AsException("Erreur dans resultat.LIST_VARI_ACCES en PAR_LOT='OUI'") return aster.GetResu(self.get_name(), "VARI_ACCES") def LIST_PARA (self) : + if self.par_lot() : + raise Accas.AsException("Erreur dans resultat.LIST_PARA en PAR_LOT='OUI'") return aster.GetResu(self.get_name(), "PARAMETRES") +class resultat_jeveux(resultat_sdaster): + """Classe permettant d'accéder à un resultat jeveux qui n'a pas d'ASSD associée, + c'est le cas des concepts résultats (table, evol_xxxx) dérivés.""" + def __init__(self,nom_jeveux): + self.nom=nom_jeveux + +# ----------------------------------------------------------------------------- class acou_harmo (resultat_sdaster):pass class base_modale (resultat_sdaster):pass class comb_fourier (resultat_sdaster):pass @@ -465,8 +461,8 @@ class mode_gene (resultat_sdaster):pass class mult_elas (resultat_sdaster):pass class theta_geom (resultat_sdaster):pass +# ----------------------------------------------------------------------------- # resultat_sdaster/evol_sdaster : -#-------------------------------- class evol_sdaster(resultat_sdaster):pass class evol_char(evol_sdaster):pass class evol_elas(evol_sdaster):pass @@ -474,22 +470,22 @@ class evol_noli(evol_sdaster):pass class evol_ther(evol_sdaster):pass class evol_varc(evol_sdaster):pass +# ----------------------------------------------------------------------------- # resultat_sdaster/mode_stat : -#-------------------------------- class mode_stat(resultat_sdaster):pass class mode_stat_depl(mode_stat):pass class mode_stat_acce(mode_stat):pass class mode_stat_forc(mode_stat):pass +# ----------------------------------------------------------------------------- # resultat_sdaster/mode_meca : -#-------------------------------- class mode_meca(resultat_sdaster):pass class mode_meca_c(mode_meca):pass +# ----------------------------------------------------------------------------- # types 'fonction' : -#-------------------------------- class fonction_class(ASSD): def Valeurs(self):pass def Parametres(self): @@ -498,7 +494,20 @@ class fonction_class(ASSD): le type jeveux (FONCTION, FONCT_C, NAPPE) n'est pas retourne, le dictionnaire peut ainsi etre fourni a CALC_FONC_INTERP tel quel. """ - if hasattr(self,'etape') and self.etape.nom=='DEFI_FONCTION' : + if not self.par_lot(): + TypeProl={'E':'EXCLU', 'L':'LINEAIRE', 'C':'CONSTANT' } + objev = '%-19s.PROL' % self.get_name() + prol = aster.getvectjev(objev) + if prol == None: + UTMESS('F', 'fonction.Parametres', "Objet '%s' inexistant" % objev) + dico={ + 'INTERPOL' : [prol[1][0:3],prol[1][4:7]], + 'NOM_PARA' : string.strip(prol[2][0:16]), + 'NOM_RESU' : string.strip(prol[3][0:16]), + 'PROL_DROITE' : TypeProl[prol[4][1]], + 'PROL_GAUCHE' : TypeProl[prol[4][0]], + } + elif hasattr(self,'etape') and self.etape.nom=='DEFI_FONCTION' : dico={ 'INTERPOL' : self.etape['INTERPOL'], 'NOM_PARA' : self.etape['NOM_PARA'], @@ -506,36 +515,32 @@ class fonction_class(ASSD): 'PROL_DROITE' : self.etape['PROL_DROITE'], 'PROL_GAUCHE' : self.etape['PROL_GAUCHE'], } - if type(dico['INTERPOL'])==types.TupleType : + if type(dico['INTERPOL'])==TupleType : dico['INTERPOL']=list(dico['INTERPOL']) - elif type(dico['INTERPOL'])==types.StringType : + elif type(dico['INTERPOL'])==StringType : dico['INTERPOL']=[dico['INTERPOL'],] if len(dico['INTERPOL'])==1 : dico['INTERPOL']=dico['INTERPOL']*2 - else : - TypeProl={'E':'EXCLU', 'L':'LINEAIRE', 'C':'CONSTANT' } - prol=aster.getvectjev(string.ljust(self.get_name(),19)+'.PROL') - dico={ - 'INTERPOL' : [prol[1][0:3],prol[1][4:7]], - 'NOM_PARA' : string.strip(prol[2][0:16]), - 'NOM_RESU' : string.strip(prol[3][0:16]), - 'PROL_DROITE' : TypeProl[prol[4][1]], - 'PROL_GAUCHE' : TypeProl[prol[4][0]], - } + else: + raise Accas.AsException("Erreur dans fonction.Parametres en PAR_LOT='OUI'") return dico def Trace(self,FORMAT='TABLEAU',**kargs): """Tracé d'une fonction""" + if self.par_lot() : + raise Accas.AsException("Erreur dans fonction.Trace en PAR_LOT='OUI'") from Utilitai.Graph import Graph gr=Graph() gr.AjoutCourbe(Val=self.Valeurs(), Lab=[self.Parametres()['NOM_PARA'],self.Parametres()['NOM_RESU']]) gr.Trace(FORMAT=FORMAT,**kargs) + class fonction_sdaster(fonction_class): def convert(self,arg='real'): """ Retourne un objet de la classe t_fonction représentation python de la fonction """ + from Utilitai.t_fonction import t_fonction,t_fonction_c if arg=='real' : return t_fonction(self.Absc(), self.Ordo(), @@ -548,7 +553,17 @@ class fonction_sdaster(fonction_class): """ Retourne deux listes de valeurs : abscisses et ordonnees """ - if hasattr(self,'etape') and self.etape.nom=='DEFI_FONCTION' : + if not self.par_lot(): + vale = '%-19s.VALE' % self.get_name() + lbl = aster.getvectjev(vale) + if lbl == None: + UTMESS('F', 'fonction.Valeurs', "Objet '%s' inexistant" % vale) + lbl = list(lbl) + dim=len(lbl)/2 + lx=lbl[0:dim] + ly=lbl[dim:2*dim] + return [lx,ly] + elif hasattr(self,'etape') and self.etape.nom=='DEFI_FONCTION' : if self.etape['VALE']!=None: lbl=list(self.etape['VALE']) dim=len(lbl) @@ -558,12 +573,7 @@ class fonction_sdaster(fonction_class): elif self.etape['VALE_PARA']!=None: return [self.etape['VALE_PARA'].Valeurs(),self.etape['VALE_FONC'].Valeurs()] else : - vale=string.ljust(self.get_name(),19)+'.VALE' - lbl=list(aster.getvectjev(vale)) - dim=len(lbl)/2 - lx=lbl[0:dim] - ly=lbl[dim:2*dim] - return [lx,ly] + raise Accas.AsException("Erreur dans fonction.Valeurs en PAR_LOT='OUI'") def Absc(self): """Retourne la liste des abscisses""" return self.Valeurs()[0] @@ -573,17 +583,21 @@ class fonction_sdaster(fonction_class): def __call__(self,val): ### Pour EFICAS : substitution de l'instance de classe ### parametre par sa valeur - if type(val)==types.InstanceType : val=val.valeur + if type(val)==InstanceType: + val=val.valeur ### __ff=self.convert() return __ff(val) + class para_sensi(fonction_sdaster): pass + class fonction_c(fonction_class): def convert(self,arg='real'): """ Retourne un objet de la classe t_fonction ou t_fonction_c, représentation python de la fonction complexe """ + from Utilitai.t_fonction import t_fonction,t_fonction_c if arg=='real' : return t_fonction(self.Absc(), self.Ordo(), @@ -611,16 +625,12 @@ class fonction_c(fonction_class): """ Retourne trois listes de valeurs : abscisses, parties reelles et imaginaires. """ - if self.etape.nom=='DEFI_FONCTION' : - lbl=list(self.etape['VALE_C']) - dim=len(lbl) - lx=[lbl[i] for i in range(0,dim,3)] - lr=[lbl[i] for i in range(1,dim,3)] - li=[lbl[i] for i in range(2,dim,3)] - return [lx,lr,li] - else : - vale=string.ljust(self.get_name(),19)+'.VALE' - lbl=list(aster.getvectjev(vale)) + if not self.par_lot(): + vale = '%-19s.VALE' % self.get_name() + lbl = aster.getvectjev(vale) + if lbl == None: + UTMESS('F', 'fonction.Valeurs', "Objet '%s' inexistant" % vale) + lbl = list(lbl) dim=len(lbl)/3 lx=lbl[0:dim] lr=[] @@ -629,6 +639,15 @@ class fonction_c(fonction_class): lr.append(lbl[dim+2*i]) li.append(lbl[dim+2*i+1]) return [lx,lr,li] + if self.etape.nom=='DEFI_FONCTION' : + lbl=list(self.etape['VALE_C']) + dim=len(lbl) + lx=[lbl[i] for i in range(0,dim,3)] + lr=[lbl[i] for i in range(1,dim,3)] + li=[lbl[i] for i in range(2,dim,3)] + return [lx,lr,li] + else : + raise Accas.AsException("Erreur dans fonction_c.Valeurs en PAR_LOT='OUI'") def Absc(self): """Retourne la liste des abscisses""" return self.Valeurs()[0] @@ -640,6 +659,8 @@ class fonction_c(fonction_class): return self.Valeurs()[2] def Trace(self,FORMAT='TABLEAU',**kargs): """Tracé d'une fonction complexe""" + if self.par_lot() : + raise Accas.AsException("Erreur dans fonction_c.Trace en PAR_LOT='OUI'") from Utilitai.Graph import Graph gr=Graph() gr.AjoutCourbe(Val=self.Valeurs(), @@ -648,16 +669,18 @@ class fonction_c(fonction_class): def __call__(self,val): ### Pour EFICAS : substitution de l'instance de classe ### parametre par sa valeur - import types - if type(val)==types.InstanceType : val=val.valeur + if type(val)==InstanceType: + val=val.valeur ### __ff=convert(self) return __ff(val) + class nappe_sdaster(fonction_class): def convert(self): """ Retourne un objet de la classe t_nappe, représentation python de la nappe """ + from Utilitai.t_fonction import t_fonction,t_nappe para=self.Parametres() vale=self.Valeurs() l_fonc=[] @@ -679,10 +702,14 @@ class nappe_sdaster(fonction_class): Retourne la liste des valeurs du parametre, et une liste de couples (abscisses,ordonnees) de chaque fonction. """ - nsd=string.ljust(self.get_name(),19) + if self.par_lot(): + raise Accas.AsException("Erreur dans nappe.Valeurs en PAR_LOT='OUI'") + nsd = '%-19s' % self.get_name() dicv=aster.getcolljev(nsd+'.VALE') # les cles de dicv sont 1,...,N (indice du parametre) lpar=aster.getvectjev(nsd+'.PARA') + if lpar == None: + UTMESS('F', 'fonction.Valeurs', "Objet '%s' inexistant" % (nsd+'.PARA')) lval=[] for k in range(len(dicv)): lbl=dicv[k+1] @@ -696,8 +723,13 @@ class nappe_sdaster(fonction_class): le dictionnaire peut ainsi etre fourni a CALC_FONC_INTERP tel quel, et une liste de dictionnaire des parametres de chaque fonction. """ + if self.par_lot(): + raise Accas.AsException("Erreur dans nappe.Parametres en PAR_LOT='OUI'") TypeProl={'E':'EXCLU', 'L':'LINEAIRE', 'C':'CONSTANT' } - prol=aster.getvectjev(string.ljust(self.get_name(),19)+'.PROL') + objev = '%-19s.PROL' % self.get_name() + prol=aster.getvectjev(objev) + if prol == None: + UTMESS('F', 'fonction.Parametres', "Objet '%s' inexistant" % objev) dico={ 'INTERPOL' : [prol[1][0:3],prol[1][4:7]], 'NOM_PARA' : string.strip(prol[2][0:16]), @@ -721,6 +753,8 @@ class nappe_sdaster(fonction_class): return self.Valeurs()[0] def Trace(self,FORMAT='TABLEAU',**kargs): """Tracé d'une nappe""" + if self.par_lot(): + raise Accas.AsException("Erreur dans nappe.Trace en PAR_LOT='OUI'") from Utilitai.Graph import Graph gr=Graph() lv=self.Valeurs()[1] @@ -729,28 +763,30 @@ class nappe_sdaster(fonction_class): gr.AjoutCourbe(Val=[lx,ly], Lab=[dp['NOM_PARA_FONC'],dp['NOM_RESU']]) gr.Trace(FORMAT=FORMAT,**kargs) +# ----------------------------------------------------------------------------- # matr_asse : -#-------------------------------- class matr_asse(ASSD):pass class matr_asse_gene(matr_asse):pass class matr_asse_gene_r(matr_asse_gene): def EXTR_MATR_GENE(self) : - """ retourne les valeurs de la matrice generalisee reelle + """ retourne les valeurs de la matrice generalisee reelle dans un format Numerical Array Attributs retourne - self.valeurs : Numeric.array contenant les valeurs """ + if self.par_lot(): + raise Accas.AsException("Erreur dans matr_asse_gene.EXTR_MATR_GENE en PAR_LOT='OUI'") ncham=self.get_name() ncham=ncham+(8-len(ncham))*' ' desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC')) -# On teste si le DESC de la matrice existe + # On teste si le DESC de la matrice existe if (desc==None): raise Accas.AsException("L'objet matrice n'existe pas ou \ est mal cree par Code Aster") -# Si le stockage est plein + # Si le stockage est plein if desc[2]==2 : - tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALE')[1]) + tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALM')[1]) valeur=Numeric.zeros([desc[1],desc[1]],Numeric.Float) for j in range(desc[1]+1): for i in range(j): @@ -758,46 +794,48 @@ class matr_asse_gene_r(matr_asse_gene): valeur[j-1,i]=tmp[k] valeur=(valeur+Numeric.transpose(valeur)) for i in range(desc[1]): - valeur[i,i]=0.5*valeur[i,i] -# Si le stockage est diagonal - elif desc[2]==1 : - tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALE')[1]) + valeur[i,i]=0.5*valeur[i,i] + # Si le stockage est diagonal + elif desc[2]==1 : + tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALM')[1]) valeur=Numeric.zeros([desc[1],desc[1]],Numeric.Float) for i in range(desc[1]): valeur[i,i]=tmp[i] -# Sinon on arrete tout + # Sinon on arrete tout else: raise KeyError return valeur def RECU_MATR_GENE(self,matrice) : - """ envoie les valeurs d'un Numerical Array dans des matrices + """ envoie les valeurs d'un Numerical Array dans des matrices generalisees reelles definies dans jeveux Attributs ne retourne rien """ + if self.par_lot(): + raise Accas.AsException("Erreur dans matr_asse_gene.RECU_MATR_GENE en PAR_LOT='OUI'") from Utilitai.Utmess import UTMESS -# avertissement generique + # avertissement generique UTMESS('A','RECU_MATR_GENE',' ATTENTION, VOUS ALLEZ ECRASER DES CONCEPTS EXISTANTS') ncham=self.get_name() ncham=ncham+(8-len(ncham))*' ' desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC')) -# On teste si le DESC de la matrice existe + # On teste si le DESC de la matrice existe if (desc==None): raise Accas.AsException("L'objet matrice n'existe pas ou \ est mal cree par Code Aster") Numeric.asarray(matrice) -# On teste si la dimension de la matrice python est 2 + # On teste si la dimension de la matrice python est 2 if (len(Numeric.shape(matrice))<>2) : raise Accas.AsException("La dimension de la matrice est incorrecte ") -# On teste si les tailles des matrices jeveux et python sont identiques + # On teste si les tailles des matrices jeveux et python sont identiques if (tuple([desc[1],desc[1]])<>Numeric.shape(matrice)) : raise Accas.AsException("La taille de la matrice est incorrecte ") -# Si le stockage est plein + # Si le stockage est plein if desc[2]==2 : taille=desc[1]*desc[1]/2.0+desc[1]/2.0 tmp=Numeric.zeros([int(taille)],Numeric.Float) @@ -805,27 +843,29 @@ class matr_asse_gene_r(matr_asse_gene): for i in range(j): k=j*(j-1)/2+i tmp[k]=matrice[j-1,i] - aster.putcolljev(ncham+(19-len(ncham))*' '+'.VALE',len(tmp),tuple((\ - range(1,len(tmp)+1))),tuple(tmp),tuple(tmp),1) -# Si le stockage est diagonal - elif desc[2]==1 : + aster.putcolljev(ncham+(19-len(ncham))*' '+'.VALM',len(tmp),tuple((\ + range(1,len(tmp)+1))),tuple(tmp),tuple(tmp),1) + # Si le stockage est diagonal + elif desc[2]==1 : tmp=Numeric.zeros(desc[1],Numeric.Float) for j in range(desc[1]): tmp[j]=matrice[j,j] - aster.putcolljev(ncham+(19-len(ncham))*' '+'.VALE',len(tmp),tuple((\ - range(1,len(tmp)+1))),tuple(tmp),tuple(tmp),1) -# Sinon on arrete tout + aster.putcolljev(ncham+(19-len(ncham))*' '+'.VALM',len(tmp),tuple((\ + range(1,len(tmp)+1))),tuple(tmp),tuple(tmp),1) + # Sinon on arrete tout else: raise KeyError return - + class matr_asse_gene_c(matr_asse_gene): def EXTR_MATR_GENE(self) : - """ retourne les valeurs de la matrice generalisee complexe + """ retourne les valeurs de la matrice generalisee complexe dans un format Numerical Array Attributs retourne - self.valeurs : Numeric.array contenant les valeurs """ + if self.par_lot(): + raise Accas.AsException("Erreur dans matr_asse_gene_c.EXTR_MATR_GENE en PAR_LOT='OUI'") ncham=self.get_name() ncham=ncham+(8-len(ncham))*' ' @@ -833,9 +873,9 @@ class matr_asse_gene_c(matr_asse_gene): if (desc==None): raise Accas.AsException("L'objet matrice n'existe pas ou \ est mal cree par Code Aster ") -# Si le stockage est plein + # Si le stockage est plein if desc[2]==2 : - tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALE')[1]) + tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALM')[1]) valeur=Numeric.zeros([desc[1],desc[1]],Numeric.Complex) for j in range(desc[1]+1): for i in range(j): @@ -843,25 +883,27 @@ class matr_asse_gene_c(matr_asse_gene): valeur[j-1,i]=tmp[k] valeur=(valeur+Numeric.transpose(valeur)) for i in range(desc[1]): - valeur[i,i]=0.5*valeur[i,i] -# Si le stockage est diagonal - elif desc[2]==1 : - tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALE')[1]) + valeur[i,i]=0.5*valeur[i,i] + # Si le stockage est diagonal + elif desc[2]==1 : + tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALM')[1]) valeur=Numeric.zeros([desc[1],desc[1]],Numeric.Complex) for i in range(desc[1]): valeur[i,i]=tmp[i] -# Sinon on arrete tout + # Sinon on arrete tout else: raise KeyError return valeur def RECU_MATR_GENE(self,matrice) : - """ envoie les valeurs d'un Numerical Array dans des matrices + """ envoie les valeurs d'un Numerical Array dans des matrices generalisees reelles definies dans jeveux Attributs ne retourne rien """ + if self.par_lot(): + raise Accas.AsException("Erreur dans matr_asse_gene_c.RECU_MATR_GENE en PAR_LOT='OUI'") from Utilitai.Utmess import UTMESS -# avertissement generique + # avertissement generique UTMESS('A','RECU_MATR_GENE',' ATTENTION, VOUS ALLEZ ECRASER DES CONCEPTS EXISTANTS') Numeric.asarray(matrice) @@ -869,21 +911,21 @@ class matr_asse_gene_c(matr_asse_gene): ncham=ncham+(8-len(ncham))*' ' desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC')) -# On teste si le DESC de la matrice existe + # On teste si le DESC de la matrice existe if (desc==None): raise Accas.AsException("L'objet matrice n'existe pas ou \ est mal cree par Code Aster") Numeric.asarray(matrice) -# On teste si la dimension de la matrice python est 2 + # On teste si la dimension de la matrice python est 2 if (len(Numeric.shape(matrice))<>2) : raise Accas.AsException("La dimension de la matrice est incorrecte ") -# On teste si la taille de la matrice jeveux et python est identique + # On teste si la taille de la matrice jeveux et python est identique if (tuple([desc[1],desc[1]])<>Numeric.shape(matrice)) : raise Accas.AsException("La taille de la matrice est incorrecte ") -# Si le stockage est plein + # Si le stockage est plein if desc[2]==2 : taille=desc[1]*desc[1]/2.0+desc[1]/2.0 tmpr=Numeric.zeros([int(taille)],Numeric.Float) @@ -893,23 +935,23 @@ class matr_asse_gene_c(matr_asse_gene): k=j*(j-1)/2+i tmpr[k]=matrice[j-1,i].real tmpc[k]=matrice[j-1,i].imag - aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALE',len(tmpr),tuple((\ - range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1) -# Si le stockage est diagonal - elif desc[2]==1 : + aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALM',len(tmpr),tuple((\ + range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1) + # Si le stockage est diagonal + elif desc[2]==1 : tmpr=Numeric.zeros(desc[1],Numeric.Float) tmpc=Numeric.zeros(desc[1],Numeric.Float) for j in range(desc[1]): tmpr[j]=matrice[j,j].real tmpc[j]=matrice[j,j].imag - aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALE',len(tmpr),tuple((\ - range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1) -# Sinon on arrete tout + aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALM',len(tmpr),tuple((\ + range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1) + # Sinon on arrete tout else: raise KeyError return - +# ----------------------------------------------------------------------------- class matr_asse_gd(matr_asse):pass class matr_asse_depl_c(matr_asse_gd):pass class matr_asse_depl_r(matr_asse_gd):pass @@ -918,41 +960,70 @@ class matr_asse_pres_r(matr_asse_gd):pass class matr_asse_temp_c(matr_asse_gd):pass class matr_asse_temp_r(matr_asse_gd):pass +# ----------------------------------------------------------------------------- # 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 : -#-------------------------------- class table_sdaster(ASSD): - def __getitem__(self,key): - requete=string.ljust(key[0],24) - tblp=string.ljust(self.get_name(),19)+'.TBLP' - tabnom=list(aster.getvectjev(tblp)) + def __getitem__(self,key): + from Utilitai.Utmess import UTMESS + if self.par_lot(): + raise Accas.AsException("Erreur dans table.__getitem__ en PAR_LOT='OUI'") + requete = '%-24s' % key[0] + tblp = '%-19s.TBLP' % self.get_name() + tabnom = aster.getvectjev(tblp) + if tabnom == None: + UTMESS('F', 'TABLE[]', "Objet '%s' inexistant" % tblp) for i in range(len(tabnom)) : if tabnom[i]==requete: break resu=aster.getvectjev(tabnom[i+2]) + if resu == None: + UTMESS('F', 'TABLE[]', "Objet '%s' inexistant" % tabnom[i+2]) exist=aster.getvectjev(tabnom[i+3]) + if exist == None: + UTMESS('F', 'TABLE[]', "Objet '%s' inexistant" % tabnom[i+3]) if key[1]>len(resu) or exist[key[1]-1]==0: raise KeyError else: return resu[key[1]-1] - def EXTR_TABLE(self) : + + def TITRE(self): + """Retourne le titre d'une table Aster + (Utile pour récupérer le titre et uniquement le titre d'une table dont + on souhaite manipuler la dérivée). + """ + if self.par_lot(): + raise Accas.AsException("Erreur dans table.TITRE en PAR_LOT='OUI'") + titj=aster.getvectjev('%-19s.TITR' % self.get_name()) + if titj<>None: + titr='\n'.join(titj) + else: + titr='' + return titr + + def EXTR_TABLE(self) : """Produit un objet Table à partir du contenu d'une table Aster """ def Nonefy(l1,l2) : if l2==0 : return None else : return l1 + if self.par_lot(): + raise Accas.AsException("Erreur dans table.EXTR_TABLE en PAR_LOT='OUI'") from Utilitai.Table import Table - tblp=string.ljust(self.get_name(),19)+'.TBLP' - tabnom=list(aster.getvectjev(tblp)) + # titre + titr = self.TITRE() + # récupération des paramètres + v_tblp = aster.getvectjev('%-19s.TBLP' % self.get_name()) + if v_tblp == None: + # retourne une table vide + return Table(titr=titr) + tabnom=list(v_tblp) nparam=len(tabnom)/4 lparam=[tabnom[4*i:4*i+4] for i in range(nparam)] dval={} @@ -972,100 +1043,65 @@ class table_sdaster(ASSD): d={} for p in lpar : d[p]=dval[p][i] lisdic.append(d) - # titre - titj=aster.getvectjev(self.get_name().ljust(19)+'.TITR') - if titj<>None: - titr='\n'.join(titj) - else: - titr='' return Table(lisdic, lpar, ltyp, titr) +# ----------------------------------------------------------------------------- class table_jeveux(table_sdaster): """Classe permettant d'accéder à une table jeveux qui n'a pas d'ASSD associée, c'est le cas des concepts résultats (table, evol_xxxx) dérivés.""" def __init__(self,nom_jeveux): self.nom=nom_jeveux -class tabl_aire_int (table_sdaster):pass -class tabl_calc_g_loca(table_sdaster):pass -class tabl_calc_g_th (table_sdaster):pass -class tabl_cara_geom (table_sdaster):pass -class tabl_char_limite(table_sdaster):pass -class tabl_ener_elas (table_sdaster):pass -class tabl_ener_pot (table_sdaster):pass -class tabl_ener_cin (table_sdaster):pass -class tabl_trav_ext (table_sdaster):pass -class tabl_ener_totale(table_sdaster):pass -class tabl_indic_ener (table_sdaster):pass -class tabl_indic_seuil(table_sdaster):pass -class tabl_intsp (table_sdaster):pass -class tabl_mass_iner (table_sdaster):pass -class tabl_post_alea (table_sdaster):pass -class tabl_post_beta (table_sdaster):pass -class tabl_post_dyna (table_sdaster):pass -class tabl_post_f_alea(table_sdaster):pass -class tabl_post_fatig (table_sdaster):pass -class tabl_post_gouj2e(table_sdaster):pass -class tabl_post_k (table_sdaster):pass -class tabl_post_rccm (table_sdaster):pass -class tabl_post_rele (table_sdaster):pass -class tabl_post_simpli(table_sdaster):pass -class tabl_post_usur (table_sdaster):pass -class tabl_reca_weib (table_sdaster):pass -class tabl_rice_tracey(table_sdaster):pass -class tabl_texture (table_sdaster):pass -class tabl_trc (table_sdaster):pass -class tabl_weibull (table_sdaster):pass - - +# ----------------------------------------------------------------------------- # vect_asse : -#-------------------------------- class vect_asse(ASSD):pass -class vect_asse_gene(vect_asse):pass -class vect_asse_gene_r(vect_asse_gene): - def EXTR_VECT_GENE(self) : - """ retourne les valeurs du vecteur generalisee + +class vect_asse_gene(vect_asse): + def EXTR_VECT_GENE_R(self) : + """ retourne les valeurs du vecteur generalisee dans un format Numerical Array Attributs retourne - self.valeurs : Numeric.array contenant les valeurs """ - + if self.par_lot(): + raise Accas.AsException("Erreur dans vect_asse_gene_r.EXTR_VECT_GENE en PAR_LOT='OUI'") ncham=self.get_name() ncham=ncham+(8-len(ncham))*' ' valeur=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.VALE')) - return valeur - def RECU_VECT_GENE(self,vecteur) : - """ envoie les valeurs d'un Numerical Array dans un vecteur generalise + def RECU_VECT_GENE_R(self,vecteur) : + """ envoie les valeurs d'un Numerical Array dans un vecteur generalise reel definie dans jeveux Attributs ne retourne rien """ + if self.par_lot(): + raise Accas.AsException("Erreur dans vect_asse_gene_r.RECU_VECT_GENE en PAR_LOT='OUI'") from Utilitai.Utmess import UTMESS -# avertissement generique + # avertissement generique UTMESS('A','RECU_VECT_GENE',' ATTENTION, VOUS ALLEZ ECRASER DES CONCEPTS EXISTANTS') Numeric.asarray(vecteur) ncham=self.get_name() ncham=ncham+(8-len(ncham))*' ' desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC')) -# On teste si le DESC du vecteur existe + # On teste si le DESC du vecteur existe if (desc==None): raise Accas.AsException("L'objet vecteur n'existe pas ou \ est mal cree par Code Aster") -# On teste si la taille du vecteur jeveux et python est identique + # On teste si la taille du vecteur jeveux et python est identique if desc[1]<>Numeric.shape(vecteur)[0] : raise Accas.AsException("La taille du vecteur python est incorrecte") aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALE',len(vecteur),tuple((\ - range(1,len(vecteur)+1))),tuple(vecteur),tuple(vecteur),1) + range(1,len(vecteur)+1))),tuple(vecteur),tuple(vecteur),1) return - -class vect_asse_gene_c(vect_asse_gene): - def EXTR_VECT_GENE(self) : - """ retourne les valeurs du vecteur generalisee + def EXTR_VECT_GENE_C(self) : + """ retourne les valeurs du vecteur generalisee dans un format Numerical Array Attributs retourne - self.valeurs : Numeric.array contenant les valeurs """ + if self.par_lot(): + raise Accas.AsException("Erreur dans vect_asse_gene_c.EXTR_VECT_GENE en PAR_LOT='OUI'") ncham=self.get_name() ncham=ncham+(8-len(ncham))*' ' @@ -1073,43 +1109,45 @@ class vect_asse_gene_c(vect_asse_gene): return valeur - def RECU_VECT_GENE(self,vecteur) : - """ envoie les valeurs d'un Numerical Array dans un vecteur generalise + def RECU_VECT_GENE_C(self,vecteur) : + """ envoie les valeurs d'un Numerical Array dans un vecteur generalise complexe definie dans jeveux Attributs ne retourne rien """ + if self.par_lot(): + raise Accas.AsException("Erreur dans vect_asse_gene_c.RECU_VECT_GENE en PAR_LOT='OUI'") from Utilitai.Utmess import UTMESS -# avertissement generique + # avertissement generique UTMESS('A','RECU_VECT_GENE',' ATTENTION, VOUS ALLEZ ECRASER DES CONCEPTS EXISTANTS') Numeric.asarray(vecteur) ncham=self.get_name() ncham=ncham+(8-len(ncham))*' ' desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC')) -# On teste si le DESC de la matrice existe + # On teste si le DESC de la matrice existe if (desc==None): raise Accas.AsException("L'objet vecteur n'existe pas ou \ est mal cree par Code Aster") -# On teste si la taille de la matrice jeveux et python est identique + # On teste si la taille de la matrice jeveux et python est identique if desc[1]<>Numeric.shape(vecteur)[0] : raise Accas.AsException("La taille du vecteur python est incorrecte") tmpr=vecteur.real tmpc=vecteur.imag aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALE',len(tmpr),tuple(( - range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1) + range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1) return - +# ----------------------------------------------------------------------------- # 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 COMMUN DATE 26/04/2005 AUTEUR LAVERNE J.LAVERNE +#& MODIF COMMUN DATE 09/05/2006 AUTEUR JMBHH01 J.M.PROIX # CONFIGURATION MANAGEMENT OF EDF VERSION +# RESPONSABLE JMBHH01 J.M.PROIX # ====================================================================== # COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -1129,6 +1167,7 @@ class vect_elem_temp_r(vect_elem):pass def C_COMP_INCR() : return FACT(statut='f',min=1,max='**', #COMMUN# RELATION =SIMP(statut='o',typ='TXM',defaut="VMIS_ISOT_TRAC", into=( "ELAS", + "ELAS_HYPER", "VMIS_ISOT_TRAC", "VISC_ISOT_TRAC", "VMIS_ISOT_LINE", @@ -1171,8 +1210,9 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**', #COMMUN# "META_V_CL_PT_RE", "VMIS_CINE_LINE", "VISC_TAHERI", - "CHABOCHE", "VISCOCHAB", + "VMIS_CIN1_CHAB", + "VMIS_CIN2_CHAB", "VISC_CIN1_CHAB", "VISC_CIN2_CHAB", "POLY_CFC", @@ -1189,6 +1229,7 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**', #COMMUN# "LEMAITRE", "LEMAITRE_IRRA", "LEMA_SEUIL", + "IRRAD3M", "ZIRC_CYRA2", "VISC_IRRA_LOG", "GRAN_IRRA_LOG", @@ -1197,6 +1238,7 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**', #COMMUN# "NADAI_B", "DIS_CONTACT", "DIS_CHOC", + "DIS_GRICRA", "DIS_GOUJ2E_PLAS", "DIS_GOUJ2E_ELAS", "GRILLE_ISOT_LINE", @@ -1208,7 +1250,9 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**', #COMMUN# "BARCELONE", "LAIGLE", "DRUCKER_PRAGER", - "OHNO", + "HOEK_BROWN", + "HOEK_BROWN_EFF", + "HOEK_BROWN_TOT", "GRANGER_FP", "GRANGER_FP_INDT", "GRANGER_FP_V", @@ -1222,10 +1266,7 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**', #COMMUN# "KIT_THM", "KIT_THHM", "VMIS_ASYM_LINE", - "ELAS_THM", - "SURF_ETAT_NSAT", - "SURF_ETAT_SATU", - "CAM_CLAY_THM", + "ELAS_THER", "KIT_DDI", "GLRC", "SANS", @@ -1236,6 +1277,7 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**', #COMMUN# "GATT_MONERIE", ) ), ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), + ELAS_HYPER =SIMP(statut='c',typ='I',defaut=1,into=(1,)), SANS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), CORR_ACIER =SIMP(statut='c',typ='I',defaut=3,into=(3,)), VMIS_ISOT_TRAC =SIMP(statut='c',typ='I',defaut=2,into=(2,)), @@ -1279,8 +1321,9 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**', #COMMUN# 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,)), 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,)), @@ -1292,11 +1335,12 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**', #COMMUN# ROUSS_VISC =SIMP(statut='c',typ='I',defaut=3,into=(3,)), VMIS_POU_LINE =SIMP(statut='c',typ='I',defaut=9,into=(9,)), VMIS_POU_FLEJOU =SIMP(statut='c',typ='I',defaut=9 ,into=(9,)), - ASSE_CORN =SIMP(statut='c',typ='I',defaut=4,into=(4,)), + ASSE_CORN =SIMP(statut='c',typ='I',defaut=7,into=(7,)), ARME =SIMP(statut='c',typ='I',defaut=1,into=(1,)), NORTON_HOFF =SIMP(statut='c',typ='I',defaut=1,into=(1,)), LEMAITRE =SIMP(statut='c',typ='I',defaut=2,into=(2,)), LEMA_SEUIL =SIMP(statut='c',typ='I',defaut=2,into=(2,)), + IRRAD3M =SIMP(statut='c',typ='I',defaut=5,into=(5,)), LEMAITRE_IRRA =SIMP(statut='c',typ='I',defaut=2,into=(2,)), ZIRC_CYRA2 =SIMP(statut='c',typ='I',defaut=2,into=(2,)), ZIRC_EPRI =SIMP(statut='c',typ='I',defaut=2,into=(2,)), @@ -1309,6 +1353,7 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**', #COMMUN# GRILLE_PINTO_MEN=SIMP(statut='c',typ='I',defaut=16,into=(16,)), DIS_CONTACT =SIMP(statut='c',typ='I',defaut=6,into=(6,)), DIS_CHOC =SIMP(statut='c',typ='I',defaut=7,into=(7,)), + DIS_GRICRA =SIMP(statut='c',typ='I',defaut=5,into=(5,)), DIS_GOUJ2E_PLAS =SIMP(statut='c',typ='I',defaut=2,into=(2,)), DIS_GOUJ2E_ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), PINTO_MENEGOTTO =SIMP(statut='c',typ='I',defaut=8,into=(8,)), @@ -1317,7 +1362,9 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**', #COMMUN# BARCELONE =SIMP(statut='c',typ='I',defaut=5,into=(5,)), LAIGLE =SIMP(statut='c',typ='I',defaut=4,into=(4,)), DRUCKER_PRAGER =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - OHNO =SIMP(statut='c',typ='I',defaut=32,into=(32,)), + HOEK_BROWN =SIMP(statut='c',typ='I',defaut=3,into=(3,)), + HOEK_BROWN_EFF =SIMP(statut='c',typ='I',defaut=3,into=(3,)), + HOEK_BROWN_TOT =SIMP(statut='c',typ='I',defaut=3,into=(3,)), GRANGER_FP =SIMP(statut='c',typ='I',defaut=55,into=(55,)), GRANGER_FP_INDT =SIMP(statut='c',typ='I',defaut=55,into=(55,)), GRANGER_FP_V =SIMP(statut='c',typ='I',defaut=55,into=(55,)), @@ -1358,21 +1405,18 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**', #COMMUN# "BARCELONE", "LAIGLE", "DRUCKER_PRAGER", - "ELAS_THM", - "SURF_ETAT_NSAT", - "SURF_ETAT_SATU", - "CAM_CLAY_THM", + "HOEK_BROWN_EFF", + "HOEK_BROWN_TOT", + "ELAS_THER", "MAZARS", "ENDO_ISOT_BETON", # THMC "GAZ", "LIQU_SATU", - "LIQU_SATU_GAT", "LIQU_GAZ_ATM", "LIQU_VAPE_GAZ", "LIQU_AD_GAZ_VAPE", "LIQU_VAPE", - "LIQU_NSAT_GAT", "LIQU_GAZ", # HYDR "HYDR_UTIL", @@ -1390,25 +1434,18 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**', #COMMUN# "GRANGER_FP_V", "BETON_UMLV_FP", "ROUSS_PR", - "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,)), + ELAS_THER =SIMP(statut='c',typ='I',defaut=1,into=(1,)), GAZ =SIMP(statut='c',typ='I',defaut=1,into=(1,)), LIQU_SATU =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - LIQU_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_AD_GAZ_VAPE=SIMP(statut='c',typ='I',defaut=3,into=(3,)), LIQU_VAPE =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,)), HYDR_UTIL =SIMP(statut='c',typ='I',defaut=1,into=(1,)), HYDR =SIMP(statut='c',typ='I',defaut=1,into=(1,)), @@ -1416,15 +1453,21 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**', #COMMUN# 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",)), + DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT", + into=("PETIT","PETIT_REAC","SIMO_MIEHE","GREEN_GR","GREEN","COROTATIONNEL")), ALGO_C_PLAN =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)), ALGO_1D =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)), regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6), + ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), + ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), + RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", + into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), ) ; -#& MODIF COMMUN DATE 08/02/2005 AUTEUR CIBHHPD L.SALMONA +#& MODIF COMMUN DATE 04/04/2006 AUTEUR CIBHHLV L.VIVAN # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG @@ -1513,13 +1556,18 @@ def C_NOM_CHAM_INTO() : return ("ACCE", #COMMUN# "EQUI_NOEU_EPME", "EQUI_NOEU_EPSI", "EQUI_NOEU_SIGM", - "ERRE_ELEM_NOZ1", - "ERRE_ELEM_NOZ2", - "ERRE_ELGA_NORE", - "ERRE_ELNO_ELGA", - "ERRE_NOEU_ELGA", - "ERTH_ELEM_TEMP", - "ERTH_ELNO_ELEM", + "ERRE_ELEM_SIGM", + "ERRE_ELEM_TEMP", + "ERRE_ELNO_ELEM", + "ERRE_NOEU_ELEM", + "ERZ1_ELEM_SIGM", + "ERZ2_ELEM_SIGM", + "QIRE_ELEM_SIGM", + "QIRE_ELNO_ELEM", + "QIZ1_ELEM_SIGM", + "QIZ2_ELEM_SIGM", + "SING_ELEM", + "SING_ELNO_ELEM", "ETOT_ELEM", "ETOT_ELGA", "ETOT_ELNO_ELGA", @@ -1535,7 +1583,6 @@ def C_NOM_CHAM_INTO() : return ("ACCE", #COMMUN# "FVOL_2D", "FVOL_3D", "GRAD_NOEU_THETA", - "HYDR_ELGA", "HYDR_ELNO_ELGA", "HYDR_NOEU_ELGA", "INDI_LOCA_ELGA", @@ -1608,7 +1655,153 @@ def C_NOM_CHAM_INTO() : return ("ACCE", #COMMUN# "VITE_ABSOLU", "VITE_VENT", ) -#& MODIF COMMUN DATE 16/06/2004 AUTEUR DURAND C.DURAND +#& MODIF COMMUN DATE 04/04/2006 AUTEUR CIBHHLV L.VIVAN +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# ce fichier contient la liste des noms des grandeurs de CODE_ASTER +def C_NOM_GRANDEUR() : return ( #COMMUN# +"ABSC_R", +"ADRSJEVE", +"ADRSJEVN", +"CAARPO", +"CACABL", +"CACOQU", +"CADISA", +"CADISK", +"CADISM", +"CAFI_R", +"CAGEBA", +"CAGEPO", +"CAGNBA", +"CAGNPO", +"CAMASS", +"CAORIE", +"CAPOUF", +"CARCRI", +"CASECT", +"CHLI_R", +"CODE_I", +"COEH_F", +"COEH_R", +"COMPOR", +"CORR_R", +"CRRU_R", +"DBEL_R", +"DCEL_I", +"DDLI_C", +"DDLI_F", +"DDLI_R", +"DDLM_C", +"DDLM_R", +"DEPL_C", +"DEPL_F", +"DEPL_R", +"DOMMAG", +"DURT_R", +"ENER_R", +"EPSI_F", +"EPSI_R", +"ERREUR", +"FACY_R", +"FELECR", +"FISS_R", +"FLAPLA", +"FLUN_F", +"FLUN_R", +"FLUX_F", +"FLUX_R", +"FORC_C", +"FORC_F", +"FORC_R", +"FREQ_R", +"FTHM_F", +"FTHM_R", +"G", +"GEOM_R", +"G_DEPL_R", +"HARMON", +"HYDR_R", +"IMPE_C", +"IMPE_F", +"IMPE_R", +"IND_LOCA", +"INFC_R", +"INST_R", +"INTE_R", +"INTLOC", +"IRRA_R", +"ITECREL", +"ITEDEC", +"J", +"LISTMA", +"MACOMP", +"MASS_R", +"MATE_F", +"NBSP_I", +"NEUT_F", +"NEUT_I", +"NEUT_K16", +"NEUT_K24", +"NEUT_K8", +"NEUT_R", +"NUMC_I", +"NUMMOD", +"ONDE_F", +"ONDE_R", +"PESA_R", +"PILO_K", +"PILO_R", +"POSI", +"PREC", +"PRES_C", +"PRES_F", +"PRES_R", +"RAYO_F", +"RAYO_R", +"RCCM_K", +"RCCM_R", +"RESCREL", +"RICE_TRA", +"ROTA_R", +"SECTION", +"SIEF_C", +"SIEF_R", +"SIZZ_R", +"SOUR_F", +"SOUR_R", +"SPMA_R", +"STAOUDYN", +"TEMP_C", +"TEMP_F", +"TEMP_R", +"THETA", +"VALO_R", +"VANL_R", +"VAR2_R", +"VARI_R", +"VENTCX_F", +"VNOR_C", +"VNOR_F", +"VOISIN", +"WEIBULL", +"XCONTAC", + ) +#& MODIF COMMUN DATE 27/06/2005 AUTEUR D6BHHJP J.P.LEFEBVRE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG @@ -1631,8 +1824,9 @@ def C_PARA_FONCTION() : return ( #COMMUN# "DX","DY","DZ","DRX","DRY","DRZ","TEMP","TSEC", "INST","X","Y","Z","EPSI","META","FREQ","PULS","DSP", "AMOR","ABSC","SIGM","HYDR","SECH","PORO","SAT", - "PGAZ","PCAP","VITE","ENDO","NORM","EPAIS",) -#& MODIF COMMUN DATE 03/11/2004 AUTEUR CIBHHPD L.SALMONA + "PGAZ","PCAP","VITE","ENDO","NORM","EPAIS", + "NEUT1","NEUT2",) +#& MODIF COMMUN DATE 27/06/2005 AUTEUR D6BHHJP J.P.LEFEBVRE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG @@ -1652,37 +1846,14 @@ def C_PARA_FONCTION() : return ( #COMMUN# # ====================================================================== # # ce fichier contient la liste des "into" possibles pour le mot cle TYPE_CHAM -# c'est a dire les noms des types de champ des SD RESULTAT (DATA de la routine RSCRSD) -def C_TYPE_CHAM_INTO() : return ("ACCE", #COMMUN# - "CART_CORR_R", - "NOEU_DBEL_R", "ELEM_DBEL_R", "ELNO_DBEL_R", "ELGA_DBEL_R", - "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", - "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", - "NOEU_EPSI_R", "ELEM_EPSI_R", "ELNO_EPSI_R", "ELGA_EPSI_R", - "NOEU_ERREUR", "ELEM_ERREUR", "ELNO_ERREUR", "ELGA_ERREUR", - "NOEU_FLUX_R", "ELEM_FLUX_R", "ELNO_FLUX_R", "ELGA_FLUX_R", - "CART_GEOM_R", "NOEU_GEOM_R", "ELEM_GEOM_R", "ELNO_GEOM_R", "ELGA_GEOM_R", - "NOEU_G_DEPL_R","ELEM_G_DEPL_R","ELNO_G_DEPL_R","ELGA_G_DEPL_R", - "NOEU_HYDR_R", "ELEM_HYDR_R", "ELNO_HYDR_R", "ELGA_HYDR_R", - "NOEU_INST_R", "ELEM_INST_R", "ELNO_INST_R", "ELGA_INST_R", - "NOEU_INTE_R", "ELEM_INTE_R", "ELNO_INTE_R", "ELGA_INTE_R", - "CART_IRRA_R", "NOEU_IRRA_R", "ELEM_IRRA_R", "ELNO_IRRA_R", "ELGA_IRRA_R", - "NOEU_META_R", "ELEM_META_R", "ELNO_META_R", "ELGA_META_R", - "NOEU_NEUT_F", "ELEM_NEUT_F", "ELNO_NEUT_F", "ELGA_NEUT_F", - "CART_NEUT_R", "NOEU_NEUT_R", "ELEM_NEUT_R", "ELNO_NEUT_R", "ELGA_NEUT_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", - "NOEU_SOUR_R", "ELEM_SOUR_R", "ELNO_SOUR_R", "ELGA_SOUR_R", - "CART_TEMP_F", "NOEU_TEMP_F", "ELEM_SPMA_R", "ELNO_TEMP_F", "ELGA_TEMP_F", - "CART_TEMP_R", "NOEU_TEMP_R", "ELEM_TEMP_F", "ELNO_TEMP_R", "ELGA_TEMP_R", - "CART_VAR2_R", "NOEU_VAR2_R", "ELEM_TEMP_R", "ELNO_VARI_R", "ELGA_VARI_R", - "NOEU_VNOR_C", "ELEM_VARI_R", "ELNO_VNOR_C", "ELGA_VNOR_C", - "ELEM_VNOR_C", - ) -#& MODIF COMMANDE DATE 09/05/2005 AUTEUR MJBHHPE J.L.FLEJOU +def C_TYPE_CHAM_INTO() : #COMMUN# + l=[] + for gd in C_NOM_GRANDEUR() : + for typ in ("ELEM","ELNO","ELGA","CART","NOEU") : + l.append(typ+"_"+gd) + return tuple(l) + +#& MODIF COMMANDE DATE 09/05/2006 AUTEUR JMBHH01 J.M.PROIX # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -1706,7 +1877,7 @@ AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem, reentrant='n', UIinfo={"groupes":("Modélisation",)}, regles=(AU_MOINS_UN('POUTRE','BARRE','COQUE','CABLE','DISCRET','DISCRET_2D','MASSIF', - 'ASSE_GRIL','GRILLE','AFFE_SECT','AFFE_FIBRE','RIGI_PARASOL'),), + 'GRILLE','AFFE_SECT','AFFE_FIBRE','RIGI_PARASOL'),), MODELE =SIMP(statut='o',typ=modele_sdaster ), INFO =SIMP(statut='f',typ='I', defaut= 1 ,into=(1,2) ), VERIF =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("MAILLE","NOEUD") ), @@ -1829,11 +2000,6 @@ AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem, #============================================================================ DISCRET =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ), AMOR_HYST =SIMP(statut='f',typ='R' ), CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1, @@ -1847,50 +2013,103 @@ AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem, # affection des caractéristiques de RIGIDITE/AMORTISSEMENT b_K_T_D_N =BLOC(condition = "(CARA=='K_T_D_N')or(CARA=='A_T_D_N')", - VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), b_K_T_D_L =BLOC(condition = "(CARA=='K_T_D_L')or(CARA=='A_T_D_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), b_K_TR_D_N =BLOC(condition = "(CARA=='K_TR_D_N')or(CARA=='A_TR_D_N')", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=6 ,max=6 ),), b_K_TR_D_L =BLOC(condition = "(CARA=='K_TR_D_L')or(CARA=='A_TR_D_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=6 ,max=6 ),), b_K_T_N =BLOC(condition = "(CARA=='K_T_N')or(CARA=='A_T_N')", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=6 ,max=6 ),), b_K_T_L =BLOC(condition = "(CARA=='K_T_L')or(CARA=='A_T_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=21,max=21),), b_K_TR_N =BLOC(condition = "(CARA=='K_TR_N')or(CARA=='A_TR_N')", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=21,max=21),), b_K_TR_L =BLOC(condition = "(CARA=='K_TR_L')or(CARA=='A_TR_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=78,max=78),), # affection des caractéristiques de MASSE b_M_T_D_N =BLOC(condition = "CARA=='M_T_D_N'", fr="NOEUD: 1 valeur de masse", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=1 ,max=1 ),), b_M_TR_D_N =BLOC(condition = "CARA=='M_TR_D_N'", fr="NOEUD: 1 valeur de masse, 6 valeurs du tenseur d'inertie, 3 composantes du vecteur d'excentricité", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=10,max=10),), b_M_T_N =BLOC(condition = "CARA=='M_T_N'", fr="NOEUD: 6 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=6 ,max=6 ),), b_M_T_L =BLOC(condition = "CARA=='M_T_L'", fr="SEGMENT: 21 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=21,max=21),), b_M_TR_N =BLOC(condition = "CARA=='M_TR_N'", fr="NOEUD: 21 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=21,max=21),), b_M_TR_L =BLOC(condition = "CARA=='M_TR_L'", fr="SEGMENT: 78 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=78,max=78),), ), #============================================================================ DISCRET_2D =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ), AMOR_HYST =SIMP(statut='f',typ='R' ), CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1, @@ -1904,40 +2123,98 @@ AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem, # affection des caractéristiques de RIGIDITE/AMORTISSEMENT b_K_T_D_N =BLOC(condition = "(CARA=='K_T_D_N')or(CARA=='A_T_D_N')", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=2 ,max=2 ),), b_K_T_D_L =BLOC(condition = "(CARA=='K_T_D_L')or(CARA=='A_T_D_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=2 ,max=2 ),), b_K_TR_D_N =BLOC(condition = "(CARA=='K_TR_D_N')or(CARA=='A_TR_D_N')", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), b_K_TR_D_L =BLOC(condition = "(CARA=='K_TR_D_L')or(CARA=='A_TR_D_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), b_K_T_N =BLOC(condition = "(CARA=='K_T_N')or(CARA=='A_T_N')", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), b_K_T_L =BLOC(condition = "(CARA=='K_T_L')or(CARA=='A_T_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=10,max=10),), b_K_TR_N =BLOC(condition = "(CARA=='K_TR_N')or(CARA=='A_TR_N')", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=6 ,max=6),), b_K_TR_L =BLOC(condition = "(CARA=='K_TR_L')or(CARA=='A_TR_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=21,max=21),), # affection des caractéristiques de MASSE b_M_T_D_N =BLOC(condition = "CARA=='M_T_D_N'", fr="NOEUD: 1 valeur de masse", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=1 ,max=1 ),), b_M_TR_D_N =BLOC(condition = "CARA=='M_TR_D_N'", fr="NOEUD: 1 valeur de masse(m), 1 valeur d'inertie(Izz), 2 composantes du vecteur d'excentricité(ex,ey) ", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=4 ,max=4 ),), b_M_T_N =BLOC(condition = "CARA=='M_T_N'", fr="NOEUD: 3 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), b_M_T_L =BLOC(condition = "CARA=='M_T_L'", fr="SEGMENT: 10 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=10,max=10),), b_M_TR_N =BLOC(condition = "CARA=='M_TR_N'", fr="NOEUD: 6 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=6 ,max=6 ),), b_M_TR_L =BLOC(condition = "CARA=='M_TR_L'", fr="SEGMENT: 21 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=21,max=21),), ), @@ -2061,21 +2338,6 @@ AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem, UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30), ), -#============================================================================ - ASSE_GRIL =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),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',max='**', regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), @@ -2171,7 +2433,7 @@ AFFE_CHAR_ACOU=OPER(nom="AFFE_CHAR_ACOU",op= 68,sd_prod=char_acou, DDL =SIMP(statut='o',typ='TXM',max='**'), ), ) ; -#& MODIF COMMANDE DATE 28/01/2005 AUTEUR VABHHTS J.PELLET +#& MODIF COMMANDE DATE 05/09/2005 AUTEUR CIBHHLV L.VIVAN # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -2197,7 +2459,7 @@ def affe_char_cine_prod(MECA_IMPO,THER_IMPO,ACOU_IMPO,**args): 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", + ,fr="Affectation de conditions aux limites cinématiques constantes pour un traitement sans dualisation", reentrant='n', UIinfo={"groupes":("Modélisation",)}, regles=(AU_MOINS_UN('MECA_IMPO','THER_IMPO','ACOU_IMPO'), @@ -2207,22 +2469,82 @@ AFFE_CHAR_CINE=OPER(nom="AFFE_CHAR_CINE",op= 101,sd_prod=affe_char_cine_prod MODELE =SIMP(statut='o',typ=modele_sdaster ), MECA_IMPO =FACT(statut='f',max='**', regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','TEMP','PHI'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - DX =SIMP(statut='f',typ='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' ), + AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', + 'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2', + 'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4', + 'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6', + 'VO6','WI6','WO6','WO','WI1','WO1','GONF','DCX','DCY','DCZ', + 'H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z', + 'E3X','E3Y','E3Z','E4X','E4Y','E4Z'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + DX =SIMP(statut='f',typ='R' ), + DY =SIMP(statut='f',typ='R' ), + DZ =SIMP(statut='f',typ='R' ), + DRX =SIMP(statut='f',typ='R' ), + DRY =SIMP(statut='f',typ='R' ), + DRZ =SIMP(statut='f',typ='R' ), + GRX =SIMP(statut='f',typ='R' ), + PRES =SIMP(statut='f',typ='R' ), + PHI =SIMP(statut='f',typ='R' ), + TEMP =SIMP(statut='f',typ='R' ), + PRE1 =SIMP(statut='f',typ='R' ), + PRE2 =SIMP(statut='f',typ='R' ), + UI2 =SIMP(statut='f',typ='R' ), + UI3 =SIMP(statut='f',typ='R' ), + UI4 =SIMP(statut='f',typ='R' ), + UI5 =SIMP(statut='f',typ='R' ), + UI6 =SIMP(statut='f',typ='R' ), + UO2 =SIMP(statut='f',typ='R' ), + UO3 =SIMP(statut='f',typ='R' ), + UO4 =SIMP(statut='f',typ='R' ), + UO5 =SIMP(statut='f',typ='R' ), + UO6 =SIMP(statut='f',typ='R' ), + VI2 =SIMP(statut='f',typ='R' ), + VI3 =SIMP(statut='f',typ='R' ), + VI4 =SIMP(statut='f',typ='R' ), + VI5 =SIMP(statut='f',typ='R' ), + VI6 =SIMP(statut='f',typ='R' ), + VO2 =SIMP(statut='f',typ='R' ), + VO3 =SIMP(statut='f',typ='R' ), + VO4 =SIMP(statut='f',typ='R' ), + VO5 =SIMP(statut='f',typ='R' ), + VO6 =SIMP(statut='f',typ='R' ), + WI2 =SIMP(statut='f',typ='R' ), + WI3 =SIMP(statut='f',typ='R' ), + WI4 =SIMP(statut='f',typ='R' ), + WI5 =SIMP(statut='f',typ='R' ), + WI6 =SIMP(statut='f',typ='R' ), + WO2 =SIMP(statut='f',typ='R' ), + WO3 =SIMP(statut='f',typ='R' ), + WO4 =SIMP(statut='f',typ='R' ), + WO5 =SIMP(statut='f',typ='R' ), + WO6 =SIMP(statut='f',typ='R' ), + WO =SIMP(statut='f',typ='R' ), + WI1 =SIMP(statut='f',typ='R' ), + WO1 =SIMP(statut='f',typ='R' ), + GONF =SIMP(statut='f',typ='R' ), + DCX =SIMP(statut='f',typ='R' ), + DCY =SIMP(statut='f',typ='R' ), + DCZ =SIMP(statut='f',typ='R' ), + H1X =SIMP(statut='f',typ='R' ), + H1Y =SIMP(statut='f',typ='R' ), + H1Z =SIMP(statut='f',typ='R' ), + E1X =SIMP(statut='f',typ='R' ), + E1Y =SIMP(statut='f',typ='R' ), + E1Z =SIMP(statut='f',typ='R' ), + E2X =SIMP(statut='f',typ='R' ), + E2Y =SIMP(statut='f',typ='R' ), + E2Z =SIMP(statut='f',typ='R' ), + E3X =SIMP(statut='f',typ='R' ), + E3Y =SIMP(statut='f',typ='R' ), + E3Z =SIMP(statut='f',typ='R' ), + E4X =SIMP(statut='f',typ='R' ), + E4Y =SIMP(statut='f',typ='R' ), + E4Z =SIMP(statut='f',typ='R' ), ), THER_IMPO =FACT(statut='f',max='**', regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), @@ -2247,7 +2569,7 @@ AFFE_CHAR_CINE=OPER(nom="AFFE_CHAR_CINE",op= 101,sd_prod=affe_char_cine_prod ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; -#& MODIF COMMANDE DATE 28/01/2005 AUTEUR VABHHTS J.PELLET +#& MODIF COMMANDE DATE 05/09/2005 AUTEUR CIBHHLV L.VIVAN # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -2270,8 +2592,9 @@ def affe_char_cine_f_prod(MECA_IMPO,THER_IMPO,**args): 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", +AFFE_CHAR_CINE_F=OPER(nom="AFFE_CHAR_CINE_F",op= 108,sd_prod=affe_char_cine_f_prod, + fr="Affectation de conditions aux limites cinématiques fonction d'un (ou plusieurs) paramètres" + +" pour un traitement sans dualisation", reentrant='n', UIinfo={"groupes":("Modélisation",)}, regles=(AU_MOINS_UN('MECA_IMPO','THER_IMPO'), @@ -2310,7 +2633,7 @@ AFFE_CHAR_CINE_F=OPER(nom="AFFE_CHAR_CINE_F",op= 108,sd_prod=affe_char_cine_f_pr ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; -#& MODIF COMMANDE DATE 24/05/2005 AUTEUR MABBAS M.ABBAS +#& MODIF COMMANDE DATE 03/05/2006 AUTEUR MABBAS M.ABBAS # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -2329,9 +2652,8 @@ AFFE_CHAR_CINE_F=OPER(nom="AFFE_CHAR_CINE_F",op= 108,sd_prod=affe_char_cine_f_pr # 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", +AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, + fr="Affectation de charges et conditions aux limites mécaniques constantes", reentrant='n', UIinfo={"groupes":("Modélisation",)}, regles=(AU_MOINS_UN('DDL_IMPO','FACE_IMPO','CHAMNO_IMPO','LIAISON_DDL','LIAISON_XFEM','FORCE_NODALE', @@ -2340,27 +2662,22 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca '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', + 'LIAISON_SOLIDE','LIAISON_ELEM','ONDE_FLUI', 'EPSA_CALCULEE','LIAISON_CHAMNO','VECT_ASSE','LIAISON_COQUE', - 'LIAISON_MAIL','LIAISON_CYCL','FORCE_TUYAU','SECH_CALCULEE','HYDR_CALCULEE', - 'EFFE_FOND','EVOL_CHAR','ARLEQUIN','DDL_POUTRE','GRAPPE_FLUIDE'), - EXCLUS('PRES_CALCULEE','EVOL_CHAR'),), - VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + 'LIAISON_MAIL','LIAISON_CYCL','FORCE_TUYAU','SECH_CALCULEE', + 'EFFE_FOND','EVOL_CHAR','ARLEQUIN','DDL_POUTRE','GRAPPE_FLUIDE', + 'LIAISON_UNILATER'), + ), VERI_NORM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), MODELE =SIMP(statut='o',typ=(modele_sdaster) ), TEMP_CALCULEE =SIMP(statut='f',fr="Champ de température issu d'un autre calcul", - typ=(evol_ther,cham_no_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 ), + typ=(evol_ther,cham_no_sdaster,carte_sdaster) ), 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 ) ), + typ=(evol_ther,cham_no_sdaster,carte_sdaster ) ), 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), @@ -2368,12 +2685,15 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca CENTRE =SIMP(statut='f',typ='R',defaut=(0.,0.,0.),max=3),), DDL_IMPO =FACT(statut='f',max='**', + fr="Impose à des noeuds une ou plusieurs valeurs de déplacement (ou de certaines grandeurs asscociées)", regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', 'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2', 'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4', 'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6', - 'VO6','WI6','WO6','WO','WI1','WO1','GONF','LIAISON'),), + 'VO6','WI6','WO6','WO','WI1','WO1','GONF','LIAISON','DCX', + 'DCY','DCZ','H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z', + 'E3X','E3Y','E3Z','E4X','E4Y','E4Z','LAGS_C'),), TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), @@ -2426,11 +2746,31 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca WI1 =SIMP(statut='f',typ='R' ), WO1 =SIMP(statut='f',typ='R' ), GONF =SIMP(statut='f',typ='R' ), + DCX =SIMP(statut='f',typ='R' ), + DCY =SIMP(statut='f',typ='R' ), + DCZ =SIMP(statut='f',typ='R' ), + H1X =SIMP(statut='f',typ='R' ), + H1Y =SIMP(statut='f',typ='R' ), + H1Z =SIMP(statut='f',typ='R' ), + E1X =SIMP(statut='f',typ='R' ), + E1Y =SIMP(statut='f',typ='R' ), + E1Z =SIMP(statut='f',typ='R' ), + E2X =SIMP(statut='f',typ='R' ), + E2Y =SIMP(statut='f',typ='R' ), + E2Z =SIMP(statut='f',typ='R' ), + E3X =SIMP(statut='f',typ='R' ), + E3Y =SIMP(statut='f',typ='R' ), + E3Z =SIMP(statut='f',typ='R' ), + E4X =SIMP(statut='f',typ='R' ), + E4Y =SIMP(statut='f',typ='R' ), + E4Z =SIMP(statut='f',typ='R' ), + LAGS_C =SIMP(statut='f',typ='R' ), ), DDL_POUTRE =FACT(statut='f',max='**', + fr="Bloque des DDLs dans un repère local d'une poutre", regles=(AU_MOINS_UN('GROUP_NO','NOEUD'), AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ'), UN_PARMI('VECT_Y','ANGL_VRIL'),), @@ -2453,6 +2793,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca FACE_IMPO =FACT(statut='f',max='**', + fr="Impose à tous les noeuds d'une face une ou plusieurs valeurs de déplacement (ou de certaines grandeurs associées)", regles=(UN_PARMI('GROUP_MA','MAILLE',), AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', 'TEMP','PRE1','PRE2','DNOR','DTAN'), @@ -2471,6 +2812,8 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca # rajout d'un mot clé REPERE :/ LOCAL /GLOBAL GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + SANS_GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + SANS_MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), DX =SIMP(statut='f',typ='R' ), DY =SIMP(statut='f',typ='R' ), DZ =SIMP(statut='f',typ='R' ), @@ -2488,7 +2831,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca ), CHAMNO_IMPO =FACT(statut='f',max='**', - fr="imposer des ddls aux valeurs d'un concept cham_no_sdaster", + fr="Impose des DDLs aux valeurs d'un concept cham_no_sdaster", # type de cham_no_sdaster CO() CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster), #CO() COEF_MULT =SIMP(statut='o',typ='R' ), @@ -2497,7 +2840,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca LIAISON_DDL =FACT(statut='f',max='**', - fr="Définir une relation linéaire entre des ddls de deux ou plusieurs noeuds", + fr="Définit une relation linéaire entre des DDLs de deux ou plusieurs noeuds", regles=(UN_PARMI('GROUP_NO','NOEUD'),), GROUP_NO =SIMP(statut='f',typ=grno ,max='**'), NOEUD =SIMP(statut='f',typ=no ,max='**'), @@ -2507,7 +2850,8 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca ), LIAISON_OBLIQUE =FACT(statut='f',max='**', - fr="Appliquer à des noeuds une valeur de déplacement dans un repere oblique", + fr="Applique à des noeuds la meme valeur de déplacement définie composante par composante" + +" dans un repère oblique quelconque", regles=(UN_PARMI('GROUP_NO','NOEUD'), UN_PARMI('DX','DY','DZ','DRX','DRY','DRZ'),), GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), @@ -2522,7 +2866,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca ), LIAISON_GROUP =FACT(statut='f',max='**', - fr="Définir des relations linéaires entre certains ddls de couples de noeuds", + fr="Définit la meme relation linéaire entre certains DDLs de couples de noeuds", regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'), EXCLUS('GROUP_MA_1','GROUP_NO_2'), @@ -2558,6 +2902,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca ), LIAISON_MAIL =FACT(statut='f',max='**', + fr="Définit des relations linéaires permettant de recoller deux bords d'une structure", regles=(AU_MOINS_UN('GROUP_MA_MAIT','MAILLE_MAIT'), AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL'), PRESENT_PRESENT('DDL_MAIT','DDL_ESCL'),), @@ -2576,6 +2921,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca ), LIAISON_CYCL =FACT(statut='f',max='**', + fr="Définit des relations linéaires permettant de recoller les bords de deux parties symétriquement cycliques", regles=(AU_MOINS_UN('GROUP_MA_MAIT1','MAILLE_MAIT1'), AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL'), PRESENT_PRESENT('DDL_MAIT','DDL_ESCL'), @@ -2599,7 +2945,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca ), - LIAISON_SOLIDE =FACT(statut='f',fr="Modéliser une partie indéformable d'une structure",max='**', + LIAISON_SOLIDE =FACT(statut='f',fr="Modélise une partie indéformable d'une structure",max='**', regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), @@ -2608,7 +2954,9 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), ), - LIAISON_ELEM =FACT(statut='f',fr="Raccorder une poutre à une partie massive 3D ou une coque",max='**', + LIAISON_ELEM =FACT(statut='f',max='**', + fr="Modélise le raccord d'une partie massive 3D avec une poutre ou avec un tuyau, le raccord d'une coque" + +" avec une poutre ou avec un tuyau", regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'), UN_PARMI('GROUP_NO_2','NOEUD_2'),), OPTION =SIMP(statut='o',typ='TXM',into=("3D_TUYAU","3D_POU","COQ_POU","COQ_TUYAU") ), @@ -2623,7 +2971,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca ), LIAISON_UNIF =FACT(statut='f',max='**', - fr="Imposer une meme valeur (inconnue) à des ddls d'un emsemble de noeuds", + fr="Impose une meme valeur (inconnue) à des DDLs d'un ensemble de noeuds", regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), @@ -2633,7 +2981,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca ), LIAISON_CHAMNO =FACT(statut='f',max='**', - fr="définir une relation linéaire entre tous les ddls d'un concept cham_no_sdaster", + fr="Définit une relation linéaire entre tous les DDLs présents dans un concept CHAM_NO", # type de cham_no_sdaster CO() CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster), #CO() COEF_IMPO =SIMP(statut='o',typ='R' ), @@ -2642,26 +2990,61 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca LIAISON_XFEM =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ), - VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r ), + VECT_ASSE =SIMP(statut='f',typ=cham_no_sdaster ), +# +# LIAISON UNILATERALE +# + LIAISON_UNILATER=FACT(statut='f',max='**', + fr="Définit les zones soumises à des conditions de liaison unilaterale (inegalite sur un DDL)", + regles=(UN_PARMI('GROUP_MA','MAILLE','GROUP_NO','NOEUD'),), + + GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - CONTACT =FACT(statut='f',fr="Imposer du contact avec ou sans frottement",max='**', - regles=(UN_PARMI('GROUP_MA_ESCL','MAILLE_ESCL'),), - APPARIEMENT =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL", - into=("NON","NODAL","MAIT_ESCL","MAIT_ESCL_SYME")), + SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + + NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), + + NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), + + COEF_IMPO =SIMP(statut='f',typ='R'), + COEF_MULT =SIMP(statut='f',typ='R',max='**'), + + METHODE =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE", + into=("CONTRAINTE","GCPC",) ), + + + ), +# +# CONTACT +# + CONTACT =FACT(statut='f',max='**', + fr="Définit les zones soumises à des conditions de contact unilatéral avec ou sans frottement", + regles=(UN_PARMI('GROUP_MA_ESCL','MAILLE_ESCL'),), + APPARIEMENT =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL", + into=("NON","NODAL","MAIT_ESCL","MAIT_ESCL_SYME")), RECHERCHE =SIMP(statut='f',typ='TXM',defaut="NOEUD_BOUCLE", into=("NOEUD_BOUCLE","NOEUD_VOISIN")), LISSAGE =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")), + DIST_POUTRE =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")), + DIST_COQUE =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")), NORMALE =SIMP(statut='f',typ='TXM',defaut="MAIT", into=("MAIT","MAIT_ESCL")), METHODE =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE", - into=("VERIF","CONTRAINTE","LAGRANGIEN","PENALISATION","CONTINUE") ), + into=("VERIF","CONTRAINTE","LAGRANGIEN","PENALISATION","CONTINUE","GCP") ), PROJECTION =SIMP(statut='f',typ='TXM',defaut="LINEAIRE", into=("LINEAIRE","QUADRATIQUE") ), GROUP_MA_MAIT =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), MAILLE_MAIT =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), GROUP_MA_ESCL =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), MAILLE_ESCL =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + b_cara =BLOC(condition = "DIST_POUTRE == 'OUI' or DIST_COQUE == 'OUI'", + CARA_ELEM =SIMP(statut='o',typ=(cara_elem) ), + ), b_verif =BLOC(condition = "METHODE == 'VERIF' ", fr="Paramètres de la méthode sans calcul de contact", @@ -2671,7 +3054,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca DIST_MAIT =SIMP(statut='f',typ='R'), DIST_ESCL =SIMP(statut='f',typ='R'), VECT_NORM_ESCL =SIMP(statut='f',typ='R',max=3), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), + VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), ), b_active =BLOC(condition = "METHODE == 'CONTRAINTE' ", @@ -2687,7 +3070,6 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca ), TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), TOLE_PROJ_INT =SIMP(statut='f',typ='R' ,defaut=0.001), - TOLE_REAC_GEOM =SIMP(statut='f',typ='R' ,defaut=0.05), STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI", into=("OUI","NON")), NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), @@ -2695,20 +3077,14 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca into=("AUTOMATIQUE","CONTROLE","SANS")), b_reac_sans =BLOC(condition = "REAC_GEOM == 'SANS' ", fr="Paramètre de la réactualisation géométrique", - - STOP_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="NON", - into=("OUI","NON")), ), b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ", fr="Paramètre de la réactualisation géométrique", NB_REAC_GEOM =SIMP(statut='o',typ='I'), - - STOP_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME", - into=("OUI","NON")), + ), b_reac_auto =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", fr="Paramètre de la réactualisation géométrique auto", - NB_REAC_MAXI =SIMP(statut='o',typ='I',defaut = 10), ), SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), @@ -2716,7 +3092,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca COEF_IMPO =SIMP(statut='f',typ='R'), COEF_MULT_ESCL =SIMP(statut='f',typ='R'), VECT_NORM_ESCL =SIMP(statut='f',typ='R',max=3), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), + VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), DIST_MAIT =SIMP(statut='f',typ='R'), DIST_ESCL =SIMP(statut='f',typ='R'), @@ -2727,7 +3103,6 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), TOLE_PROJ_INT =SIMP(statut='f',typ='R' ,defaut=0.001), - TOLE_REAC_GEOM =SIMP(statut='f',typ='R' ,defaut=0.05), STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI", into=("OUI","NON")), NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), @@ -2736,27 +3111,26 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE", into=("AUTOMATIQUE","CONTROLE","SANS")), b_reac_sans =BLOC(condition = "REAC_GEOM == 'SANS' ",fr="Paramètre de la réactualisation géométrique", - VERI_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME", - into=("ALARME","ERREUR","NON")), ), b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Paramètre de la réactualisation géométrique", NB_REAC_GEOM =SIMP(statut='o',typ='I'), - - VERI_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME", - into=("ALARME","ERREUR","NON")), + ), b_reac_auto =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", fr="Paramètre de la réactualisation géométrique auto", - NB_REAC_MAXI =SIMP(statut='o',typ='I',defaut = 10), - ), - + ), + SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), DIST_MAIT =SIMP(statut='f',typ='R'), DIST_ESCL =SIMP(statut='f',typ='R'), + + regles=(EXCLUS('VECT_Y','VECT_ORIE_POU')), + VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), + VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", COULOMB =SIMP(statut='o',typ='R',), COEF_MATR_FROT =SIMP(statut='f',typ='R',defaut=0.E+0), @@ -2769,7 +3143,6 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), TOLE_PROJ_INT =SIMP(statut='f',typ='R' ,defaut=0.001), - TOLE_REAC_GEOM =SIMP(statut='f',typ='R' ,defaut=0.05), STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI", into=("OUI","NON")), NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), @@ -2778,18 +3151,12 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE", into=("AUTOMATIQUE","CONTROLE","SANS")), b_reac_sans =BLOC(condition = "REAC_GEOM == 'SANS' ",fr="Paramètre de la réactualisation géométrique", - VERI_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME", - into=("ALARME","ERREUR","NON")), ), b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Paramètre de la réactualisation géométrique", NB_REAC_GEOM =SIMP(statut='o',typ='I'), - - VERI_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME", - into=("ALARME","ERREUR","NON")), ), b_reac_auto =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", fr="Paramètre de la réactualisation géométrique auto", - NB_REAC_MAXI =SIMP(statut='o',typ='I',defaut = 10), ), SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), @@ -2797,7 +3164,9 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), DIST_MAIT =SIMP(statut='f',typ='R'), DIST_ESCL =SIMP(statut='f',typ='R'), + regles=(EXCLUS('VECT_Y','VECT_ORIE_POU')), VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), + VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", COULOMB =SIMP(statut='o',typ='R',), @@ -2808,24 +3177,88 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca b_continue =BLOC(condition = "METHODE == 'CONTINUE' ", fr="Paramètres de la méthode continue (contact avec ou sans frottement)", +# regles=(UN_PARMI('GLISSIERE','FROTTEMENT'),), NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE")), + GLISSIERE =SIMP(statut='f',typ='TXM',defaut="NON", + into=("OUI","NON")), + b_glissiere =BLOC(condition = "GLISSIERE == 'OUI' ", + ALARME_JEU =SIMP(statut='f',typ='R',defaut=0.), + ), FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), - INTEGRATION =SIMP(statut='f',typ='TXM',defaut="NOEUD",into=("GAUSS","NOEUD","SIMPSON","SIMPSON1","SIMPSON2")), + COMPLIANCE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), + INTEGRATION =SIMP(statut='f',typ='TXM',defaut="NOEUD",into=("GAUSS","NOEUD","SIMPSON","SIMPSON1","SIMPSON2", + "NCOTES","NCOTES1","NCOTES2")), COEF_REGU_CONT =SIMP(statut='f',typ='R',defaut=100.E+0), MODL_AXIS =SIMP(statut='o',typ='TXM',into=("OUI","NON")), FORMULATION =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE")), DIRE_APPA =SIMP(statut='f',typ='R',max=3,defaut=(0.,0.,0.,)), ITER_GEOM_MAXI =SIMP(statut='f',typ='I',defaut=2), ITER_CONT_MAXI =SIMP(statut='f',typ='I',defaut=30), + DIST_MAIT =SIMP(statut='f',typ='R',defaut=0.), + DIST_ESCL =SIMP(statut='f',typ='R',defaut=0.), + VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), + TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), CONTACT_INIT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), + b_compliance =BLOC(condition = "COMPLIANCE == 'OUI' ",fr="Parametres de la compliance", + ASPERITE =SIMP(statut='o',typ='R',), + E_N =SIMP(statut='o',typ='R',), + E_V =SIMP(statut='f',typ='R',defaut=0.E+0),), b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", COULOMB =SIMP(statut='o',typ='R',), + SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), + VECT_Z =SIMP(statut='f',typ='R',min=3,max=3), ITER_FROT_MAXI =SIMP(statut='f',typ='I',defaut=2), COEF_REGU_FROT =SIMP(statut='f',typ='R',defaut=100.E+0), SEUIL_INIT =SIMP(statut='f',typ='R',defaut=0.E+0),),), + + b_gcp =BLOC(condition = "METHODE == 'GCP' ", + fr="Paramètres de la méthode du gradient conjugué projeté (contact uniquement)", + regles=(EXCLUS('DIST_ESCL','COEF_IMPO'), + EXCLUS('DIST_MAIT','COEF_IMPO'),), + NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL", + into=("DEPL","PRES","TEMP","PRE1","PRE2")), + RESI_ABSO =SIMP(statut='o',typ='R', + fr="Critère de convergence (niveau d'interpénétration autorisé)"), + REAC_ITER =SIMP(statut='f',typ='I',defaut=3, fr="Fréquence de réinitialisation de la conjugaison"), + TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), + TOLE_PROJ_INT =SIMP(statut='f',typ='R' ,defaut=0.001), + TOLE_REAC_GEOM =SIMP(statut='f',typ='R' ,defaut=0.05), + STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI", + into=("OUI","NON")), + REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE", + into=("AUTOMATIQUE","CONTROLE","SANS")), + b_reac_sans =BLOC(condition = "REAC_GEOM == 'SANS' ", + fr="Paramètre de la réactualisation géométrique", + + STOP_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="NON", + into=("OUI","NON")), + ), + b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ", + fr="Paramètre de la réactualisation géométrique", + NB_REAC_GEOM =SIMP(statut='o',typ='I'), + + STOP_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME", + into=("OUI","NON")), + ), + b_reac_auto =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", + fr="Paramètre de la réactualisation géométrique auto", + NB_REAC_MAXI =SIMP(statut='o',typ='I',defaut = 10), + ), + SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), + COEF_IMPO =SIMP(statut='f',typ='R'), + COEF_MULT_ESCL =SIMP(statut='f',typ='R'), + VECT_NORM_ESCL =SIMP(statut='f',typ='R',max=3), + VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), + DIST_MAIT =SIMP(statut='f',typ='R'), + DIST_ESCL =SIMP(statut='f',typ='R'), + ), ), - FORCE_NODALE =FACT(statut='f',fr="Imposer des forces nodales en des noeuds",max='**', + FORCE_NODALE =FACT(statut='f',fr="Applique à des noeuds des forces nodales",max='**', regles=(AU_MOINS_UN('GROUP_NO','NOEUD'), AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),), GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), @@ -2840,7 +3273,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca ), FORCE_FACE =FACT(statut='f',max='**', - fr="Appliquer des forces surfaciques sur une face d'éléments volumiques", + fr="Applique des forces surfaciques sur une face d'élément volumique", regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), AU_MOINS_UN('FX','FY','FZ'),), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), @@ -2851,7 +3284,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca ), FORCE_ARETE =FACT(statut='f',max='**', - fr="Appliquer des forces linéiques à une arete d élément volumique ou de coque", + fr="Applique des forces linéiques à une arete d'élément volumique ou de coque", regles=(AU_MOINS_UN('GROUP_MA','MAILLE',), AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), @@ -2865,7 +3298,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca ), FORCE_CONTOUR =FACT(statut='f',max='**', - fr="Appliquer des forces linéiques au bord d'un domaine 2D ou AXIS_FOURIER", + fr="Applique des forces linéiques au bord d'un domaine 2D ou AXIS ou AXIS_FOURIER", regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), @@ -2879,7 +3312,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca ), FORCE_INTERNE =FACT(statut='f',max='**', - fr="Appliquer des forces volumiques (2D ou 3D) à un domaine volumique", + fr="Applique des forces volumiques (2D ou 3D) à un domaine volumique", regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), AU_MOINS_UN('FX','FY','FZ' ),), @@ -2892,7 +3325,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca ), PRES_REP =FACT(statut='f',max='**', - fr="Appliquer une pression à un domaine de milieu continu 2D ou 3D", + fr="Applique une pression à un domaine de milieu continu 2D ou 3D, ou à un domaine de coques et tuyaux", regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), AU_MOINS_UN('PRES','CISA_2D' ),), @@ -2903,7 +3336,8 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca CISA_2D =SIMP(statut='f',typ='R' ), ), - EFFE_FOND =FACT(statut='f',fr="Imposer un effet de fond",max='**', + EFFE_FOND =FACT(statut='f',max='**', + fr="Calcul l'effet de fond sur une branche de tuyauterie (modélisation 3D) soumise à une pression", regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),), GROUP_MA_INT =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), @@ -2912,7 +3346,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca ), EPSI_INIT =FACT(statut='f',max='**', - fr="Appliquer un chargement de déformation initiale à un volume 3D ou 2D", + fr="Applique un chargement de déformation initiale à un élément 2D, 3D ou de structure", regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), AU_MOINS_UN('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ','EPX', @@ -2938,6 +3372,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca ), ARLEQUIN =FACT(statut='f',min=1,max='**', + fr="Définit les paramètres de la méthode Arlequin", GROUP_MA_1 =SIMP(statut='o',typ=grma,max='**'), GROUP_MA_2 =SIMP(statut='o',typ=grma,max='**'), GROUP_MA_COLL =SIMP(statut='f',typ=grma,max='**'), @@ -2950,7 +3385,8 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca POIDS_GROSSIER =SIMP(statut='f',typ='R'), POIDS_FIN =SIMP(statut='f',typ='R'),), - FORCE_POUTRE =FACT(statut='f',fr="Appliquer des forces linéiques sur des poutres",max='**', + FORCE_POUTRE =FACT(statut='f',max='**', + fr="Applique des forces linéiques sur des éléments de type poutre", regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), AU_MOINS_UN('FX','FY','FZ','N','VY','VZ'), @@ -2975,7 +3411,8 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca ), - FORCE_TUYAU =FACT(statut='f',fr="imposer une pression dans un élément TUYAU",max='**', + FORCE_TUYAU =FACT(statut='f',max='**', + fr="Applique une pression sur des éléments TUYAU", regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), @@ -2984,7 +3421,8 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca PRES =SIMP(statut='f',typ='R' ), ), - FORCE_COQUE =FACT(statut='f',fr="Appliquer des forces surfaciques sur des coques",max='**', + FORCE_COQUE =FACT(statut='f',max='**', + fr="Applique des forces surfaciques sur des éléments de types coques", regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','PRES','F1','F2','F3','MF1','MF2'), @@ -3024,6 +3462,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca GRAPPE_FLUIDE =FACT(statut='f',max='**', + fr="Définit les données de calcul des forces fluides lors des études de chute de grappe", regles=(EXCLUS('GROUP_NO_EXTR','NOEUD_EXTR'), EXCLUS('GROUP_NO_ORIG','NOEUD_ORIG'), PRESENT_PRESENT('CARA_HYDR','VALE_HYDR'), @@ -3098,7 +3537,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca fr="direction d'application de la force de plaquage",), b_CDG =BLOC(condition = "(APPL_FORC_ARCHI == 'CDG') or (APPL_FORC_FPLAQ == 'CDG') or \ (APPL_FORC_FMEC == 'CDG') or (APPL_FORC_FTG == 'CDG')", - MASS_INER =SIMP(statut='o',typ=tabl_mass_iner ), + MASS_INER =SIMP(statut='o',typ=table_sdaster ), ), UNITE_IMPR_FORCE =SIMP(statut='f',typ='I', fr="unité d'impression des forces",), @@ -3107,6 +3546,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca ), LIAISON_COQUE =FACT(statut='f',max='**', + fr="Permet de représenter le raccord entre des éléments de coques au moyen des relations linéaires", GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), @@ -3119,13 +3559,16 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca ), RELA_CINE_BP =FACT(statut='f',max='**', + fr="Etablir des relations cinématiques permettant de relier les noeuds cable aux noeuds du béton, et spécifier" + +" la prise en compte des contraintes initiales dans les cables", CABLE_BP =SIMP(statut='o',typ=cabl_precont ), SIGM_BPEL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), RELA_CINE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), ), FORCE_ELEC =FACT(statut='f',max='**', - fr="Force de Laplace due à la présence d'un conducteur rectiligne secondaire non maillé", + fr="Appliquer la force de LAPLACE agissant sur un conducteur principal, due à la présence d'un conducteur" + +" secondaire droit", regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), @@ -3158,7 +3601,8 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca INTE_ELEC =FACT(statut='f',max='**', - fr="Force de Laplace due à la présence d'un conducteur non rectiligne secondaire", + fr="Appliquer la force de LAPLACE agissant sur un conducteur principal, due à la présence d'un conducteur" + +" secondaire non nécessairement droit", regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), AU_MOINS_UN('GROUP_MA_2','MAILLE_2','TRANS','SYME'), @@ -3173,14 +3617,14 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca ), - IMPE_FACE =FACT(statut='f',fr="Appliquer une impédance acoustique à une face",max='**', + IMPE_FACE =FACT(statut='f',fr="Applique une impédance acoustique à une face",max='**', regles=(AU_MOINS_UN('GROUP_MA','MAILLE' ),), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), IMPE =SIMP(statut='o',typ='R' ), ), - VITE_FACE =FACT(statut='f',fr="Imposer des vitesses acoustiquesnormales à une face",max='**', + VITE_FACE =FACT(statut='f',fr="Impose des vitesses normales à une face (phénomène ACOUSTIQUE), ",max='**', regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), @@ -3189,7 +3633,8 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca - ONDE_FLUI =FACT(statut='f',fr="Appliquer une amplitude de pression d onde incidente",max='**', + ONDE_FLUI =FACT(statut='f',max='**', + fr="Applique une amplitude de pression d'onde incidente sinusoidale arrivant normalement à une face", regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), @@ -3197,6 +3642,8 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca ), FLUX_THM_REP =FACT(statut='f',max='**', + fr="Applique à un domaine de milieu continu 2D ou 3D un flux de chaleur et/ou un apport de masse fluide" + +" (flux hydraulique)", regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), AU_MOINS_UN('FLUN','FLUN_HYDR1','FLUN_HYDR2'),), @@ -3212,7 +3659,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 24/08/2005 AUTEUR MABBAS M.ABBAS # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -3239,6 +3686,7 @@ AFFE_CHAR_MECA_C=OPER(nom="AFFE_CHAR_MECA_C",op= 7,sd_prod=char_meca, MODELE =SIMP(statut='o',typ=modele_sdaster ), VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), DDL_IMPO =FACT(statut='f',max='**', + fr="Impose à des noeuds une ou plusieurs valeurs de déplacement (ou de certaines grandeurs asscociées)", regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD',), AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI','LIAISON', ),), TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), @@ -3258,6 +3706,7 @@ AFFE_CHAR_MECA_C=OPER(nom="AFFE_CHAR_MECA_C",op= 7,sd_prod=char_meca, PHI =SIMP(statut='f',typ='C' ), ), FORCE_POUTRE =FACT(statut='f',max='**', + fr="Applique des forces linéiques sur des éléments de type poutre", regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), AU_MOINS_UN('FX','FY','FZ','N','VY','VZ',), @@ -3279,6 +3728,7 @@ AFFE_CHAR_MECA_C=OPER(nom="AFFE_CHAR_MECA_C",op= 7,sd_prod=char_meca, VZ =SIMP(statut='f',typ='C' ), ), LIAISON_DDL =FACT(statut='f',max='**', + fr="Définit une relation linéaire entre les DDLs de deux ou plusieurs noeuds", regles=(UN_PARMI('GROUP_NO','NOEUD', ),), GROUP_NO =SIMP(statut='f',typ=grno,max='**'), NOEUD =SIMP(statut='f',typ=no ,max='**'), @@ -3288,7 +3738,7 @@ AFFE_CHAR_MECA_C=OPER(nom="AFFE_CHAR_MECA_C",op= 7,sd_prod=char_meca, ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; -#& MODIF COMMANDE DATE 24/05/2005 AUTEUR MABBAS M.ABBAS +#& MODIF COMMANDE DATE 03/05/2006 AUTEUR MABBAS M.ABBAS # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -3308,7 +3758,7 @@ AFFE_CHAR_MECA_C=OPER(nom="AFFE_CHAR_MECA_C",op= 7,sd_prod=char_meca, # ====================================================================== # 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", + fr="Affectation de charges et conditions aux limites mécaniques fonction d'un (ou plusieurs) paramètres", reentrant='n', UIinfo={"groupes":("Modélisation",)}, regles=(AU_MOINS_UN('DDL_IMPO','FACE_IMPO','LIAISON_DDL','FORCE_NODALE', @@ -3316,15 +3766,20 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, 'PRES_REP','FORCE_POUTRE','VITE_FACE','IMPE_FACE','ONDE_PLANE', 'LIAISON_OBLIQUE','EPSI_INIT','LIAISON_GROUP','LIAISON_UNIF', 'LIAISON_SOLIDE','FORCE_COQUE','LIAISON_COQUE','FORCE_TUYAU', - 'CONTACT','EFFE_FOND','FLUX_THM_REP'),), + +'CONTACT','EFFE_FOND','FLUX_THM_REP','LIAISON_UNILATER'),), VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), VERI_NORM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), MODELE =SIMP(statut='o',typ=modele_sdaster), DDL_IMPO =FACT(statut='f',max='**', + fr="Impose à des noeuds une ou plusieurs valeurs de déplacement (ou de certaines grandeurs asscociées) fournies" + +" par l'intermédiaire d'un concept fonction ", regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', - 'TEMP','PRE1','PRE2','LIAISON',),), + 'TEMP','PRE1','PRE2','LIAISON','DCX','DCY','DCZ','H1X', + 'H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z', + 'E3X','E3Y','E3Z','E4X','E4Y','E4Z','LAGS_C'),), TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), @@ -3343,9 +3798,30 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), PRE1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), PRE2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DCX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DCY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DCZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + H1X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + H1Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + H1Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + E1X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + E1Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + E1Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + E2X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + E2Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + E2Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + E3X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + E3Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + E3Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + E4X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + E4Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + E4Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + LAGS_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), ), FACE_IMPO =FACT(statut='f',max='**', + fr="Impose à tous les noeuds d'une face une ou plusieurs valeurs de déplacement (ou de certaines grandeurs associées)" + +" fournies par l'intérmédiaire d'un concept fonction", regles=(UN_PARMI('GROUP_MA','MAILLE'), AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI','TEMP','PRE1','PRE2','DNOR','DTAN'), EXCLUS('DNOR','DX'), @@ -3363,6 +3839,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, # rajout d un mot cle REPERE : / GLOBAL / LOCAL GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + SANS_GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + SANS_MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), DX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), @@ -3380,7 +3858,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, ), LIAISON_DDL =FACT(statut='f',max='**', - fr="Définir une relation linéaire entre des ddls de deux ou plusieurs noeuds", + fr="Définit une relation linéaire entre des DDLs de deux ou plusieurs noeuds, les valeurs sont fournies par" + +" l'intermediaire d'un concept de type fonction", regles=(UN_PARMI('GROUP_NO','NOEUD'),), GROUP_NO =SIMP(statut='f',typ=grno,max='**'), NOEUD =SIMP(statut='f',typ=no ,max='**'), @@ -3390,7 +3869,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, ), LIAISON_OBLIQUE =FACT(statut='f',max='**', - fr="Définir des relations linéaires entre certains ddls de couples de noeuds", + fr="Applique à des noeuds la meme valeur de déplacement définie composante par composante dans un repère oblique" + +" quelconque, les valeurs sont fournis par l'intermédiaire d'un concept fonction", regles=(UN_PARMI('GROUP_NO','NOEUD'), UN_PARMI('DX','DY','DZ','DRX','DRY','DRZ'),), GROUP_NO =SIMP(statut='f',typ=grno,max='**'), @@ -3405,7 +3885,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, ), LIAISON_GROUP =FACT(statut='f',max='**', - fr="Définir des relations linéaires entre certains ddls de couples de noeuds", + fr="Définit la meme relation linéaire entre certains DDLs de couples de noeuds, les valeurs sont fournies par" + +" l'intermédiaire de concept fonction", regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'), EXCLUS('GROUP_MA_1','GROUP_NO_2'), @@ -3437,21 +3918,54 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, ANGL_NAUT =SIMP(statut='f',typ='R',max=3), CENTRE =SIMP(statut='f',typ='R',max=3), ), +# +# LIAISON UNILATERALE +# + LIAISON_UNILATER=FACT(statut='f',max='**', + fr="Définit les zones soumises à des conditions de liaison unilaterale (inegalite sur un DDL)", + regles=(UN_PARMI('GROUP_MA','MAILLE','GROUP_NO','NOEUD'),), + + GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + + SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + + NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), + + NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), + + COEF_IMPO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + COEF_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'), - CONTACT =FACT(statut='f',fr="Imposer du contact avec ou sans frottement",max='**', + METHODE =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE", + into=("CONTRAINTE","GCPC",) ), + + + ), + CONTACT =FACT(statut='f', + fr="Définit les zones soumises à des conditions de contact unilatéral avec ou \sans frottement, certaines valeurs" + +" sont données par l'intermédiaire de concept fonction",max='**', regles=(UN_PARMI('GROUP_MA_ESCL','MAILLE_ESCL'),), APPARIEMENT =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL", into=("NON","NODAL","MAIT_ESCL","MAIT_ESCL_SYME")), RECHERCHE =SIMP(statut='f',typ='TXM',defaut="NOEUD_BOUCLE",into=("NOEUD_BOUCLE","NOEUD_VOISIN")), LISSAGE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), + DIST_POUTRE =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")), + DIST_COQUE =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")), NORMALE =SIMP(statut='f',typ='TXM',defaut="MAIT",into=("MAIT","MAIT_ESCL")), METHODE =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE", - into=("CONTRAINTE","VERIF","LAGRANGIEN","PENALISATION","CONTINUE") ), + into=("CONTRAINTE","VERIF","LAGRANGIEN","PENALISATION","CONTINUE","GCP") ), PROJECTION =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","QUADRATIQUE") ), GROUP_MA_MAIT =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), MAILLE_MAIT =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), GROUP_MA_ESCL =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), MAILLE_ESCL =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + b_cara =BLOC(condition = "DIST_POUTRE == 'OUI' or DIST_COQUE == 'OUI'", + CARA_ELEM =SIMP(statut='o',typ=(cara_elem) ), + ), b_verif =BLOC(condition = "METHODE == 'VERIF' ", fr="Paramètres de la méthode sans calcul de contact", @@ -3461,7 +3975,7 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, DIST_MAIT =SIMP(statut='f',typ='R'), DIST_ESCL =SIMP(statut='f',typ='R'), VECT_NORM_ESCL =SIMP(statut='f',typ='R',max=3), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), + VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), ), b_active =BLOC(condition = "METHODE == 'CONTRAINTE' ", @@ -3477,7 +3991,6 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, ), TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), TOLE_PROJ_INT =SIMP(statut='f',typ='R' ,defaut=0.001), - TOLE_REAC_GEOM =SIMP(statut='f',typ='R' ,defaut=0.05), STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI", into=("OUI","NON")), NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), @@ -3486,19 +3999,14 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, b_reac_sans =BLOC(condition = "REAC_GEOM == 'SANS' ", fr="Parametre de la reactualisation geometrique", - VERI_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME", - into=("ALARME","ERREUR","NON")), ), b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ", fr="Parametre de la reactualisation geometrique", NB_REAC_GEOM =SIMP(statut='o',typ='I'), - VERI_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME", - into=("ALARME","ERREUR","NON")), ), b_reac_auto =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", fr="Parametre de la reactualisation geometrique auto", - NB_REAC_MAXI =SIMP(statut='o',typ='I',defaut = 10), ), SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), @@ -3506,7 +4014,7 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, COEF_IMPO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), COEF_MULT_ESCL =SIMP(statut='f',typ='R'), VECT_NORM_ESCL =SIMP(statut='f',typ='R',max=3), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), + VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), DIST_MAIT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), DIST_ESCL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), ), @@ -3516,7 +4024,6 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), TOLE_PROJ_INT =SIMP(statut='f',typ='R' ,defaut=0.001), - TOLE_REAC_GEOM =SIMP(statut='f',typ='R' ,defaut=0.05), STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI", into=("OUI","NON")), NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), @@ -3525,18 +4032,13 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE", into=("AUTOMATIQUE","CONTROLE","SANS")), b_reac_sans =BLOC(condition = "REAC_GEOM == 'SANS' ",fr="Parametre de la reactualisation geometrique", - VERI_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME", - into=("ALARME","ERREUR","NON")), ), b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Parametre de la reactualisation geometrique", NB_REAC_GEOM =SIMP(statut='o',typ='I'), - - VERI_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME", - into=("ALARME","ERREUR","NON")), + ), b_reac_auto =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", fr="Parametre de la reactualisation geometrique auto", - NB_REAC_MAXI =SIMP(statut='o',typ='I',defaut = 10), ), SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), @@ -3544,8 +4046,9 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), DIST_MAIT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), DIST_ESCL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + regles=(EXCLUS('VECT_Y','VECT_ORIE_POU')), VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), - + VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", COULOMB =SIMP(statut='o',typ='R',), COEF_MATR_FROT =SIMP(statut='f',typ='R',defaut=0.E+0), @@ -3557,7 +4060,6 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), TOLE_PROJ_INT =SIMP(statut='f',typ='R' ,defaut=0.001), - TOLE_REAC_GEOM =SIMP(statut='f',typ='R' ,defaut=0.05), STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI", into=("OUI","NON")), NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), @@ -3566,26 +4068,21 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE", into=("AUTOMATIQUE","CONTROLE","SANS")), b_reac_sans =BLOC(condition = "REAC_GEOM == 'SANS' ",fr="Paramètre de la réactualisation géométrique", - VERI_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME", - into=("ALARME","ERREUR","NON")), ), b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Paramètre de la réactualisation géométrique", NB_REAC_GEOM =SIMP(statut='o',typ='I'), - - VERI_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME", - into=("ALARME","ERREUR","NON")), ), b_reac_auto =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", fr="Paramètre de la réactualisation géométrique auto", - NB_REAC_MAXI =SIMP(statut='o',typ='I',defaut = 10), ), SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), DIST_MAIT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), DIST_ESCL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + regles=(EXCLUS('VECT_Y','VECT_ORIE_POU')), VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), - + VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", COULOMB =SIMP(statut='o',typ='R',), E_T =SIMP(statut='f',typ='R', @@ -3594,24 +4091,87 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, ),), b_continue =BLOC(condition = "METHODE == 'CONTINUE' ", fr="Paramètres de la méthode continue (contact avec ou sans frottement)", +# regles=(UN_PARMI('GLISSIERE','FROTTEMENT'),), NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)), + GLISSIERE =SIMP(statut='f',typ='TXM',defaut="NON", + into=("OUI","NON")), + b_glissiere =BLOC(condition = "GLISSIERE == 'OUI' ", + ALARME_JEU =SIMP(statut='f',typ='R',defaut=0.), + ), FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), - INTEGRATION =SIMP(statut='f',typ='TXM',defaut="NOEUD",into=("GAUSS","NOEUD","SIMPSON","SIMPSON1","SIMPSON2")), + COMPLIANCE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), + INTEGRATION =SIMP(statut='f',typ='TXM',defaut="NOEUD",into=("GAUSS","NOEUD","SIMPSON","SIMPSON1","SIMPSON2", + "NCOTES","NCOTES1","NCOTES2")), COEF_REGU_CONT =SIMP(statut='f',typ='R',defaut=100.E+0), FORMULATION =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE")), MODL_AXIS =SIMP(statut='o',typ='TXM',into=("OUI","NON")), DIRE_APPA =SIMP(statut='f',typ='R',max=3), ITER_GEOM_MAXI =SIMP(statut='f',typ='I',defaut=2), ITER_CONT_MAXI =SIMP(statut='f',typ='I',defaut=30), + DIST_MAIT =SIMP(statut='f',typ='R'), + DIST_ESCL =SIMP(statut='f',typ='R'), + CONTACT_INIT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), + b_compliance =BLOC(condition = "COMPLIANCE == 'OUI' ",fr="Parametres de la compliance", + ASPERITE =SIMP(statut='o',typ='R',), + E_N =SIMP(statut='o',typ='R',), + E_V =SIMP(statut='f',typ='R',defaut=0.E+0),), b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", COULOMB =SIMP(statut='o',typ='R',), + SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), + VECT_Z =SIMP(statut='f',typ='R',min=3,max=3), ITER_FROT_MAXI =SIMP(statut='f',typ='I',defaut=2), COEF_REGU_FROT =SIMP(statut='f',typ='R',defaut=100.E+0), SEUIL_INIT =SIMP(statut='f',typ='I',defaut=0),),), + + b_gcp =BLOC(condition = "METHODE == 'GCP' ", + fr="Paramètres de la méthode du gradient conjugué projeté (contact uniquement)", + regles=(EXCLUS('DIST_ESCL','COEF_IMPO'), + EXCLUS('DIST_MAIT','COEF_IMPO'),), + NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL", + into=("DEPL","PRES","TEMP","PRE1","PRE2")), + RESI_ABSO =SIMP(statut='o',typ='R', + fr="Critère de convergence (niveau d'interpénétration autorisé)"), + REAC_ITER =SIMP(statut='f',typ='I',defaut=3, fr="Fréquence de réinitialisation de la conjugaison"), + TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), + TOLE_PROJ_INT =SIMP(statut='f',typ='R' ,defaut=0.001), + TOLE_REAC_GEOM =SIMP(statut='f',typ='R' ,defaut=0.05), + STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI", + into=("OUI","NON")), + REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE", + into=("AUTOMATIQUE","CONTROLE","SANS")), + b_reac_sans =BLOC(condition = "REAC_GEOM == 'SANS' ", + fr="Paramètre de la réactualisation géométrique", + + STOP_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="NON", + into=("OUI","NON")), + ), + b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ", + fr="Paramètre de la réactualisation géométrique", + NB_REAC_GEOM =SIMP(statut='o',typ='I'), + + STOP_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME", + into=("OUI","NON")), + ), + b_reac_auto =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", + fr="Paramètre de la réactualisation géométrique auto", + NB_REAC_MAXI =SIMP(statut='o',typ='I',defaut = 10), + ), + SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), + COEF_IMPO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + COEF_MULT_ESCL =SIMP(statut='f',typ='R'), + VECT_NORM_ESCL =SIMP(statut='f',typ='R',max=3), + VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), + DIST_MAIT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + DIST_ESCL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ), ), LIAISON_UNIF =FACT(statut='f',max='**', - fr="Imposer une meme valeur (inconnue) a des ddls d un emsemble de noeuds", + fr="Impose une meme valeur (inconnue) à des DDLs d'un ensemble de noeuds", regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), @@ -3621,7 +4181,7 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, ), LIAISON_SOLIDE =FACT(statut='f',max='**', - fr="Modéliser une partie indéformable d une structure", + fr="Modélise une partie indéformable d'une structure", regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), @@ -3633,6 +4193,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, FORCE_NODALE =FACT(statut='f',max='**', + fr="Applique à des noeuds des forces nodales dont les valeurs des composantes sont fournies par l'intermédiaire" + +" d'un concept fonction", regles=(UN_PARMI('GROUP_NO','NOEUD'), AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), @@ -3647,6 +4209,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, ), FORCE_FACE =FACT(statut='f',max='**', + fr="Applique des forces surfaciques sur une face d'élément volumique dont les valeurs des composantes sont fournies" + +" par l'intermédiaire d'un concept fonction", regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), AU_MOINS_UN('FX','FY','FZ'),), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), @@ -3656,6 +4220,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), ), FORCE_ARETE =FACT(statut='f',max='**', + fr="Applique des forces linéiques à une arete d'élément volumique ou de coque dont les valeurs des composantes sont" + +" fournies par l'intermédiaire d'un concept fonction", regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), @@ -3668,6 +4234,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, MZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), ), FORCE_CONTOUR =FACT(statut='f',max='**', + fr="Applique des forces linéiques au bord d'un domaine 2D ou AXIS ou AXIS_FOURIER, dont les valeurs des composantes" + +" sont fournies par l'intermédiaire d'un concept fonction", regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), @@ -3681,6 +4249,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, ), FORCE_INTERNE =FACT(statut='f',max='**', + fr="Applique des forces volumiques (2D ou 3D) à un domaine volumique, dont les valeurs des composantes sont fournies" + +" par l'intermédiaire d'un concept fonction", regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), AU_MOINS_UN('FX','FY','FZ'),), @@ -3693,6 +4263,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, ), PRES_REP =FACT(statut='f',max='**', + fr="Applique une pression à un domaine de milieu continu 2D ou 3D ou à un domaine de coques et tuyaux, dont les" + +" valeurs imposées (pression et/ou cisaillement) sont fournies par l'intermédiaire d'un concept fonction", regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), AU_MOINS_UN('PRES','CISA_2D'),), @@ -3703,7 +4275,9 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, CISA_2D =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), ), - EFFE_FOND =FACT(statut='f',fr="Imposer un effet de fond",max='**', + EFFE_FOND =FACT(statut='f',max='**', + fr="Calcul l'effet de fond sur une branche de tuyauterie (modélisation 3D) soumise" + +" à une pression dont la valeur est fournie par l'intermédiaire d'un concept fonction", regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),), GROUP_MA_INT =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), @@ -3712,6 +4286,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, ), EPSI_INIT =FACT(statut='f',max='**', + fr="Applique un chargement de déformation initiale à un élément 2D, 3D ou de structure dont les composantes" + +" du tenseur de déformation sont fournies par l'intermédiaire d'un concept fonction", regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), AU_MOINS_UN('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ'),), @@ -3727,6 +4303,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, ), FORCE_POUTRE =FACT(statut='f',max='**', + fr="Applique des forces linéiques sur des éléments de type poutre dont les valeurs sont fournies par" + +" l'intermédiaire d'un concept fonction", regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), AU_MOINS_UN('FX','FY','FZ','N','VY','VZ'), @@ -3750,6 +4328,7 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, ), FORCE_TUYAU =FACT(statut='f',max='**', + fr="Applique une pression sur des éléments TUYAU, la valeur est fournie par l'intermédiaire d'un concept fonction", regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), @@ -3759,6 +4338,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, ), FORCE_COQUE =FACT(statut='f',max='**', + fr="Applique des forces surfaciques sur des éléments de types coques dont les valeurs sont fournies par" + +" l'intermédiaires d'un concept fonction", regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','PRES','F1','F2','F3','MF1','MF2'), @@ -3795,6 +4376,7 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, ), LIAISON_COQUE =FACT(statut='f',max='**', + fr="Permet de représenter le raccord entre des éléments de coques au moyen des relations linéaires", GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), @@ -3808,6 +4390,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, VITE_FACE =FACT(statut='f',max='**', + fr="Impose des vitesses normales à une face (phénomène ACOUSTIQUE) dont les valeurs sont fournies par" + +" l'intermédiaire d'un concept fonction", regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), PRESENT_ABSENT('GROUP_MA','MAILLE'),), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), @@ -3815,6 +4399,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, VNOR =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), ), IMPE_FACE =FACT(statut='f',max='**', + fr="Applique à une face une impédance acoustique dont la valeur est fournie par l'intermédiaire" + +" d'un concept fonction", regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), PRESENT_ABSENT('GROUP_MA','MAILLE'),), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), @@ -3822,6 +4408,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, IMPE =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), ), ONDE_PLANE =FACT(statut='f',max='**', + fr="Impose un chargement sismique par onde plane dont la valeur est fournie par l'intermédiaire" + +" d'un concept fonction", DIRECTION =SIMP(statut='o',typ='R',max='**'), TYPE_ONDE =SIMP(statut='o',typ='TXM' ), FONC_SIGNAL =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), @@ -3831,6 +4419,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, FLUX_THM_REP =FACT(statut='f',max='**', + fr="Applique à un domaine continue 2D ou 3D un flux de chaleur et/ou un apport de masse fluide (flux hydraulique)" + +" dont les valeurs des flux sont fournies par l'intermédiaire d'un concept fonction", regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), AU_MOINS_UN('FLUN','FLUN_HYDR1','FLUN_HYDR2'),), @@ -3846,7 +4436,7 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -3865,7 +4455,7 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, # 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=" ", + fr="Affectation de charges et conditions limites thermiques spécifique à CARA_TORSION", reentrant='n', UIinfo={"groupes":("Outils métier",)}, regles=(AU_MOINS_UN('CARA_TORSION', ),), @@ -3879,7 +4469,7 @@ AFFE_CHAR_OPS011=OPER(nom="AFFE_CHAR_OPS011",op= 190,sd_prod=char_ther, ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 11/01/2005 AUTEUR VABHHTS J.PELLET +#& MODIF COMMANDE DATE 16/05/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -3904,7 +4494,6 @@ AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther 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_sdaster) ), TEMP_IMPO =FACT(statut='f',max='**', @@ -3930,7 +4519,7 @@ AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther 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 ), + CARA_TORSION =SIMP(statut='f',typ=table_sdaster), ), @@ -3972,7 +4561,7 @@ AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), SOUR =SIMP(statut='f',typ='R'), - SOUR_CALCULEE =SIMP(statut='f',typ=(cham_elem_sour_r) ), + SOUR_CALCULEE =SIMP(statut='f',typ=(cham_elem) ), ), GRAD_TEMP_INIT =FACT(statut='f',max='**', @@ -4078,13 +4667,13 @@ AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther ), CONVECTION =FACT(statut='f',max='**', - VITESSE =SIMP(statut='o',typ=(cham_no_depl_r) ), + VITESSE =SIMP(statut='o',typ=(cham_no_sdaster) ), ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS +#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -4103,13 +4692,13 @@ AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther # 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, ...)", + fr="Affectation de charges et conditions aux limites thermiques fonction d'un (ou plusieurs)" + +" paramètres (temps, ...)", reentrant='n', UIinfo={"groupes":("Modélisation",)}, regles=(AU_MOINS_UN('TEMP_IMPO','SOURCE','FLUX_REP','FLUX_NL','ECHANGE', 'ECHANGE_PAROI','LIAISON_DDL','LIAISON_GROUP','LIAISON_UNIF', 'GRAD_TEMP_INIT','RAYONNEMENT'),), - VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), MODELE =SIMP(statut='o',typ=(modele_sdaster) ), TEMP_IMPO =FACT(statut='f',max='**', @@ -4274,12 +4863,12 @@ AFFE_CHAR_THER_F=OPER(nom="AFFE_CHAR_THER_F",op=33,sd_prod=char_ther, ), CONVECTION =FACT(statut='f',max='**', - VITESSE =SIMP(statut='o',typ=(cham_no_depl_r) ), + VITESSE =SIMP(statut='o',typ=cham_no_sdaster ), ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 25/04/2006 AUTEUR CIBHHPD L.SALMONA # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -4299,11 +4888,14 @@ AFFE_CHAR_THER_F=OPER(nom="AFFE_CHAR_THER_F",op=33,sd_prod=char_ther, # ====================================================================== # 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", + fr="Affecter des matériaux à des zones géométriques d'un maillage", reentrant='n', UIinfo={"groupes":("Modélisation",)}, MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), MODELE =SIMP(statut='f',typ=modele_sdaster), + + # affectation du nom du matériau : + # ------------------------------- AFFE =FACT(statut='o',max='**', regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),), TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), @@ -4313,8 +4905,117 @@ AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater, TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ), SECH_REF =SIMP(statut='f',typ='R',val_min=0.E+0), ), + + # affectation des variables de commande : + # -------------------------------------------------- + # un mot clé caché qui ne sert qu'à boucler sur les VARC possibles : + LIST_NOM_VARC =SIMP(statut='c',typ='TXM', defaut=("CORR","IRRA","HYDR","NEUT1","NEUT2")), + + AFFE_VARC =FACT(statut='f',max='**', + + regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('GROUP_MA','TOUT'), + PRESENT_ABSENT('MAILLE','TOUT'), + UN_PARMI('EVOL','CHAMP_GD'),), + + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), # [défaut] + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + + CHAMP_GD =SIMP(statut='f',typ=cham_gd_sdaster,), + B_CHAMP_GD =BLOC(condition="CHAMP_GD!=None", + NOM_VARC =SIMP(statut='o',typ='TXM', into=("CORR","IRRA","HYDR","NEUT1","NEUT2")), + ), + EVOL =SIMP(statut='f',typ=evol_sdaster,), + B_EVOL =BLOC(condition="EVOL!=None", + NOM_VARC =SIMP(statut='o',typ='TXM', into=("CORR","IRRA","HYDR","NEUT1","NEUT2")), + B_NOM_CORR =BLOC(condition="NOM_VARC=='CORR'", NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'CORR',),), + B_NOM_IRRA =BLOC(condition="NOM_VARC=='IRRA'", NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'IRRA',),), + B_NOM_HYDR =BLOC(condition="NOM_VARC=='HYDR'", NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'HYDR_ELNO_ELGA',),), + B_NOM_NEUT1 =BLOC(condition="NOM_VARC=='NEUT1'", NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'NEUT',),), + B_NOM_NEUT2 =BLOC(condition="NOM_VARC=='NEUT2'", NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'NEUT',),), + PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), + PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), + ), + VALE_REF =SIMP(statut='f',typ='R'), + ), + + # mots clés cachés pour les variables de commande NEUTi : + # ------------------------------------------------------- + VARC_NEUT1 =FACT(statut='d', + NOM_VARC =SIMP(statut='c',typ='TXM',defaut="NEUT1"), + GRANDEUR =SIMP(statut='c',typ='TXM',defaut="NEUT_R"), + CMP_GD =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("X1")), + CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("NEUT1")), + ), + VARC_NEUT2 =FACT(statut='d', + NOM_VARC =SIMP(statut='c',typ='TXM',defaut="NEUT2"), + GRANDEUR =SIMP(statut='c',typ='TXM',defaut="NEUT_R"), + CMP_GD =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("X1")), + CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("NEUT2")), + ), + + # mots clés cachés pour variable de commande TEMP : + # -------------------------------------------------- + VARC_TEMP =FACT(statut='d', + NOM_VARC =SIMP(statut='c',typ='TXM',defaut="TEMP"), + GRANDEUR =SIMP(statut='c',typ='TXM',defaut="TEMP_R"), + CMP_GD =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("TEMP",)), + CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("TEMP",)), + ), + + # mots clés cachés pour variable de commande SECH : + # -------------------------------------------------- + VARC_SECH =FACT(statut='d', + NOM_VARC =SIMP(statut='c',typ='TXM',defaut="SECH"), + GRANDEUR =SIMP(statut='c',typ='TXM',defaut="TEMP_R"), + CMP_GD =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("TEMP",)), + CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("SECH",)), + VALE_DEF =SIMP(statut='c',typ='R',max=1,min=1,defaut=(0.,)), + ), + + # mots clés cachés pour variable de commande HYDR : + # -------------------------------------------------- + VARC_HYDR =FACT(statut='d', + NOM_VARC =SIMP(statut='c',typ='TXM',defaut="HYDR"), + GRANDEUR =SIMP(statut='c',typ='TXM',defaut="HYDR_R"), + CMP_GD =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("HYDR",)), + CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("HYDR",)), + VALE_DEF =SIMP(statut='c',typ='R',max=1,min=1,defaut=(0.,)), + ), + + # mots clés cachés pour variable de commande CORR : + # -------------------------------------------------- + VARC_CORR =FACT(statut='d', + NOM_VARC =SIMP(statut='c',typ='TXM',defaut="CORR"), + GRANDEUR =SIMP(statut='c',typ='TXM',defaut="CORR_R"), + CMP_GD =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("CORR",)), + CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("CORR",)), + ), + + # mots clés cachés pour variable de commande IRRA : + # -------------------------------------------------- + VARC_IRRA =FACT(statut='d', + NOM_VARC =SIMP(statut='c',typ='TXM',defaut="IRRA"), + GRANDEUR =SIMP(statut='c',typ='TXM',defaut="IRRA_R"), + CMP_GD =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("IRRA",)), + CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("IRRA",)), + VALE_DEF =SIMP(statut='c',typ='R',max=1,min=1,defaut=(0.,)), + ), + + # mots clés cachés pour variable de commande EPSA : + # -------------------------------------------------- + VARC_EPSA =FACT(statut='d', + NOM_VARC =SIMP(statut='c',typ='TXM',defaut="EPSA"), + GRANDEUR =SIMP(statut='c',typ='TXM',defaut="EPSI_R"), + CMP_GD =SIMP(statut='c',typ='TXM',max=6,min=6,defaut=("EPXX","EPYY","EPZZ","EPXY","EPXZ","EPYZ",)), + CMP_VARC =SIMP(statut='c',typ='TXM',max=6,min=6,defaut=("EPXX","EPYY","EPZZ","EPXY","EPXZ","EPYZ",)), + VALE_DEF =SIMP(statut='c',typ='R',max=6,min=6,defaut=( 0., 0., 0., 0., 0., 0., )), + ), ) ; -#& MODIF COMMANDE DATE 26/04/2005 AUTEUR LAVERNE J.LAVERNE + + +#& MODIF COMMANDE DATE 09/05/2006 AUTEUR JMBHH01 J.M.PROIX # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -4335,7 +5036,7 @@ AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater, # RESPONSABLE JMBHH01 J.M.PROIX AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster, UIinfo={"groupes":("Modélisation",)}, - fr="Affectation des éléments finis sur le maillage",reentrant='n', + fr="Définir le phénomène physique modélisé et le type d'éléments finis sur le maillage",reentrant='n', regles=(AU_MOINS_UN('AFFE','AFFE_SOUS_STRUC'),), MAILLAGE =SIMP(statut='o',typ=(maillage_sdaster) ), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), @@ -4369,37 +5070,26 @@ AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster, "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", "3D_XFEM", - "APPUI_REP", - "ASSE_GRIL", "AXIS", "AXIS_FLUI_STRU", "AXIS_FLUIDE", "AXIS_FOURIER", - "AXIS_HHM", - "AXIS_HM", "AXIS_INCO", "AXIS_NS", "AXIS_SI", - "AXIS_THH", - "AXIS_THHM", - "AXIS_THM", "AXIS_GRAD_VARI", "AXIS_JOINT", "AXIS_ELDI", "BARRE", "2D_BARRE", "C_PLAN", + "C_PLAN_X", "C_PLAN_NS", "C_PLAN_SI", "C_PLAN_GRAD_EPSI", @@ -4411,43 +5101,15 @@ AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster, "COQUE_C_PLAN", "COQUE_D_PLAN", "D_PLAN", + "D_PLAN_X", "D_PLAN_GRAD_EPSI", "D_PLAN_GRAD_VARI", "D_PLAN_NS", "PLAN_JOINT", "PLAN_ELDI", "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_HH2MD", - "AXIS_HHMD", - "AXIS_HMD", - "AXIS_THHD", - "AXIS_THH2D", - "AXIS_THVD", - "AXIS_THHMD", - "AXIS_THH2MD", - "AXIS_THMD", - "D_PLAN_HHMD", - "D_PLAN_HH2MD", - "D_PLAN_HMD", - "D_PLAN_THHD", - "D_PLAN_THH2D", - "D_PLAN_THVD", - "D_PLAN_THH2MD", - "D_PLAN_THHMD", - "D_PLAN_THMD", "DIS_T", "DIS_TR", "DKT", @@ -4466,7 +5128,78 @@ AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster, "Q4G", "TUYAU_3M", "TUYAU_6M", - "SHB8" + "SHB8", + "D_PLAN_HHM", + "D_PLAN_HM", + "D_PLAN_THH", + "D_PLAN_THHM", + "D_PLAN_THM", + "D_PLAN_HHMD", + "D_PLAN_HH2MD", + "D_PLAN_HMD", + "D_PLAN_THHD", + "D_PLAN_THH2D", + "D_PLAN_THVD", + "D_PLAN_THH2MD", + "D_PLAN_THHMD", + "D_PLAN_THMD", + "D_PLAN_HHMS", + "D_PLAN_HH2MS", + "D_PLAN_HMS", + "D_PLAN_THHS", + "D_PLAN_THH2S", + "D_PLAN_THVS", + "D_PLAN_THH2MS", + "D_PLAN_THHMS", + "D_PLAN_THMS", + "AXIS_THH", + "AXIS_THHM", + "AXIS_THM", + "AXIS_HHM", + "AXIS_HM", + "AXIS_HH2MD", + "AXIS_HHMD", + "AXIS_HMD", + "AXIS_THHD", + "AXIS_THH2D", + "AXIS_THVD", + "AXIS_THHMD", + "AXIS_THH2MD", + "AXIS_THMD", + "AXIS_HH2MS", + "AXIS_HHMS", + "AXIS_HMS", + "AXIS_THHS", + "AXIS_THH2S", + "AXIS_THVS", + "AXIS_THHMS", + "AXIS_THH2MS", + "AXIS_THMS", + "3D_HHM" , + "3D_HM", + "3D_THH", + "3D_THV", + "3D_THHM", + "3D_THM", + "3D_HHMD", + "3D_HMD", + "3D_THHD", + "3D_THVD", + "3D_THHMD", + "3D_THMD", + "3D_HHMS", + "3D_HMS", + "3D_THHS", + "3D_THVS", + "3D_THHMS", + "3D_THMS", + "3D_THH2MD", + "3D_THH2MS", + "3D_HH2MD", + "3D_HH2MS", + "3D_THH2S", + "3D_THH2D", + ) ) ), b_thermique =BLOC( condition = "PHENOMENE=='THERMIQUE'", @@ -4493,7 +5226,7 @@ AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster, ), ) ; -#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -4513,7 +5246,8 @@ AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster, # ====================================================================== AIDE=PROC(nom="AIDE",op=42, UIinfo={"groupes":("Modélisation",)}, - fr="Interrogation sur le catalogue des commandes et les concepts produits", + fr="Interroger et imprimer une documentation partielle sur les noms des concepts déjà définis et sur les couples" + +" (type d'éléments, option) disponibles dans la version.", regles=(AU_MOINS_UN('CONCEPT','TYPE_ELEM', ),), UNITE =SIMP(statut='f',typ='I',defaut=8), TYPE_ELEM =FACT(fr="couple type_elem option",statut='f', @@ -4525,7 +5259,7 @@ AIDE=PROC(nom="AIDE",op=42, into=("TOUT_TYPE","CREER","A_CREER",) ), ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -4545,7 +5279,7 @@ AIDE=PROC(nom="AIDE",op=42, # ====================================================================== # RESPONSABLE VABHHTS J.PELLET ASSE_MAILLAGE=OPER(nom="ASSE_MAILLAGE",op= 105,sd_prod=maillage_sdaster, - fr="Assembler deux maillages sous un seul nom", + fr="Assembler deux maillages pour en former un nouveau", reentrant='n', UIinfo={"groupes":("Maillage",)}, MAILLAGE_1 = SIMP(statut='o',typ=maillage_sdaster,), @@ -4586,7 +5320,7 @@ ASSE_MATR_GENE=OPER(nom="ASSE_MATR_GENE",op= 128,sd_prod=matr_asse_gene_r, OPTION =SIMP(statut='o',typ='TXM',into=("RIGI_GENE","MASS_GENE","AMOR_GENE") ), ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -4613,7 +5347,7 @@ def asse_matrice_prod(MATR_ELEM,**args): raise AsException("type de concept resultat non prevu") ASSE_MATRICE=OPER(nom="ASSE_MATRICE",op=12,sd_prod=asse_matrice_prod, - fr="Construction d une matrice assemblée",reentrant='n', + fr="Construction d'une matrice assemblée",reentrant='n', UIinfo={"groupes":("Matrices/vecteurs",)}, MATR_ELEM =SIMP(statut='o', typ=(matr_elem_depl_r,matr_elem_depl_c,matr_elem_temp_r,matr_elem_pres_c) ), @@ -4621,7 +5355,7 @@ ASSE_MATRICE=OPER(nom="ASSE_MATRICE",op=12,sd_prod=asse_matrice_prod, 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 18/04/2005 AUTEUR NICOLAS O.NICOLAS +#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -4639,8 +5373,8 @@ ASSE_MATRICE=OPER(nom="ASSE_MATRICE",op=12,sd_prod=asse_matrice_prod, # 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_r, - fr="Assemblage de vecteurs de chargement en coordonnées généralisées", +ASSE_VECT_GENE=OPER(nom="ASSE_VECT_GENE",op= 140,sd_prod=vect_asse_gene, + fr="Projection des chargements sur la base modale d'une sous structure", reentrant='n', UIinfo={"groupes":("Matrices/vecteurs",)}, NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), @@ -4648,11 +5382,11 @@ ASSE_VECT_GENE=OPER(nom="ASSE_VECT_GENE",op= 140,sd_prod=vect_asse_gene_r, b_nume =BLOC(condition = "METHODE == 'CLASSIQUE'", CHAR_SOUS_STRUC =FACT(statut='o',max='**', SOUS_STRUC =SIMP(statut='o',typ='TXM' ), - VECT_ASSE =SIMP(statut='o',typ=cham_no_depl_r ), + VECT_ASSE =SIMP(statut='o',typ=cham_no_sdaster ), ), ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -4671,21 +5405,15 @@ ASSE_VECT_GENE=OPER(nom="ASSE_VECT_GENE",op= 140,sd_prod=vect_asse_gene_r, # 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",reentrant='n', + +ASSE_VECTEUR=OPER(nom="ASSE_VECTEUR",op=13,sd_prod=cham_no_sdaster, + fr="Construire un champ aux noeuds par assemblage de vecteurs élémentaires",reentrant='n', UIinfo={"groupes":("Matrices/vecteurs",)}, VECT_ELEM =SIMP(statut='o',typ=vect_elem,max='**'), NUME_DDL =SIMP(statut='o',typ=nume_ddl_sdaster ), INFO =SIMP(statut='f',typ='I',into=(1,2,) ), ) ; -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS +#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -4733,7 +5461,7 @@ CALC_AMOR_MODAL=OPER(nom="CALC_AMOR_MODAL",op= 172,sd_prod=listr8_sdaster, COOR_CENTRE =SIMP(statut='f',typ='R',max=3), ), AMOR_INTERNE =FACT(statut='o', - ENER_POT =SIMP(statut='o',typ=tabl_ener_pot ), + ENER_POT =SIMP(statut='o',typ=table_sdaster ), GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), AMOR_REDUIT =SIMP(statut='o',typ='R',max='**'), ), @@ -4744,7 +5472,7 @@ CALC_AMOR_MODAL=OPER(nom="CALC_AMOR_MODAL",op= 172,sd_prod=listr8_sdaster, SEUIL =SIMP(statut='f',typ='R',defaut= 0.3 ), ), ) ; -#& MODIF COMMANDE DATE 24/01/2005 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 16/05/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -4763,28 +5491,9 @@ CALC_AMOR_MODAL=OPER(nom="CALC_AMOR_MODAL",op= 172,sd_prod=listr8_sdaster, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== # RESPONSABLE JMBHH01 J.M.PROIX -def calc_cham_elem_prod(OPTION,**args): - - -# options thermiques - - if OPTION == "FLUX_ELGA_TEMP" : return cham_elem_flux_r - if OPTION == "FLUX_ELNO_TEMP" : return cham_elem_flux_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", +CALC_CHAM_ELEM=OPER(nom="CALC_CHAM_ELEM",op=38,sd_prod=cham_elem, + fr="Calculer un champ élémentaire en thermique et en accoustique à partir de champs déjà calculés", reentrant='n', UIinfo={"groupes":("Post traitements",)}, MODELE =SIMP(statut='o',typ=modele_sdaster), @@ -4807,11 +5516,11 @@ CALC_CHAM_ELEM=OPER(nom="CALC_CHAM_ELEM",op=38,sd_prod=calc_cham_elem_prod, "COOR_ELGA"), ), b_thermique =BLOC(condition="OPTION in ('FLUX_ELNO_TEMP','FLUX_ELGA_TEMP',)", - TEMP =SIMP(statut='o',typ=(cham_no_temp_r,)), + TEMP =SIMP(statut='o',typ=(cham_no_sdaster,)), ), b_acoustique =BLOC(condition="OPTION in ('PRES_ELNO_DBEL','PRES_ELNO_REEL','PRES_ELNO_IMAG',)", - PRES =SIMP(statut='o',typ=(cham_no_pres_c,)), + PRES =SIMP(statut='o',typ=(cham_no_sdaster,)), ), @@ -4823,13 +5532,13 @@ CALC_CHAM_ELEM=OPER(nom="CALC_CHAM_ELEM",op=38,sd_prod=calc_cham_elem_prod, 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), + ACCE =SIMP(statut='f',typ=cham_no_sdaster), NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1), NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY") ), MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ), ANGLE =SIMP(statut='f',typ='I',defaut= 0), ) ; -#& MODIF COMMANDE DATE 24/01/2005 AUTEUR LEBOUVIE F.LEBOUVIER +#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -4848,13 +5557,8 @@ CALC_CHAM_ELEM=OPER(nom="CALC_CHAM_ELEM",op=38,sd_prod=calc_cham_elem_prod, # 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, +CALC_CHAR_CINE=OPER(nom="CALC_CHAR_CINE",op= 102,sd_prod=cham_no_sdaster, fr="Calcul des seconds membres associés à des charges cinématiques (conditions aux limites non dualisées)", reentrant='n', UIinfo={"groupes":("Matrices/vecteurs",)}, @@ -4863,7 +5567,7 @@ CALC_CHAR_CINE=OPER(nom="CALC_CHAR_CINE",op= 102,sd_prod=calc_char_cine_prod, INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -4882,11 +5586,11 @@ CALC_CHAR_CINE=OPER(nom="CALC_CHAR_CINE",op= 102,sd_prod=calc_char_cine_prod, # 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 + if AsType(MATR_MASS) == matr_asse_depl_r : return cham_no_sdaster raise AsException("type de concept resultat non prevu") CALC_CHAR_SEISME=OPER(nom="CALC_CHAR_SEISME",op= 92,sd_prod=calc_char_seisme_prod, - reentrant='n', + reentrant='n',fr="Calcul du chargement sismique", UIinfo={"groupes":("Matrices/vecteurs",)}, regles=(UN_PARMI('MONO_APPUI','MODE_STAT' ),), MATR_MASS =SIMP(statut='o',typ=matr_asse_depl_r,fr="Matrice de masse" ), @@ -4900,7 +5604,7 @@ CALC_CHAR_SEISME=OPER(nom="CALC_CHAR_SEISME",op= 92,sd_prod=calc_char_seisme_pr ), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 08/02/2005 AUTEUR CIBHHPD L.SALMONA +#& MODIF COMMANDE DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -4938,7 +5642,9 @@ CALC_ELEM=OPER(nom="CALC_ELEM",op=58,sd_prod=calc_elem_prod,reentrant='f', fr="Résultat d'une commande globale"), regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'),), + 'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'), + CONCEPT_SENSIBLE("SEPARE"), + DERIVABLE('RESULTAT'),), TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), @@ -4982,8 +5688,10 @@ CALC_ELEM=OPER(nom="CALC_ELEM",op=58,sd_prod=calc_elem_prod,reentrant='f', "EPOT_ELEM_DEPL","ECIN_ELEM_DEPL","ENEL_ELGA","ENEL_ELNO_ELGA", "ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM", # estimateurs erreur - "SIGM_NOZ1_ELGA","ERRE_ELEM_NOZ1","SIGM_NOZ2_ELGA","ERRE_ELEM_NOZ2", - "SIRE_ELNO_DEPL","ERRE_ELGA_NORE","ERRE_ELNO_ELGA", + "SIGM_NOZ1_ELGA","ERZ1_ELEM_SIGM","SIGM_NOZ2_ELGA","ERZ2_ELEM_SIGM", + "SIRE_ELNO_DEPL","ERRE_ELEM_SIGM","ERRE_ELNO_ELEM", + "QIRE_ELEM_SIGM","QIRE_ELNO_ELEM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM", + "SING_ELEM","SING_ELNO_ELEM", # CRIT "EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","CRIT_ELNO_RUPT", "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME", @@ -5004,7 +5712,17 @@ CALC_ELEM=OPER(nom="CALC_ELEM",op=58,sd_prod=calc_elem_prod,reentrant='f', PLAN = SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL"), fr="Plan de calcul pour les plaques excentrées" ), - + b_erre_qi =BLOC(condition = "OPTION in ('QIRE_ELEM_SIGM','QIZ1_ELEM_SIGM','QIZ2_ELEM_SIGM') or \ + (type(OPTION)==type(()) and 'QIRE_ELEM_SIGM' in OPTION) or \ + (type(OPTION)==type(()) and 'QIZ1_ELEM_SIGM' in OPTION) or \ + (type(OPTION)==type(()) and 'QIZ2_ELEM_SIGM' in OPTION)", + RESU_DUAL=SIMP(statut='o',typ=evol_elas,fr="resultat du probleme dual"),), + + b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \ + (type(OPTION)==type(()) and 'SING_ELEM' in OPTION)", + PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,val_max= 1., + fr="precision demandee pour calculer la carte de taille des elements"),), + EXCIT =FACT(statut='f',max='**', fr="Charges contenant les températures, les efforts répartis pour les poutres...", regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),), @@ -5173,11 +5891,25 @@ b_charge =BLOC( condition = "OPTION in ('EPME_ELNO_DEPL','EPSI_ELGA_DEPL','EPME_ ), b_indi_erre =BLOC( condition = "TYPE_OPTION=='INDI_ERRE'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="ERRE_ELGA_NORE", - into=("SIGM_NOZ1_ELGA","ERRE_ELEM_NOZ1","SIGM_NOZ2_ELGA","ERRE_ELEM_NOZ2", - "SIRE_ELNO_DEPL","ERRE_ELGA_NORE","ERRE_ELNO_ELGA", - ) ), - EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="ERRE_ELEM_SIGM", + into=("SIGM_NOZ1_ELGA","ERZ1_ELEM_SIGM","SIGM_NOZ2_ELGA","ERZ2_ELEM_SIGM", + "SIRE_ELNO_DEPL","ERRE_ELEM_SIGM","ERRE_ELNO_ELEM", + "QIRE_ELEM_SIGM","QIRE_ELNO_ELEM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM", + "SING_ELEM","SING_ELNO_ELEM", + )), + + b_erre_qi =BLOC(condition = "OPTION in ('QIRE_ELEM_SIGM','QIZ1_ELEM_SIGM','QIZ2_ELEM_SIGM') or \ + (type(OPTION)==type(()) and 'QIRE_ELEM_SIGM' in OPTION) or \ + (type(OPTION)==type(()) and 'QIZ1_ELEM_SIGM' in OPTION) or \ + (type(OPTION)==type(()) and 'QIZ2_ELEM_SIGM' in OPTION)", + RESU_DUAL=SIMP(statut='o',typ=evol_elas,fr="resultat du probleme dual"),), + + b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \ + (type(OPTION)==type(()) and 'SING_ELEM' in OPTION)", + PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,val_max=1., + fr="precision demandee pour calculer la de taille des elements" ),), + + EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures", CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), ), ), @@ -5205,11 +5937,12 @@ b_charge =BLOC( condition = "OPTION in ('EPME_ELNO_DEPL','EPSI_ELGA_DEPL','EPME_ "EXTR_ELGA_VARI","EXTR_ELNO_VARI", # CRIT "EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO", - "ERRE_ELGA_NORE","ERRE_ELNO_ELGA","ERRE_ELEM_NOZ1","ERRE_ELEM_NOZ2", + "ERRE_ELEM_SIGM","ERRE_ELNO_ELEM","ERZ1_ELEM_SIGM","ERZ2_ELEM_SIGM", + "QIRE_ELEM_SIGM","QIRE_ELNO_ELEM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM", "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME", "DCHA_ELNO_SIGM","DCHA_ELGA_SIGM","RADI_ELNO_SIGM","RADI_ELGA_SIGM", - "ENDO_ELGA","ENDO_ELNO_ELGA","INDI_LOCA_ELGA", - "ENDO_ELNO_SIGA","ENDO_ELNO_SINO", + "ENDO_ELGA","ENDO_ELNO_ELGA","INDI_LOCA_ELGA","SING_ELEM", + "SING_ELNO_ELEM","ENDO_ELNO_SIGA","ENDO_ELNO_SINO", "PMPB_ELNO_SIEF","PMPB_ELGA_SIEF","ENEL_ELGA","ENEL_ELNO_ELGA", "ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM","VALE_NCOU_MAXI"), ), @@ -5224,7 +5957,19 @@ b_charge =BLOC( condition = "OPTION in ('EPME_ELNO_DEPL','EPSI_ELGA_DEPL','EPME_ NOM_CHAM =SIMP(statut='f',typ='TXM',fr="Nom du champ pour VALE_NCOU_MAXI"), NOM_CMP =SIMP(statut='f',typ='TXM',fr="Nom de la composante pour VALE_NCOU_MAXI"), PLAN = SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL") ), - + + b_erre_qi =BLOC(condition = "OPTION in ('QIRE_ELEM_SIGM','QIZ1_ELEM_SIGM','QIZ2_ELEM_SIGM') or \ + (type(OPTION)==type(()) and 'QIRE_ELEM_SIGM' in OPTION) or \ + (type(OPTION)==type(()) and 'QIZ1_ELEM_SIGM' in OPTION) or \ + (type(OPTION)==type(()) and 'QIZ2_ELEM_SIGM' in OPTION)", + RESU_DUAL=SIMP(statut='o',typ=(evol_elas,evol_noli),fr="resultat du probleme dual"),), + + b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \ + (type(OPTION)==type(()) and 'SING_ELEM' in OPTION)", + PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,val_max=1., + fr="precision demandee pour calculer la carte de taille des elements" ),), + + b_extr = BLOC( condition = "OPTION in ('EXTR_ELNO_VARI','EXTR_ELGA_VARI')", NOM_VARI =SIMP(statut='o',typ='TXM',min= 1,max=1,fr="nom de la variable à extraire", into=("DPORO","DRHOLQ","DPVP","SATLIQ","EVP","IND_ETA","D","IND_END","TEMP_MAX","GAMP","PCR", @@ -5364,10 +6109,23 @@ b_charge =BLOC( condition = "OPTION in ('EPME_ELNO_DEPL','EPSI_ELGA_DEPL','EPME_ b_indi_erre =BLOC( condition = "TYPE_OPTION=='INDI_ERRE'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="ERRE_ELGA_NORE", - into=("ERRE_ELGA_NORE","ERRE_ELNO_ELGA","ERRE_ELEM_NOZ1","ERRE_ELEM_NOZ2", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="ERRE_ELEM_SIGM", + into=("ERRE_ELEM_SIGM","ERRE_ELNO_ELEM","ERZ1_ELEM_SIGM","ERZ2_ELEM_SIGM", "DCHA_ELNO_SIGM","DCHA_ELGA_SIGM","RADI_ELNO_SIGM","RADI_ELGA_SIGM", - ) ), + "QIRE_ELEM_SIGM","QIRE_ELNO_ELEM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM", + "SING_ELEM","SING_ELNO_ELEM",) ), + + b_erre_qi =BLOC(condition = "OPTION in ('QIRE_ELEM_SIGM','QIZ1_ELEM_SIGM','QIZ2_ELEM_SIGM') or \ + (type(OPTION)==type(()) and 'QIRE_ELEM_SIGM' in OPTION) or \ + (type(OPTION)==type(()) and 'QIZ1_ELEM_SIGM' in OPTION) or \ + (type(OPTION)==type(()) and 'QIZ2_ELEM_SIGM' in OPTION)", + RESU_DUAL =SIMP(statut='o',typ=(evol_elas,evol_noli),fr="resultat du probleme dual")), + + b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \ + (type(OPTION)==type(()) and 'SING_ELEM' in OPTION)", + PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,val_max=1., + fr="precision demandee pour calculer la carte de taille des elements" ),), + b_indic = BLOC( condition ="OPTION in ('DCHA_ELNO_SIGM','DCHA_ELGA_SIGM','RADI_ELNO_SIGM','RADI_ELGA_SIGM') or\ (type(OPTION)==type(()) and 'DCHA_ELNO_SIGM' in OPTION) or\ (type(OPTION)==type(()) and 'DCHA_ELGA_SIGM' in OPTION) or\ @@ -5385,7 +6143,7 @@ b_charge =BLOC( condition = "OPTION in ('EPME_ELNO_DEPL','EPSI_ELGA_DEPL','EPME_ OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', into=("DEUL_ELGA_TEMP","DETE_ELNO_DLTE","FLUX_ELGA_TEMP","FLUX_ELNO_TEMP", "HYDR_ELNO_ELGA","DURT_ELGA_META","DURT_ELNO_META", - "SOUR_ELGA_ELEC","ERTH_ELEM_TEMP","ERTH_ELNO_ELEM",),), + "SOUR_ELGA_ELEC","ERRE_ELEM_TEMP","ERRE_ELNO_ELEM",),), EXCIT =FACT(statut='f',max='**', regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),), CHARGE =SIMP(statut='o',typ=char_ther ), @@ -5419,14 +6177,14 @@ b_charge =BLOC( condition = "OPTION in ('EPME_ELNO_DEPL','EPSI_ELGA_DEPL','EPME_ PUIS_PULS =SIMP(statut='f',typ='I'), TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),), ), - + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', fr="Liste des paramètres de sensibilité.", ang="List of sensitivity parameters"), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 10/01/2005 AUTEUR F1BHHAJ J.ANGLES +#& MODIF COMMANDE DATE 16/05/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -5445,13 +6203,14 @@ b_charge =BLOC( condition = "OPTION in ('EPME_ELNO_DEPL','EPSI_ELGA_DEPL','EPME_ # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== def calc_fatigue_prod(TYPE_CALCUL,OPTION,**args): - if TYPE_CALCUL == "CUMUL_DOMMAGE" : return cham_elem_dommag - if TYPE_CALCUL == "FATIGUE_MULTI" and OPTION == "DOMA_ELGA": return cham_elem_facy_r - if TYPE_CALCUL == "FATIGUE_MULTI" and OPTION == "DOMA_NOEUD": return cham_no_facy_r + if TYPE_CALCUL == "CUMUL_DOMMAGE" : return cham_elem + if TYPE_CALCUL == "FATIGUE_MULTI" and OPTION == "DOMA_ELGA": return cham_elem + if TYPE_CALCUL == "FATIGUE_MULTI" and OPTION == "DOMA_NOEUD": return cham_no_sdaster raise AsException("type de calcul non prevu") CALC_FATIGUE=OPER(nom="CALC_FATIGUE",op= 151,sd_prod=calc_fatigue_prod,reentrant='n', - fr="Calcul d un cham de dommage ou d un cisaillement maximal dans le plan critique.", + fr="Calculer un champ de dommage de fatigue subit par une structure et déterminer le plan critique" + +" dans lequel le cisaillement est maximal.", UIinfo={"groupes":("Post traitements",)}, TYPE_CALCUL = SIMP(statut='o',typ='TXM', @@ -5494,9 +6253,9 @@ CALC_FATIGUE=OPER(nom="CALC_FATIGUE",op= 151,sd_prod=calc_fatigue_prod,reentrant METHODE =SIMP(statut='o',typ='TXM',into=("CERCLE_EXACT",) ), ), b_non_period =BLOC(condition = "TYPE_CHARGE == 'NON_PERIODIQUE'", - CRITERE =SIMP(statut='o',typ='TXM',into=("DOMM_MAXI","DANG_VAN_MODI_AV") ), + CRITERE =SIMP(statut='o',typ='TXM',into=("DOMM_MAXI","DANG_VAN_MODI_AV","FATEMI_SOCIE") ), PROJECTION =SIMP(statut='o',typ='TXM',into=("UN_AXE", "DEUX_AXES") ), - DELTA_OSCI = SIMP(statut='f',typ='R',defaut= 0.0E+0), + DELTA_OSCI =SIMP(statut='f',typ='R',defaut= 0.0E+0), ), b_fati_grmano =BLOC(condition = "(GROUP_MA != None or MAILLE != None or GROUP_NO != None or NOEUD != None)", MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), @@ -5505,7 +6264,7 @@ CALC_FATIGUE=OPER(nom="CALC_FATIGUE",op= 151,sd_prod=calc_fatigue_prod,reentrant INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -5525,20 +6284,22 @@ CALC_FATIGUE=OPER(nom="CALC_FATIGUE",op= 151,sd_prod=calc_fatigue_prod,reentrant # ====================================================================== CALC_FLUI_STRU=OPER(nom="CALC_FLUI_STRU",op= 144,sd_prod=melasflu_sdaster, reentrant='n', + fr="Calculer les paramètres modaux d'une structure soumise à un écoulement", UIinfo={"groupes":("Matrices/vecteurs",)}, - VITE_FLUI =FACT(statut='o', + VITE_FLUI =FACT(statut='f', 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' ), + VITE_MIN =SIMP(statut='f',typ='R' ), + VITE_MAX =SIMP(statut='f',typ='R' ), + NB_POIN =SIMP(statut='f',typ='I' ), ), BASE_MODALE =FACT(statut='o', - regles=(UN_PARMI('AMOR_REDUIT','AMOR_UNIF'),), + regles=(AU_MOINS_UN('AMOR_REDUIT','AMOR_UNIF','AMOR_REDUIT_CONN'),), MODE_MECA =SIMP(statut='o',typ=mode_meca ), NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - AMOR_UNIF =SIMP(statut='f',typ='R' ), + AMOR_REDUIT =SIMP(statut='f',typ='R',max='**',val_min=0.E+00), + AMOR_UNIF =SIMP(statut='f',typ='R',val_min=0.E+00 ), + AMOR_REDUIT_CONN=SIMP(statut='f',typ='R',max='**',val_min=0.E+00), ), TYPE_FLUI_STRU =SIMP(statut='o',typ=type_flui_stru ), IMPRESSION =FACT(statut='f', @@ -5547,7 +6308,7 @@ CALC_FLUI_STRU=OPER(nom="CALC_FLUI_STRU",op= 144,sd_prod=melasflu_sdaster, DEFORMEE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), ), ) ; -#& MODIF COMMANDE DATE 07/03/2005 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 02/05/2006 AUTEUR MCOURTOI M.COURTOIS # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -5565,16 +6326,24 @@ CALC_FLUI_STRU=OPER(nom="CALC_FLUI_STRU",op= 144,sd_prod=melasflu_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -def calc_fonc_interp_prod(FONCTION,**args): - if AsType(FONCTION) ==nappe_sdaster : return nappe_sdaster - elif AsType(FONCTION)==fonction_sdaster : return fonction_sdaster - elif AsType(FONCTION)==fonction_c : return fonction_c - elif AsType(FONCTION)==formule : return fonction_sdaster - elif AsType(FONCTION)==para_sensi : return para_sensi - raise AsException("type de concept resultat non prevu") +def calc_fonc_interp_prod(FONCTION, NOM_PARA_FONC, **args): + if AsType(FONCTION) == nappe_sdaster: + return nappe_sdaster + elif AsType(FONCTION) == fonction_sdaster: + return fonction_sdaster + elif AsType(FONCTION) == fonction_c: + return fonction_c + elif AsType(FONCTION) == formule: + if NOM_PARA_FONC != None: + return nappe_sdaster + return fonction_sdaster + elif AsType(FONCTION) == para_sensi: + return para_sensi + raise AsException("type de concept resultat non prevu") CALC_FONC_INTERP=OPER(nom="CALC_FONC_INTERP",op= 134,sd_prod=calc_fonc_interp_prod, docu="U4.32.01-e",reentrant='n', + fr="Définit une fonction (ou une nappe) à partir d'une fonction FORMULE à 1 ou 2 variables", UIinfo={"groupes":("Fonction",)}, regles=(UN_PARMI('VALE_PARA','LIST_PARA'),), FONCTION =SIMP(statut='o',typ=(formule,fonction_sdaster,nappe_sdaster,fonction_c) ), @@ -5597,7 +6366,7 @@ CALC_FONC_INTERP=OPER(nom="CALC_FONC_INTERP",op= 134,sd_prod=calc_fonc_interp_pr TITRE =SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), ) ; -#& MODIF COMMANDE DATE 24/05/2005 AUTEUR MCOURTOI M.COURTOIS +#& MODIF COMMANDE DATE 19/09/2005 AUTEUR DURAND C.DURAND # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -5652,13 +6421,13 @@ def calc_fonction_prod(self,DERIVE,EXTRACTION,INTEGRE,INVERSE,COMB,COMB_C, if (AsType(vale) == fonction_sdaster ) : return fonction_c if (AsType(vale) == fonction_c) : return fonction_sdaster if (CORR_ACCE != None): return fonction_sdaster - if (LISS_ENVELOP!= None): return AsType(LISS_ENVELOP[0]['FONCTION']) + if (LISS_ENVELOP!= None): return nappe_sdaster if (PUISSANCE != None): return AsType(PUISSANCE[0]['FONCTION']) if (ABS != None): return fonction_sdaster raise AsException("type de concept resultat non prevu") CALC_FONCTION=MACRO(nom="CALC_FONCTION",op=calc_fonction_ops,sd_prod=calc_fonction_prod - ,fr="Opérations mathématiques sur des concepts de type fonction, fonction_c ou nappe", + ,fr="Effectue des opérations mathématiques sur des concepts de type fonction", reentrant='n', UIinfo={"groupes":("Fonction",)}, regles=(UN_PARMI('DERIVE','INTEGRE','SPEC_OSCI','COMB','COMB_C','ENVELOPPE', @@ -5681,29 +6450,11 @@ CALC_FONCTION=MACRO(nom="CALC_FONCTION",op=calc_fonction_ops,sd_prod=calc_foncti COEF =SIMP(statut='f',typ='R',defaut= 0.E+0,fr="Valeur de la constante d intégration" ), ), LISS_ENVELOP = FACT(statut='f',fr="Lissage d une enveloppe", - FONCTION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster) ), - AMOR =SIMP(statut='f',typ='R',max='**'), - FREQ_MIN =SIMP(statut='f',typ='R'), - FREQ_MAX =SIMP(statut='f',typ='R'), - 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 ), - ), - 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_sdaster ), - AMOR_ECH =SIMP(statut='f',typ='R',max='**'), - ), + NAPPE =SIMP(statut='o',typ=nappe_sdaster ), + FREQ_MIN =SIMP(statut='f',typ='R',defaut =0.2), + FREQ_MAX =SIMP(statut='f',typ='R',defaut =35.5), + ELARG =SIMP(statut='f',typ='R',defaut =0.1 ), + TOLE_LISS =SIMP(statut='f',typ='R',defaut =0.25 ), ), SPEC_OSCI =FACT(statut='f',fr="Spectre d'oscillateur", METHODE =SIMP(statut='f',typ='TXM',defaut="NIGAM",into=("NIGAM",) ), @@ -5769,7 +6520,7 @@ CALC_FONCTION=MACRO(nom="CALC_FONCTION",op=calc_fonction_ops,sd_prod=calc_foncti PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), ) -#& MODIF COMMANDE DATE 22/02/2005 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -5787,8 +6538,9 @@ CALC_FONCTION=MACRO(nom="CALC_FONCTION",op=calc_fonction_ops,sd_prod=calc_foncti # 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_r, - fr="calcul de la force ajoutee ", +CALC_FORC_AJOU=OPER(nom="CALC_FORC_AJOU",op=199,sd_prod=vect_asse_gene, + fr="Calculer l'effet de surpression hydrodynamique due au mouvement d'entrainement de la structure" + +" en analyse sismique", reentrant ='n', UIinfo={"groupes":("Matrices/vecteurs",)}, @@ -5841,178 +6593,83 @@ CALC_FORC_AJOU=OPER(nom="CALC_FORC_AJOU",op=199,sd_prod=vect_asse_gene_r, ), ) ; -#& MODIF COMMANDE DATE 11/10/2004 AUTEUR LEBOUVIE F.LEBOUVIER +#& MODIF COMMANDE DATE 29/05/2006 AUTEUR GALENNE E.GALENNE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_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",reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - MODELE =SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - regles=(UN_PARMI('RESULTAT','DEPL'), - PRESENT_PRESENT('VITE','ACCE'), - UN_PARMI('R_INF','R_INF_FO'), - PRESENT_PRESENT('R_INF','R_SUP'), - PRESENT_PRESENT('R_INF_FO','R_SUP_FO'), ), - FOND_FISS =SIMP(statut='f',typ=fond_fiss), - DEPL =SIMP(statut='f',typ=cham_no_depl_r), - VITE =SIMP(statut='f',typ=cham_no_depl_r), - ACCE =SIMP(statut='f',typ=cham_no_depl_r), - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,dyna_trans),), - b_extrac =BLOC(condition="RESULTAT != None",fr="extraction d un champ", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - - b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - ), - EXCIT =FACT(statut='f',max='**', - CHARGE =SIMP(statut='o',typ=(char_meca,char_cine_meca)), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), - ), - SYME_CHAR =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","ANTI","SANS") ), - - COMP_ELAS =FACT(statut='f', - RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS", - into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC") ), - ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - ELAS_VMIS_LINE =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - ELAS_VMIS_TRAC =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN") ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), - ), - - COMP_INCR =FACT(statut='f', - RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS", - into=("ELAS","VMIS_ISOT_TRAC","VMIS_ISOT_LINE","VMIS_CINE_LINE") ), - ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - VMIS_ISOT_TRAC =SIMP(statut='f',typ='I',defaut=2,into=(2,) ), - VMIS_ISOT_LINE =SIMP(statut='f',typ='I',defaut=2,into=(2,) ), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC") ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), - ), - - ETAT_INIT =FACT(statut='f', - SIGM =SIMP(statut='f',typ=cham_elem_sief_r), - DEPL =SIMP(statut='f',typ=cham_no_depl_r), - ), - - OPTION =SIMP(statut='f',typ='TXM',defaut="CALC_G", - into=("CALC_G","CALC_K_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_k_g =BLOC(condition="OPTION=='CALC_K_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") ), - FISSURE =SIMP(statut='o',typ=fiss_xfem,max=1), - ), - b_calc_g_max =BLOC(condition="OPTION=='CALC_G_MAX'", - BORNES =FACT(statut='o',max='**', - NUME_ORDRE =SIMP(statut='o',typ='I'), - VALE_MIN =SIMP(statut='o',typ='R'), - VALE_MAX =SIMP(statut='o',typ='R'), - ), - 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_sdaster,nappe_sdaster,formule)), - R_SUP_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 11/10/2004 AUTEUR LEBOUVIE F.LEBOUVIER -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -CALC_G_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", +CALC_G=OPER(nom="CALC_G",op=100,sd_prod=table_sdaster, + fr="Calcul du taux de restitution d'énergie par la méthode theta en thermo-élasticité" + +" et les facteurs d'intensité de contraintes.", reentrant='f', UIinfo={"groupes":("Post traitements",)}, regles=(UN_PARMI('RESULTAT','DEPL'), PRESENT_PRESENT('VITE','ACCE'), - EXCLUS('COMP_ELAS','COMP_INCR'),), + EXCLUS('COMP_ELAS','COMP_INCR'), + CONCEPT_SENSIBLE("ENSEMBLE"), + REUSE_SENSIBLE(), + DERIVABLE('RESULTAT'),), MODELE =SIMP(statut='f',typ=modele_sdaster), CHAM_MATER =SIMP(statut='f',typ=cham_mater), - THETA =SIMP(statut='o',typ=(theta_geom,cham_no_depl_r),), - DEPL =SIMP(statut='f',typ=cham_no_depl_r), - VITE =SIMP(statut='f',typ=cham_no_depl_r), - ACCE =SIMP(statut='f',typ=cham_no_depl_r), - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,dyna_trans),), + + THETA =FACT(statut='o', + THETA =SIMP(statut='f',typ=(theta_geom,cham_no_sdaster),), + FOND_FISS =SIMP(statut='f',typ=fond_fiss,max=1), + FISSURE =SIMP(statut='f',typ=fiss_xfem,max=1), + regles=(EXCLUS('FOND_FISS','FISSURE'),), + b_theta =BLOC(condition="THETA == None",fr="calcul de theta", + regles=(UN_PARMI('R_INF','R_INF_FO'), + EXCLUS('MODULE','MODULE_FO'), + PRESENT_PRESENT('R_INF','R_SUP'), + PRESENT_PRESENT('R_INF_FO','R_SUP_FO'), ), + R_INF =SIMP(statut='f',typ='R'), + R_SUP =SIMP(statut='f',typ='R'), + MODULE =SIMP(statut='f',typ='R'), + DIRE_THETA =SIMP(statut='f',typ=cham_no_sdaster ), + DIRECTION =SIMP(statut='f',typ='R',max='**'), + R_INF_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + R_SUP_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MODULE_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ), + ), + + DEPL =SIMP(statut='f',typ=cham_no_sdaster), + VITE =SIMP(statut='f',typ=cham_no_sdaster), + ACCE =SIMP(statut='f',typ=cham_no_sdaster), + RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,dyna_trans,mode_meca),), b_extrac =BLOC(condition="RESULTAT != None",fr="extraction d un champ", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), + regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST', + 'TOUT_MODE','NUME_MODE','LIST_MODE','FREQ','LIST_FREQ',),), TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - - b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)", + TOUT_MODE =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + LIST_MODE =SIMP(statut='f',typ=listis_sdaster), + LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), + FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + + b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)or(FREQ != None)or(LIST_FREQ != None)", PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), ), - ), + ), EXCIT =FACT(statut='f',max='**', CHARGE =SIMP(statut='o',typ=(char_meca,char_cine_meca)), FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), @@ -6045,33 +6702,38 @@ CALC_G_THETA_T=OPER(nom="CALC_G_THETA_T",op=53,sd_prod=tabl_calc_g_th, MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), ), ETAT_INIT =FACT(statut='f', - SIGM =SIMP(statut='f',typ=cham_elem_sief_r), - DEPL =SIMP(statut='f',typ=cham_no_depl_r), + SIGM =SIMP(statut='f',typ=cham_elem), + DEPL =SIMP(statut='f',typ=cham_no_sdaster), + ), + + LISSAGE =FACT(statut='d', + DEGRE =SIMP(statut='f',typ='I',defaut=5,into=(0,1,2,3,4,5,6,7) ), + LISSAGE_THETA =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE"),), + LISSAGE_G =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE","LAGRANGE_NO_NO"),), ), - 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'", + + OPTION =SIMP(statut='o',typ='TXM',max=1,defaut='CALC_G', + into=("CALC_G","CALC_G_GLOB","CALC_K_G","K_G_MODA","G_MAX","G_MAX_GLOB","G_BILI", + "G_BILI_GLOB","G_LAGR","G_LAGR_GLOB"),), + + b_g_max =BLOC(condition="(OPTION=='G_MAX') or (OPTION=='G_MAX_GLOB')", BORNES =FACT(statut='o',max='**', NUME_ORDRE =SIMP(statut='o',typ='I'), VALE_MIN =SIMP(statut='o',typ='R'), VALE_MAX =SIMP(statut='o',typ='R'), ), ), - b_calc_k_g =BLOC(condition="OPTION=='CALC_K_G'", - FOND_FISS =SIMP(statut='o',typ=fond_fiss), - ), - b_calc_g_lagr =BLOC(condition="OPTION=='CALC_G_LAGR'", - PROPAGATION =SIMP(statut='o',typ='R'), - ), - + PROPAGATION =SIMP(statut='f',typ='R'), + THETA_LAGR =SIMP(statut='f',typ=theta_geom), + DIRE_THETA_LAGR =SIMP(statut='f',typ=cham_no_sdaster), SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', fr="Liste des paramètres de sensibilité.", ang="List of sensitivity parameters"), TITRE =SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS +); +#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -6089,8 +6751,8 @@ CALC_G_THETA_T=OPER(nom="CALC_G_THETA_T",op=53,sd_prod=tabl_calc_g_th, # 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", +CALC_INTE_SPEC=OPER(nom="CALC_INTE_SPEC",op= 120,sd_prod=table_sdaster, + fr="Calcul d'une matrice interspectrale à partir d'une fonction du temps", reentrant='n', UIinfo={"groupes":("Fonction",)}, INST_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), @@ -6102,7 +6764,7 @@ CALC_INTE_SPEC=OPER(nom="CALC_INTE_SPEC",op= 120,sd_prod=tabl_intsp, TITRE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -6121,7 +6783,7 @@ CALC_INTE_SPEC=OPER(nom="CALC_INTE_SPEC",op= 120,sd_prod=tabl_intsp, # 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", + fr="Calcul des matrices de masse, d'amortissement ou de rigidité ajoutés", reentrant='n', UIinfo={"groupes":("Matrices/vecteurs",)}, regles=(EXCLUS('MODE_MECA','CHAM_NO','MODELE_GENE'), @@ -6132,7 +6794,7 @@ CALC_MATR_AJOU=OPER(nom="CALC_MATR_AJOU",op= 152,sd_prod=matr_asse_gene_r, 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 ), + CHAM_NO =SIMP(statut='f',typ=cham_no_sdaster ), MODELE_GENE =SIMP(statut='f',typ=modele_gene ), NUME_DDL_GENE =SIMP(statut='f',typ=nume_ddl_gene ), DIST_REFE =SIMP(statut='f',typ='R',defaut= 1.E-2 ), @@ -6165,7 +6827,7 @@ CALC_MATR_AJOU=OPER(nom="CALC_MATR_AJOU",op= 152,sd_prod=matr_asse_gene_r, ), ), ) ; -#& MODIF COMMANDE DATE 28/01/2005 AUTEUR VABHHTS J.PELLET +#& MODIF COMMANDE DATE 16/05/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -6199,6 +6861,7 @@ def calc_matr_elem_prod(OPTION,**args): if OPTION == "AMOR_MECA" : return matr_elem_depl_r if OPTION == "IMPE_MECA" : return matr_elem_depl_r if OPTION == "ONDE_FLUI" : return matr_elem_depl_r + if OPTION == "AMOR_MECA_ABSO" : return matr_elem_depl_r if OPTION == "RIGI_MECA_HYST" : return matr_elem_depl_c if OPTION == "RIGI_THER" : return matr_elem_temp_r if OPTION == "MASS_THER" : return matr_elem_temp_r @@ -6215,7 +6878,7 @@ CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op= 9,sd_prod=calc_matr_elem_prod OPTION =SIMP(statut='o',typ='TXM', into=("RIGI_MECA","MASS_MECA","RIGI_GEOM", "AMOR_MECA","RIGI_THER","MASS_THER","IMPE_MECA", - "ONDE_FLUI","MASS_FLUI_STRU","RIGI_FLUI_STRU", + "ONDE_FLUI","AMOR_MECA_ABSO","MASS_FLUI_STRU","RIGI_FLUI_STRU", "RIGI_ROTA","MASS_MECA_DIAG","RIGI_ACOU", "MASS_ID_MDEP_R","MASS_ID_MDNS_R","MASS_ID_MTEM_R","MASS_ID_MTNS_R", "MASS_ACOU","AMOR_ACOU","RIGI_MECA_HYST", @@ -6266,7 +6929,7 @@ CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op= 9,sd_prod=calc_matr_elem_prod b_rigi_geom =BLOC(condition = "OPTION=='RIGI_GEOM'", MODELE =SIMP(statut='o',typ=modele_sdaster ), CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - SIEF_ELGA =SIMP(statut='o',typ=cham_elem_sief_r ), + SIEF_ELGA =SIMP(statut='o',typ=cham_elem ), MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ), ), @@ -6286,7 +6949,18 @@ CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op= 9,sd_prod=calc_matr_elem_prod MASS_MECA =SIMP(statut='f',typ=matr_elem_depl_r ), CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), ), - + + b_amor_meca_abso =BLOC(condition = "OPTION=='AMOR_MECA_ABSO'", + regles=(AU_MOINS_UN('CARA_ELEM','RIGI_MECA'), + ENSEMBLE('RIGI_MECA','MASS_MECA','CHAM_MATER'), ), + MODELE =SIMP(statut='o',typ=modele_sdaster ), + CARA_ELEM =SIMP(statut='f',typ=cara_elem ), + CHAM_MATER =SIMP(statut='o',typ=cham_mater ), + RIGI_MECA =SIMP(statut='f',typ=matr_elem_depl_r ), + MASS_MECA =SIMP(statut='f',typ=matr_elem_depl_r ), + CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), + ), + b_rigi_meca_hyst =BLOC( condition = "OPTION=='RIGI_MECA_HYST'", MODELE =SIMP(statut='o',typ=modele_sdaster ), CHARGE =SIMP(statut='f',typ=char_meca ,validators=NoRepeat(),max='**' ), @@ -6345,7 +7019,7 @@ CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op= 9,sd_prod=calc_matr_elem_prod CHARGE =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**' ), ), ) ; -#& MODIF COMMANDE DATE 04/04/2005 AUTEUR CIBHHPD L.SALMONA +#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -6365,20 +7039,23 @@ CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op= 9,sd_prod=calc_matr_elem_prod # ====================================================================== CALC_META=OPER(nom="CALC_META",op=194,sd_prod=evol_ther,reentrant='o', UIinfo={"groupes":("Post traitements",)}, - fr="Calcule la métallurgie a partir du résultat du calcul thermique", + fr="Calcule l'évolution métallurgique à partir du résultat d'un calcul thermique", MODELE =SIMP(statut='o',typ=modele_sdaster ), CHAM_MATER =SIMP(statut='o',typ=cham_mater ), RESULTAT =SIMP(statut='o',typ=evol_ther ), ETAT_INIT =FACT(statut='o', - regles=(UN_PARMI('NUME_INIT', 'INST_INIT', 'META_INIT_ELNO',),), - 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_ELNO =SIMP(statut='f',typ=carte_var2_r ), + regles=(UN_PARMI('EVOL_THER', 'META_INIT_ELNO'),), + EVOL_THER =SIMP(statut='f',typ=evol_ther ), + META_INIT_ELNO =SIMP(statut='f',typ=carte_sdaster ), + b_etat =BLOC(condition="EVOL_THER != None", + regles=(UN_PARMI('NUME_INIT', 'INST_INIT',),), + NUME_INIT =SIMP(statut='f',typ='I'), + INST_INIT =SIMP(statut='f',typ='R'), + b_inst =BLOC(condition="INST_INIT != None", + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ) + ), + ), ), COMP_INCR =FACT(statut='o',max='**', RELATION =SIMP(statut='o',typ='TXM',into=("ACIER","ZIRC",) ), @@ -6392,7 +7069,7 @@ CALC_META=OPER(nom="CALC_META",op=194,sd_prod=evol_ther,reentrant='o', OPTION =SIMP(statut='f',typ='TXM' ,into=("META_ELNO_TEMP",) ), ) ; -#& MODIF COMMANDE DATE 08/02/2005 AUTEUR CIBHHPD L.SALMONA +#& MODIF COMMANDE DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -6416,6 +7093,7 @@ def calc_no_prod(RESULTAT,**args): raise AsException("type de concept resultat non prevu") CALC_NO=OPER(nom="CALC_NO",op= 106,sd_prod=calc_no_prod,reentrant='o', + fr="Enrichir une SD Résultat par des champs aux noeuds calculés à partir de champs aux éléments évalués aux noeuds", UIinfo={"groupes":("Post traitements",)}, RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,acou_harmo,mode_meca, mode_acou,mode_stat,mode_stat_depl,mode_stat_acce, @@ -6426,7 +7104,9 @@ CALC_NO=OPER(nom="CALC_NO",op= 106,sd_prod=calc_no_prod,reentrant='o', 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'),), + 'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'), + CONCEPT_SENSIBLE("SEPARE"), + DERIVABLE('RESULTAT'),), TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), @@ -6457,7 +7137,7 @@ CALC_NO=OPER(nom="CALC_NO",op= 106,sd_prod=calc_no_prod,reentrant='o', "EPSI_NOEU_DEPL", "EPSP_NOEU" ,"EPSP_NOEU_ZAC", "EQUI_NOEU_EPME","EQUI_NOEU_EPSI","EQUI_NOEU_SIGM", - "ERRE_NOEU_ELGA", + "ERRE_NOEU_ELEM","QIRE_NOEU_ELEM", "FLUX_NOEU_TEMP", "HYDR_NOEU_ELGA", "INTE_NOEU_ACTI","INTE_NOEU_REAC", @@ -6493,7 +7173,7 @@ CALC_NO=OPER(nom="CALC_NO",op= 106,sd_prod=calc_no_prod,reentrant='o', GROUP_NO_RESU =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), NOEUD_RESU =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 16/05/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG @@ -6525,8 +7205,8 @@ from Macro.calc_precont_ops import calc_precont_ops # =========================================================================== CALC_PRECONT=MACRO(nom="CALC_PRECONT",op=calc_precont_ops,sd_prod=evol_noli, - fr="imposer la tension definie par le BPEL dans les cables", - reentrant='f', + fr="Imposer la tension définie par le BPEL dans les cables", + reentrant='f',UIinfo={"groupe":("Modélisation",)}, reuse =SIMP(statut='f',typ='evol_noli'), MODELE =SIMP(statut='o',typ=modele_sdaster), CHAM_MATER =SIMP(statut='o',typ=cham_mater), @@ -6561,12 +7241,6 @@ CALC_PRECONT=MACRO(nom="CALC_PRECONT",op=calc_precont_ops,sd_prod=evol_noli, ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25), ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), - RESI_INTE_RELA =SIMP(statut='f',typ='R' - ,defaut= 1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", - into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), ), ETAT_INIT =FACT(statut='f', regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',), @@ -6575,10 +7249,10 @@ CALC_PRECONT=MACRO(nom="CALC_PRECONT",op=calc_precont_ops,sd_prod=evol_noli, 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), + DEPL =SIMP(statut='f',typ=cham_no_sdaster), + SIGM =SIMP(statut='f',typ=(carte_sdaster,cham_elem)), + VARI =SIMP(statut='f',typ=cham_elem), + VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_sdaster), EVOL_NOLI =SIMP(statut='f',typ=evol_noli), NUME_ORDRE =SIMP(statut='f',typ='I'), INST =SIMP(statut='f',typ='R'), @@ -6648,7 +7322,115 @@ CALC_PRECONT=MACRO(nom="CALC_PRECONT",op=calc_precont_ops,sd_prod=evol_noli, COMP_INCR =C_COMP_INCR(), ) ; -#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN +#& MODIF COMMANDE DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# -*- coding: iso-8859-1 -*- + +# RESPONSABLE MCOURTOI M.COURTOIS + +def calc_table_prod(self, TABLE, **kargs): + """Typage du concept produit. + """ + typ_table = AsType(TABLE) + if issubclass(typ_table, table_sdaster): + return typ_table + raise AsException("type de concept resultat non prevu") + +from Macro.calc_table_ops import calc_table_ops + +CALC_TABLE=MACRO(nom="CALC_TABLE",op=calc_table_ops, sd_prod=calc_table_prod, + fr="Opérations sur une table", + reentrant='f', + regles=(DERIVABLE('TABLE'),), + TABLE = SIMP(statut='o',typ=table_sdaster), + ACTION = FACT(statut='o', max='**', + fr = "Suite des opérations à effectuer sur la table", + OPERATION = SIMP(statut='o', typ='TXM', + into=('FILTRE', 'EXTR', 'RENOMME', 'TRI', 'COMB', 'OPER',)), + + b_filtre = BLOC(condition="OPERATION == 'FILTRE'", + fr="Sélectionne les lignes de la table vérifiant un critère", + NOM_PARA = SIMP(statut='o',typ='TXM'), + CRIT_COMP = SIMP(statut='f',typ='TXM',defaut="EQ", + into=('EQ','NE','GT','LT','GE','LE','REGEXP', + 'VIDE','NON_VIDE','MAXI','ABS_MAXI','MINI','ABS_MINI'),), + b_vale = BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))", + regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),), + VALE = SIMP(statut='f',typ='R'), + VALE_I = SIMP(statut='f',typ='I'), + VALE_C = SIMP(statut='f',typ='C'), + VALE_K = SIMP(statut='f',typ='TXM'), + ), + b_regexp = BLOC(condition = "CRIT_COMP == 'REGEXP'", + VALE_K = SIMP(statut='f',typ='TXM'), + ), + b_crit = BLOC(condition = "CRIT_COMP in ('EQ','NE')", + CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3 ), + ), + ), + + b_extr = BLOC(condition="OPERATION == 'EXTR'", + fr="Extrait une ou plusieurs colonnes de la table", + NOM_PARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + fr="Noms des colonnes à extraire"), + ), + + b_renomme = BLOC(condition="OPERATION == 'RENOMME'", + fr="Renomme un ou plusieurs paramètres de la table", + NOM_PARA = SIMP(statut='o', typ='TXM', validators=NoRepeat(), min=2, max=2, + fr="Couple (ancien nom du paramètre, nouveau nom du paramètre)",), + ), + + b_tri = BLOC(condition="OPERATION == 'TRI'", + fr="Ordonne les lignes de la table selon les valeurs d'un ou plusieurs paramètres", + NOM_PARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'), + ORDRE = SIMP(statut='f',typ='TXM',defaut="CROISSANT", + into=("CROISSANT","DECROISSANT") ), + ), + + b_comb = BLOC(condition="OPERATION == 'COMB'", + fr="Combine deux tables ayant éventuellement des paramètres communs", + TABLE = SIMP(statut='o',typ=table_sdaster, + fr="Table dont les colonnes vont venir surcharger la table initiale"), + NOM_PARA = SIMP(statut='f',typ='TXM',max='**', + fr="Noms des paramètres dont les valeurs doivent etre identiques dans les deux tables "\ + "pour que les colonnes soient combinées"), + ), + + b_oper = BLOC(condition="OPERATION == 'OPER'", + fr="Applique une formule dans laquelle les variables sont les paramètres de la table", + FORMULE = SIMP(statut='o',typ=formule, + fr="Formule à appliquer aux colonnes de la table"), + NOM_PARA = SIMP(statut='o',typ='TXM', + fr="Nom de la nouvelle colonne"), + ), + ), + + SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom),max=1, + fr="Paramètre de sensibilité", + ang="Sensitivity parameter"), + TITRE = SIMP(statut='f',typ='TXM',max='**', + fr="Titre de la table produite"), + INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), +) +#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -6668,7 +7450,8 @@ CALC_PRECONT=MACRO(nom="CALC_PRECONT",op=calc_precont_ops,sd_prod=evol_noli, # ====================================================================== CALC_THETA=OPER(nom="CALC_THETA",op=54,sd_prod=theta_geom,reentrant='n', UIinfo={"groupes":("Post traitements",)}, - fr="Affectation d un champ sur le maillage (mécanique de la rupture)", + fr="Définir un champ theta pour le calcul du taux de restitution d'énergie" + +" ou des facteurs d'intensité de contraintes", regles=(UN_PARMI('THETA_2D','THETA_3D','THETA_BANDE'), PRESENT_ABSENT('THETA_2D','DIRE_THETA'), EXCLUS('DIRECTION','DIRE_THETA'),), @@ -6691,7 +7474,7 @@ CALC_THETA=OPER(nom="CALC_THETA",op=54,sd_prod=theta_geom,reentrant='n', ), b_theta_3d =BLOC(condition="THETA_3D != None", FOND_FISS =SIMP(statut='f',typ=fond_fiss),), - DIRE_THETA =SIMP(statut='f',typ=(cham_no_depl_r) ), + DIRE_THETA =SIMP(statut='f',typ=cham_no_sdaster ), DIRECTION =SIMP(statut='f',typ='R',max='**'), THETA_2D =FACT(statut='f',max='**', regles=(UN_PARMI('GROUP_NO','NOEUD'),), @@ -6712,7 +7495,7 @@ CALC_THETA=OPER(nom="CALC_THETA",op=54,sd_prod=theta_geom,reentrant='n', FORMAT =SIMP(statut='f',typ='TXM',defaut="EXCEL",into=("EXCEL","AGRAF") ), ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 16/05/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -6775,7 +7558,7 @@ CALC_VECT_ELEM=OPER(nom="CALC_VECT_ELEM",op=8,sd_prod=calc_vect_elem_prod,reentr ), b_forc_noda =BLOC(condition = "OPTION=='FORC_NODA'", - SIEF_ELGA =SIMP(statut='o',typ=cham_elem_sief_r), + SIEF_ELGA =SIMP(statut='o',typ=cham_elem), CARA_ELEM =SIMP(statut='f',typ=cara_elem), MODELE =SIMP(statut='f',typ=modele_sdaster), ), @@ -6788,7 +7571,7 @@ CALC_VECT_ELEM=OPER(nom="CALC_VECT_ELEM",op=8,sd_prod=calc_vect_elem_prod,reentr INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 16/05/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -6807,56 +7590,33 @@ CALC_VECT_ELEM=OPER(nom="CALC_VECT_ELEM",op=8,sd_prod=calc_vect_elem_prod,reentr # 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[0]['CHAM_ELEM'] - elif COMB_C != None: - vale=COMB_C[0]['CHAM_ELEM'] - elif COMB_FOURIER != None: - vale=COMB_FOURIER[0]['CHAM_ELEM'] - 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", +COMB_CHAM_ELEM=OPER(nom="COMB_CHAM_ELEM",op= 139,sd_prod=cham_elem,reentrant='f', + fr="Effectuer la combinaison linéaire de champs par éléments", UIinfo={"groupes":("Résultats et champs",)}, regles=(UN_PARMI('COMB_R','COMB_C','COMB_FOURIER'), PRESENT_PRESENT('COMB_FOURIER','ANGL'),), COMB_R =FACT(statut='f',max='**', 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 ) ), + CHAM_ELEM =SIMP(statut='o',typ=cham_elem), ), COMB_C =FACT(statut='f',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) ), + CHAM_ELEM =SIMP(statut='o',typ=cham_elem), ), COMB_FOURIER =FACT(statut='f',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 ) ), + CHAM_ELEM =SIMP(statut='o',typ=cham_elem), ), ANGL =SIMP(statut='f',typ='R' ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -6875,45 +7635,31 @@ COMB_CHAM_ELEM=OPER(nom="COMB_CHAM_ELEM",op= 139,sd_prod=comb_cham_elem_prod,ree # 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[0]['CHAM_NO']) - 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: +def comb_cham_no_prod(COMB_R,**args): + typ=cham_no_sdaster + if COMB_R != None: type_mat = AsType(COMB_R[0]['CHAM_NO']) - 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[0]['CHAM_NO']) - 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") - + if type_mat == matr_asse_gene_r : typ= matr_asse_gene_r + return typ COMB_CHAM_NO=OPER(nom="COMB_CHAM_NO",op= 30,sd_prod=comb_cham_no_prod - ,fr="Combinaison linéaire de champs aux noeuds", + ,fr="Effectuer la combinaison linéaire de champs aux noeuds", reentrant='f', UIinfo={"groupes":("Résultats et champs",)}, regles=(UN_PARMI('COMB_R','COMB_C','COMB_FOURIER'),), COMB_R =FACT(statut='f',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 ) ), + CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster), COEF_R =SIMP(statut='o',typ='R' ), ), COMB_C =FACT(statut='f',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 ) ), + CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster), COEF_R =SIMP(statut='f',typ='R' ), COEF_C =SIMP(statut='f',typ='C' ), ), COMB_FOURIER =FACT(statut='f',max='**', - CHAM_NO =SIMP(statut='o',typ=(cham_no_temp_r,cham_no_depl_r) ), + CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster), 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") ), @@ -6922,7 +7668,7 @@ COMB_CHAM_NO=OPER(nom="COMB_CHAM_NO",op= 30,sd_prod=comb_cham_no_prod ANGL =SIMP(statut='o',typ='R' ), ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -6942,14 +7688,14 @@ COMB_CHAM_NO=OPER(nom="COMB_CHAM_NO",op= 30,sd_prod=comb_cham_no_prod # ====================================================================== # RESPONSABLE G8BHHXD X.DESROCHES COMB_FOURIER=OPER(nom="COMB_FOURIER",op= 161,sd_prod=comb_fourier, - reentrant='n', + reentrant='n',fr="Recombiner les modes de Fourier d'une SD Résultat dans des directions particulières", UIinfo={"groupes":("Post traitements",)}, RESULTAT =SIMP(statut='o',typ=fourier_elas ), ANGL =SIMP(statut='o',typ='R',max='**'), NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=5, into=("DEPL","REAC_NODA","SIEF_ELGA_DEPL","EPSI_ELNO_DEPL","SIGM_ELNO_DEPL") ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -6985,7 +7731,7 @@ def comb_matr_asse_prod(COMB_R,COMB_C,CALC_AMOR_GENE,**args): 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", + fr="Effectuer la combinaison linéaire de matrices assemblées", reentrant='f', UIinfo={"groupes":("Résultats et champs",)}, regles=(UN_PARMI('COMB_R','COMB_C','CALC_AMOR_GENE' ),), @@ -7011,7 +7757,7 @@ COMB_MATR_ASSE=OPER(nom="COMB_MATR_ASSE",op= 31,sd_prod=comb_matr_asse_prod, ), SANS_CMP =SIMP(statut='f',typ='TXM',into=("LAGR",) ), ) ; -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS +#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -7052,7 +7798,7 @@ COMB_SISM_MODAL=OPER(nom="COMB_SISM_MODAL",op= 109,sd_prod=mode_stat, LIST_AMOR =SIMP(statut='f',typ=listr8_sdaster ), AMOR_GENE =SIMP(statut='f',typ=matr_asse_gene_r ), - MASS_INER =SIMP(statut='f',typ=tabl_mass_iner ), + MASS_INER =SIMP(statut='f',typ=table_sdaster ), CORR_FREQ =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), EXCIT =FACT(statut='o',max='**', @@ -7125,7 +7871,7 @@ COMB_SISM_MODAL=OPER(nom="COMB_SISM_MODAL",op= 109,sd_prod=mode_stat, ), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 28/01/2005 AUTEUR VABHHTS J.PELLET +#& MODIF COMMANDE DATE 16/05/2006 AUTEUR REZETTE C.REZETTE # RESPONSABLE VABHHTS J.PELLET # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -7145,28 +7891,22 @@ COMB_SISM_MODAL=OPER(nom="COMB_SISM_MODAL",op= 109,sd_prod=mode_stat, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== def crea_champ_prod(TYPE_CHAM,**args): - import string - grandeur=string.lower(TYPE_CHAM[5:]) - if TYPE_CHAM[0:5] == "CART_" : - uu="carte_"+grandeur + return carte_sdaster elif TYPE_CHAM[0:5] == "NOEU_" : - uu="cham_no_"+grandeur + return cham_no_sdaster elif TYPE_CHAM[0:2] == "EL" : - uu="cham_elem_"+grandeur + return cham_elem else : raise AsException("type de concept resultat_sdaster non prevu") - vv=eval(uu) ; return vv - CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod, - fr=" ",reentrant='n', + fr="Création d'un champ ",reentrant='n', UIinfo={"groupes":("Résultats et champs",)}, TYPE_CHAM =SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO()), # TYPE_CHAM doit etre de la forme : CART_xx, NOEU_xx, ELEM_xx, ELGA_xx ou ELNO_xx - # ou xx est le nom d'une grandeur définie dans le catalogue des grandeurs - + # ou xx est le nom d'une grandeur définie dans le catalogue des grandeurs # SI CREATION D'UN CHAM_NO, POUR IMPOSER LA NUMEROTATION DES DDLS : # ------------------------------------------------------------------ regles=(EXCLUS('NUME_DDL','CHAM_NO',)), @@ -7178,8 +7918,16 @@ CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod, # ------------------------------------------------------------------ OPTION =SIMP(statut='f',typ='TXM'), - OPERATION =SIMP(statut='o',typ='TXM',into=("AFFE","ASSE","EVAL","EXTR","DISC",) ), + OPERATION =SIMP(statut='o',typ='TXM',into=("AFFE","ASSE","EVAL","EXTR","DISC","NORMALE") ), +# ------------------------------------------------------------------ + b_norm =BLOC(condition = "OPERATION == 'NORMALE'", + regles=(AU_MOINS_UN('GROUP_MA','MAILLE',),), + MODELE =SIMP(statut='o',typ=(modele_sdaster) ), + GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + ), +# ------------------------------------------------------------------ b_affe =BLOC(condition = "OPERATION == 'AFFE'", regles=(UN_PARMI('MAILLAGE','MODELE'),), MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster) ), @@ -7201,6 +7949,7 @@ CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod, VALE_F =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'), ), ), +# ------------------------------------------------------------------ b_asse =BLOC(condition = "OPERATION == 'ASSE'", regles=(UN_PARMI('MAILLAGE','MODELE'),), MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster) ), @@ -7215,34 +7964,47 @@ CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod, GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - CHAM_GD =SIMP(statut='o',typ=(cham_gd_sdaster)), + CHAM_GD =SIMP(statut='o',typ=cham_gd_sdaster), NOM_CMP =SIMP(statut='f',typ='TXM',max='**' ), NOM_CMP_RESU =SIMP(statut='f',typ='TXM',max='**' ), CUMUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), COEF_R =SIMP(statut='f',typ='R',defaut= 1. ), ), ), +# ------------------------------------------------------------------ b_eval =BLOC(condition = "OPERATION == 'EVAL'", - CHAM_F =SIMP(statut='o',typ=(cham_gd_sdaster)), - CHAM_PARA =SIMP(statut='o',typ=(cham_gd_sdaster),max='**'), + CHAM_F =SIMP(statut='o',typ=cham_gd_sdaster), + CHAM_PARA =SIMP(statut='o',typ=cham_gd_sdaster,max='**'), ), +# ------------------------------------------------------------------ b_disc =BLOC(condition = "OPERATION == 'DISC'", MODELE =SIMP(statut='f',typ=(modele_sdaster) ), PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - CHAM_GD =SIMP(statut='o',typ=(cham_gd_sdaster)), + CHAM_GD =SIMP(statut='o',typ=cham_gd_sdaster), ), +# ------------------------------------------------------------------ b_extr =BLOC(condition = "OPERATION == 'EXTR'", - regles=(UN_PARMI('MAILLAGE','FISSURE','RESULTAT'),), + regles=(AU_MOINS_UN('MAILLAGE','FISSURE','RESULTAT','TABLE'),), MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster) ), FISSURE =SIMP(statut='f',typ=(fiss_xfem) ), RESULTAT =SIMP(statut='f',typ=(resultat_sdaster) ), - b_extr_maillage =BLOC(condition = "MAILLAGE != None", + TABLE =SIMP(statut='f',typ=(table_sdaster),min=1,max=1), + b_extr_maillage =BLOC(condition = "MAILLAGE != None and TABLE == None", NOM_CHAM =SIMP(statut='o',typ='TXM',into=("GEOMETRIE",)), ), b_extr_fissure =BLOC(condition = "FISSURE != None", - NOM_CHAM =SIMP(statut='o',typ='TXM',into=("LTNO","LNNO","GRLTNO","GRLNNO",)), + NOM_CHAM =SIMP(statut='o',typ='TXM',into=("LTNO","LNNO","GRLTNO","GRLNNO","STNO","STNOR","BASLOC")), ), + b_extr_table =BLOC(condition = "TABLE != None", + regles=( EXCLUS('MODELE','MAILLAGE'), + EXCLUS('PROL_ZERO','MAILLAGE'),), + MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster),), + MODELE =SIMP(statut='f',typ=(modele_sdaster),), + OPTION =SIMP(statut='f',typ='TXM'), + PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), + ), b_extr_resultat =BLOC(condition = "RESULTAT != None", + regles=(DERIVABLE('RESULTAT'),), SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom), fr="Paramètre de sensibilité.", ang="Sensitivity parameter"), @@ -7253,8 +8015,9 @@ CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod, b_type_maxi =BLOC(condition = "TYPE_MAXI != None", TYPE_RESU =SIMP(statut='o',typ='TXM',defaut="VALE",into=("VALE","INST",) ), - regles=(AU_PLUS_UN('LIST_INST','LIST_FREQ','NUME_ORDRE','INST', + regles=(EXCLUS('TOUT_ORDRE','LIST_INST','LIST_FREQ','NUME_ORDRE','INST', 'FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'),), + TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ), LIST_FREQ =SIMP(statut='f',typ=(listr8_sdaster) ), NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), @@ -7264,18 +8027,12 @@ CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod, NOEUD_CMP =SIMP(statut='f',typ='TXM',max='**'), NOM_CAS =SIMP(statut='f',typ='TXM',max='**'), ANGL =SIMP(statut='f',typ='R',max='**'), - - b_tout =BLOC(condition = "(LIST_INST,LIST_FREQ,NUME_ORDRE,INST,\ - FREQ,NUME_MODE,NOEUD_CMP,NOM_CAS,ANGL)\ - ==(None ,None ,None ,None,\ - None,None ,None ,None ,None)", - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",),defaut="OUI",), - ), ), # si .not. TYPE_MAXI, on ne doit spécifier qu'un seul numéro d'ordre : b_non_type_maxi =BLOC(condition = "TYPE_MAXI == None", - regles=(AU_PLUS_UN('INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'),), + regles=(EXCLUS('NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'),), + NUME_ORDRE =SIMP(statut='f',typ='I'), INST =SIMP(statut='f',typ='R'), FREQ =SIMP(statut='f',typ='R'), NUME_MODE =SIMP(statut='f',typ='I'), @@ -7283,11 +8040,6 @@ CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod, NOM_CAS =SIMP(statut='f',typ='TXM'), ANGL =SIMP(statut='f',typ='R'), - b_nume_1 =BLOC(condition = "(INST,FREQ,NUME_MODE,NOEUD_CMP,NOM_CAS,ANGL)\ - ==(None,None,None ,None ,None ,None)", - NUME_ORDRE =SIMP(statut='f',typ='I',defaut=1,), - ), - INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN",) ), ), @@ -7297,12 +8049,12 @@ CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod, ), # fin bloc b_extr ), -# FIN DU CATALOGUE : INFO,TITRE ET TYPAGE DU RESULAT : +# FIN DU CATALOGUE : INFO,TITRE ET TYPAGE DU RESULTAT : #----------------------------------------------------- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ), TITRE =SIMP(statut='f',typ='TXM',max='**' ), ) ; -#& MODIF COMMANDE DATE 26/04/2005 AUTEUR LAVERNE J.LAVERNE +#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE # RESPONSABLE MCOURTOI M.COURTOIS # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -7322,7 +8074,7 @@ CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage_sdaster, - reentrant='n', + reentrant='n',fr="Crée un maillage à partir d'un maillage existant", UIinfo={"groupes":("Maillage",)}, regles=(EXCLUS('ECLA_PG','CREA_MAILLE'), EXCLUS('ECLA_PG','CREA_GROUP_MA'), @@ -7433,8 +8185,8 @@ CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage_sdaster, GROUP_MA =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), ), REPERE =FACT(statut='f',max='**', - fr="changement de repère servant à déterminer les caractéristiques d une section de poutre", - TABLE =SIMP(statut='o',typ=tabl_cara_geom, + fr="changement de repère servant à déterminer les caractéristiques d'une section de poutre", + TABLE =SIMP(statut='o',typ=table_sdaster, fr="Nom de la table contenant les caractéristiques de la section de poutre" ), NOM_ORIG =SIMP(statut='f',typ='TXM',into=("CDG","TORSION"),fr="Origine du nouveau repère" ), NOM_ROTA =SIMP(statut='f',typ='TXM',into=("INERTIE",),fr="Direction du repére" ), @@ -7458,7 +8210,7 @@ CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage_sdaster, # INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 17/08/2004 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 24/01/2006 AUTEUR D6BHHJP J.P.LEFEBVRE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -7483,19 +8235,20 @@ def crea_resu_prod(TYPE_RESU,**args): if TYPE_RESU == "MULT_ELAS" : return mult_elas if TYPE_RESU == "FOURIER_ELAS" : return fourier_elas if TYPE_RESU == "EVOL_VARC" : return evol_varc + if TYPE_RESU == "EVOL_CHAR" : return evol_char raise AsException("type de concept resultat non prevu") CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f', UIinfo={"groupes":("Modélisation",)}, - fr="Engendrer ou enrichir une structure de donnees en affectant les cham_gd associes", + fr="Créer ou enrichir une structure de donnees resultat à partir de champs aux noeuds", OPERATION =SIMP(statut='o',typ='TXM',into=("AFFE","ECLA_PG","PERM_CHAM","PROL_RTZ",), fr="choix de la fonction a activer",), b_affe =BLOC(condition = "OPERATION == 'AFFE'", - TYPE_RESU =SIMP(statut='o',typ='TXM',into=("MULT_ELAS","EVOL_ELAS","EVOL_NOLI","FOURIER_ELAS", - "EVOL_THER","EVOL_VARC",) ), + TYPE_RESU =SIMP(statut='o',position='global',typ='TXM',into=("MULT_ELAS","EVOL_ELAS","EVOL_NOLI","FOURIER_ELAS", + "EVOL_THER","EVOL_VARC","EVOL_CHAR",) ), NOM_CHAM =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()), AFFE =FACT(statut='o',max='**', @@ -7504,8 +8257,12 @@ CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f', CHAM_MATER =SIMP(statut='f',typ=cham_mater), CARA_ELEM =SIMP(statut='f',typ=cara_elem), - # affectation de plusieurs instants à l'aide d'un champ aux noeuds de fonctions du temps: - b_fonc =BLOC(condition = "AsType(CHAM_GD) in (cham_no_temp_f,cham_no_depl_f)", + b_mult_elas =BLOC(condition = "TYPE_RESU == 'MULT_ELAS' ", + NOM_CAS =SIMP(statut='f',typ='TXM' ), + ), + b_evol =BLOC(condition = "((TYPE_RESU=='EVOL_ELAS') or (TYPE_RESU=='EVOL_NOLI') or (TYPE_RESU=='EVOL_THER')\ + or (TYPE_RESU=='EVOL_VARC') or (TYPE_RESU=='EVOL_CHAR'))", + regles=(UN_PARMI('INST','LIST_INST'),), INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), LIST_INST =SIMP(statut='f',typ=listr8_sdaster), NUME_INIT =SIMP(statut='f',typ='I', val_min=1), @@ -7513,19 +8270,9 @@ CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f', PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), ), - - # affectation d'un seul nume_ordre : - b_reel =BLOC(condition = "AsType(CHAM_GD) not in (cham_no_temp_f,cham_no_depl_f)", - regles=(UN_PARMI('NOM_CAS','NUME_MODE','INST','LIST_INST'),), - NOM_CAS =SIMP(statut='f',typ='TXM' ), + b_fourier =BLOC(condition = "TYPE_RESU == 'FOURIER_ELAS' ", NUME_MODE =SIMP(statut='f',typ='I'), TYPE_MODE =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - NUME_INIT =SIMP(statut='f',typ='I', val_min=1), - NUME_FIN =SIMP(statut='f',typ='I', val_min=1), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), ), ), ), @@ -7580,7 +8327,7 @@ CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f', PROL_RTZ =FACT(statut='o', regles=(EXCLUS('INST','LIST_INST'),), MAILLAGE_FINAL =SIMP(statut='o',typ=maillage_sdaster,), - TABLE =SIMP(statut='o',typ=tabl_post_rele,fr="Table issue de post_releve_t"), + TABLE =SIMP(statut='o',typ=table_sdaster,fr="Table issue de post_releve_t"), INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), LIST_INST =SIMP(statut='f',typ=listr8_sdaster), b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)", @@ -7596,7 +8343,7 @@ CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f', ), ) ; -#& MODIF COMMANDE DATE 20/09/2004 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG @@ -7614,48 +8361,41 @@ CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f', # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -def crea_table_prod(TYPE_TABLE,**args): - if TYPE_TABLE == "TABLE" : return table_sdaster - 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 - if TYPE_TABLE == "TABL_INTE_SPEC" : return tabl_intsp - raise AsException("type de concept resultat non prevu") +CREA_TABLE=OPER(nom="CREA_TABLE",op= 36,sd_prod=table_sdaster, + fr="Création d'une table à partir d'une fonction ou de deux listes", + reentrant='f',UIinfo={"groupes":("Table",)}, -CREA_TABLE=OPER(nom="CREA_TABLE",op= 36,sd_prod=crea_table_prod, - fr="Creation d'une table a partir d'une fonction ou de deux listes", - reentrant='n',UIinfo={"groupes":("Table",)}, + regles=(EXCLUS('FONCTION','LISTE'),), - regles=(EXCLUS('FONCTION','LISTE')), - - TYPE_TABLE=SIMP(statut='f',typ='TXM',defaut="TABLE", - into=("TABLE", - "TABL_CARA_GEOM", - "TABL_POST_RELE", - "TABL_POST_USUR", - "TABL_POST_ALEA", - "TABL_INTE_SPEC" ) ), - LISTE=FACT(statut='f',min=2,max='**', + LISTE=FACT(statut='f',max='**', fr="Creation d'une table a partir de listes", regles=(UN_PARMI('LISTE_I','LISTE_R','LISTE_K')), - PARA=SIMP(statut='o',typ='TXM'), - TYPE_K=SIMP(statut='f',typ='TXM',defaut='K8', + PARA =SIMP(statut='o',typ='TXM'), + TYPE_K =SIMP(statut='f',typ='TXM',defaut='K8', into=('K8','K16','K24')), NUME_LIGN=SIMP(statut='f',typ='I',max='**'), - LISTE_I=SIMP(statut='f',typ='I',max='**'), - LISTE_R=SIMP(statut='f',typ='R',max='**'), - LISTE_K=SIMP(statut='f',typ='TXM', max='**')), - FONCTION=FACT(statut='f',min=1,max=1, + LISTE_I =SIMP(statut='f',typ='I',max='**'), + LISTE_R =SIMP(statut='f',typ='R',max='**'), + LISTE_K =SIMP(statut='f',typ='TXM', max='**'), + ), + FONCTION=FACT(statut='f', fr="Creation d'une table a partir d'une fonction", - FONCTION=SIMP(statut='o',typ=fonction_sdaster), - PARA=SIMP(statut='f',typ='TXM',min=2,max=2)), + FONCTION=SIMP(statut='o',typ=(fonction_c,fonction_sdaster)), + PARA=SIMP(statut='f',typ='TXM',min=2,max=2), + ), + b_fonction = BLOC(condition='FONCTION != None', + regles=(CONCEPT_SENSIBLE('SEPARE'), REUSE_SENSIBLE(), + DERIVABLE('FONCTION'),), + SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des paramètres de sensibilité.", + ang="List of sensitivity parameters"), + ), TITRE=SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 22/03/2005 AUTEUR D6BHHJP J.P.LEFEBVRE +#& MODIF COMMANDE DATE 16/01/2006 AUTEUR D6BHHJP J.P.LEFEBVRE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -7675,17 +8415,19 @@ CREA_TABLE=OPER(nom="CREA_TABLE",op= 36,sd_prod=crea_table_prod, # ====================================================================== DEBUT=MACRO(nom="DEBUT",op=ops.build_debut ,repetable='n', UIinfo={"groupes":("Gestion du travail",)}, - fr="Ouverture d une étude. Allocation des ressources mémoire et disque", + fr="Ouverture d'une étude. Allocation des ressources mémoire et disque et fichiers", sd_prod=ops.DEBUT, PAR_LOT =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM', into=("OUI","NON"),defaut="OUI"), - FORMAT_HDF =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f', - typ='TXM',defaut="NON",into=("OUI","NON",) ), + IMPR_MACRO =SIMP(fr="affichage des sous-commandes produites par les macros dans le fichier mess", + statut='f',typ='TXM',into=("OUI","NON"),defaut="NON"), +# FORMAT_HDF =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f', +# typ='TXM',defaut="NON",into=("OUI","NON",) ), BASE =FACT(fr="définition des paramètres associés aux bases JEVEUX", - statut='f',min=1,max=3, + statut='f',min=1,max=2, FICHIER =SIMP(fr="nom de la base",statut='o',typ='TXM', - into=('GLOBALE','VOLATILE','LOCALE'),), + into=('GLOBALE','VOLATILE'),), TITRE =SIMP(statut='f',typ='TXM'), CAS =SIMP(statut='f',typ='TXM'), NMAX_ENRE =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'), @@ -7708,6 +8450,9 @@ DEBUT=MACRO(nom="DEBUT",op=ops.build_debut ,repetable='n', VISU_EFICAS =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI'), UNITE =SIMP(statut='f',typ='I',defaut=15), ), + ERREUR =FACT(fr="comportement en cas d'erreur",statut='f',min=1,max=1, + ERREUR_F =SIMP(statut='f',typ='TXM',into=('ABORT','EXCEPTION'),defaut='ABORT'), + ), DEBUG =FACT(fr="option de déboggage reservée aux développeurs", statut='f',min=1,max=1, JXVERI =SIMP(fr="vérifie l intégrité de la segmentation mémoire", @@ -7732,7 +8477,7 @@ DEBUT=MACRO(nom="DEBUT",op=ops.build_debut ,repetable='n', BORNE =SIMP(statut='f',typ='I',val_min=0,defaut=180) ), ); -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 03/10/2005 AUTEUR NICOLAS O.NICOLAS # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -7752,8 +8497,9 @@ DEBUT=MACRO(nom="DEBUT",op=ops.build_debut ,repetable='n', # ====================================================================== DEFI_BASE_MODALE=OPER(nom="DEFI_BASE_MODALE",op= 99,sd_prod=base_modale, reentrant='f', + fr="Définit la base d'une sous-structuration dynamique ou d'une recombinaison modale", UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(UN_PARMI('CLASSIQUE','RITZ','DIAG_MASS'),), + regles=(UN_PARMI('CLASSIQUE','RITZ','DIAG_MASS','ORTHO_BASE'),), CLASSIQUE =FACT(statut='f', INTERF_DYNA =SIMP(statut='o',typ=interf_dyna_clas ), MODE_MECA =SIMP(statut='o',typ=mode_meca,max='**' ), @@ -7767,20 +8513,27 @@ DEFI_BASE_MODALE=OPER(nom="DEFI_BASE_MODALE",op= 99,sd_prod=base_modale, MULT_ELAS =SIMP(statut='f',typ=mult_elas ), BASE_MODALE =SIMP(statut='f',typ=base_modale ), ), + b_ritz =BLOC(condition = "RITZ != None", + INTERF_DYNA =SIMP(statut='f',typ=interf_dyna_clas ), + NUME_REF =SIMP(statut='o',typ=nume_ddl_sdaster ), + ORTHO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), + fr="Reorthonormalisation de la base de Ritz" ), + b_ortho =BLOC(condition = "ORTHO == 'OUI' ", + MATRICE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_gene_r,matr_asse_pres_r ) ), + ), + ), DIAG_MASS =FACT(statut='f',max='**', MODE_MECA =SIMP(statut='o',typ=mode_meca,max='**' ), MODE_STAT =SIMP(statut='o',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ), ), -# 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_sdaster ), + ORTHO_BASE =FACT(statut='f',max='**', + BASE =SIMP(statut='o',typ=(mode_meca,mode_stat_depl,mode_stat_acce,mode_stat_forc,mult_elas,base_modale)), + MATRICE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_gene_r,matr_asse_pres_r ) ), ), TITRE =SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; -#& MODIF COMMANDE DATE 22/02/2005 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG @@ -7827,8 +8580,8 @@ from Macro.defi_cable_bp_ops import defi_cable_bp_ops # =========================================================================== DEFI_CABLE_BP=MACRO(nom="DEFI_CABLE_BP",op=defi_cable_bp_ops,sd_prod=cabl_precont, - fr="", - reentrant='n', + fr="Calculer les profils initiaux de tension le long des cables de précontrainte d'une structure en béton", + reentrant='n',UIinfo={"groupe":("Modélisation",)}, regles=(ENSEMBLE('MAILLAGE','CONE'),), MAILLAGE =SIMP(statut='f',typ=maillage_sdaster), MODELE =SIMP(statut='o',typ=modele_sdaster ), @@ -7857,7 +8610,7 @@ DEFI_CABLE_BP=MACRO(nom="DEFI_CABLE_BP",op=defi_cable_bp_ops,sd_prod=cabl_precon TITRE =SIMP(statut='f',typ='TXM',max='**' ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; -#& MODIF COMMANDE DATE 24/08/2004 AUTEUR CIBHHPD S.VANDENBERGHE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG @@ -7876,9 +8629,9 @@ DEFI_CABLE_BP=MACRO(nom="DEFI_CABLE_BP",op=defi_cable_bp_ops,sd_prod=cabl_precon # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -DEFI_CABLE_OP=OPER(nom="DEFI_CABLE_OP",op= 180,sd_prod=cabl_precont, - fr=" ", - reentrant='n', +DEFI_CABLE_OP=OPER(nom="DEFI_CABLE_OP",op= 180,sd_prod=cabl_precont,reentrant='n', + fr="Définit les profils initiaux de tension d'une structure en béton le long des cables de précontrainte" + +" (utilisée par la macro DEFI_CABLE_BP)", UIinfo={"groupes":("Modélisation",)}, MODELE =SIMP(statut='o',typ=modele_sdaster ), CHAM_MATER =SIMP(statut='o',typ=cham_mater ), @@ -7907,7 +8660,7 @@ DEFI_CABLE_OP=OPER(nom="DEFI_CABLE_OP",op= 180,sd_prod=cabl_precont, PRESENT =SIMP(statut='o',typ='TXM',min=2,max=2,into=("OUI","NON") ), ), ) ; -#& MODIF COMMANDE DATE 27/09/2004 AUTEUR JMBHH01 J.M.PROIX +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # RESPONSABLE JMBHH01 J.M.PROIX # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -7927,7 +8680,7 @@ DEFI_CABLE_OP=OPER(nom="DEFI_CABLE_OP",op= 180,sd_prod=cabl_precont, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== DEFI_COMPOR=OPER(nom="DEFI_COMPOR",op=59,sd_prod=compor_sdaster, - fr="Définition du comportement monocristallin", + fr="Définir le comportement d'un monocristal ou d'un polycristal", reentrant='n', UIinfo={"groupes":("Modélisation",)}, regles=(EXCLUS('MONOCRISTAL','POLYCRISTAL'),), @@ -7967,7 +8720,7 @@ DEFI_COMPOR=OPER(nom="DEFI_COMPOR",op=59,sd_prod=compor_sdaster, ); -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -7986,14 +8739,14 @@ DEFI_COMPOR=OPER(nom="DEFI_COMPOR",op=59,sd_prod=compor_sdaster, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== DEFI_CONSTANTE=OPER(nom="DEFI_CONSTANTE",op= 2,sd_prod=fonction_sdaster, - fr="Définition d une fonction constante", + fr="Définir la valeur d'une grandeur invariante", reentrant='n', UIinfo={"groupes":("Fonction",)}, NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"), VALE =SIMP(statut='o',typ='R',), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -8013,7 +8766,8 @@ DEFI_CONSTANTE=OPER(nom="DEFI_CONSTANTE",op= 2,sd_prod=fonction_sdaster, # ====================================================================== DEFI_COQU_MULT=OPER(nom="DEFI_COQU_MULT",op=56,sd_prod=mater_sdaster,reentrant='n', UIinfo={"groupes":("Modélisation",)}, - fr="Définition d une coque composite couche par couche", + fr="Déterminer les caractéristiques matériaux homogénéisées d'une coque multicouche à partir" + +" des caractéristiques de chaque couche", COUCHE =FACT(statut='o',max='**', EPAIS =SIMP(statut='o',typ='R',val_min=0.E+0 ), MATER =SIMP(statut='o',typ=(mater_sdaster) ), @@ -8024,7 +8778,7 @@ DEFI_COQU_MULT=OPER(nom="DEFI_COQU_MULT",op=56,sd_prod=mater_sdaster,reentrant=' UNITE =SIMP(statut='f',typ='I',defaut=8), ), ) ; -#& MODIF COMMANDE DATE 11/05/2005 AUTEUR MCOURTOI M.COURTOIS +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG @@ -8056,7 +8810,7 @@ def DEFIC_prod(self,ACTION,UNITE,**args): DEFI_FICHIER=MACRO(nom="DEFI_FICHIER",op=ops.build_DEFI_FICHIER,sd_prod=DEFIC_prod,reentrant='n', UIinfo={"groupes":("Gestion du travail",)}, - fr="Gestion d une unité logique : ajout, suppression", + fr="Ouvre ou ferme un fichier associé à un numéro d'unité logique", ACTION =SIMP(statut='f',typ='TXM',into=("ASSOCIER","LIBERER","RESERVER"),defaut="ASSOCIER"), @@ -8093,28 +8847,28 @@ DEFI_FICHIER=MACRO(nom="DEFI_FICHIER",op=ops.build_DEFI_FICHIER,sd_prod=DEFIC_pr INFO =SIMP(statut='f',typ='I',into=(1,2) ), ) -#& MODIF COMMANDE DATE 25/01/2005 AUTEUR GENIAUT S.GENIAUT +#& MODIF COMMANDE DATE 25/04/2006 AUTEUR CIBHHPD L.SALMONA # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -DEFI_FISS_XFEM=OPER(nom="DEFI_FISS_XFEM",op= 41,sd_prod=fiss_xfem,reentrant='f', +DEFI_FISS_XFEM=OPER(nom="DEFI_FISS_XFEM",op= 41,sd_prod=fiss_xfem,reentrant='n', UIinfo={"groupes":("Modélisation",)}, - fr="Définition des caratéristiques d''une fissure avec XFEM", + fr="Définition des caratéristiques d'une fissure avec X-FEM", MODELE =SIMP(statut='o',typ=modele_sdaster), DEFI_FISS =FACT(statut='o',max=01, @@ -8127,20 +8881,23 @@ DEFI_FISS_XFEM=OPER(nom="DEFI_FISS_XFEM",op= 41,sd_prod=fiss_xfem,reentrant='f' GROUP_MA_FOND =SIMP(statut='f',typ=grma), ), GROUP_MA_ENRI =SIMP(statut='o',typ=grma,max=01), - ORIE_FOND =FACT(statut='o',max=01, + RAYON_ENRI =SIMP(statut='f',typ='R',defaut=0.E+0), + ORIE_FOND =FACT(statut='f',max=01, PFON_INI =SIMP(statut='o',typ='R',max=03), VECT_ORIE =SIMP(statut='o',typ='R',max=03), PT_ORIGIN =SIMP(statut='o',typ='R',max=03), ), CONTACT =FACT(statut='f',max=01, NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",) ), - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), - INTEGRATION =SIMP(statut='f',typ='TXM',defaut="GAUSS",into=("GAUSS",) ), + FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), + INTEGRATION =SIMP(statut='f',typ='TXM',defaut="FPG4",into=("GAUSS","FPG4","FPG6","FPG7",) ), COEF_REGU_CONT =SIMP(statut='f',typ='R',defaut=100.E+0), MODL_AXIS =SIMP(statut='f',typ='TXM',into=("NON",)), ITER_CONT_MAXI =SIMP(statut='f',typ='I',defaut=30), CONTACT_INIT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", + ALGO_LAGR =SIMP(statut='f',typ='TXM',defaut="VERSION1",into=("NON","VERSION1","VERSION2" , ) ), + COEF_ECHELLE =SIMP(statut='f',typ='R',defaut=1.E+6), + b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramères du frottement de Coulomb", COULOMB =SIMP(statut='o',typ='R',), ITER_FROT_MAXI =SIMP(statut='f',typ='I',defaut=2), COEF_REGU_FROT =SIMP(statut='f',typ='R',defaut=100.E+0), @@ -8148,7 +8905,7 @@ DEFI_FISS_XFEM=OPER(nom="DEFI_FISS_XFEM",op= 41,sd_prod=fiss_xfem,reentrant='f' ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,3,) ), ) ; -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -8167,10 +8924,11 @@ DEFI_FISS_XFEM=OPER(nom="DEFI_FISS_XFEM",op= 41,sd_prod=fiss_xfem,reentrant='f' # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== DEFI_FLUI_STRU=OPER(nom="DEFI_FLUI_STRU",op= 143,sd_prod=type_flui_stru, - reentrant='n', + reentrant='n',fr="Définit les caractéristiques nécessaires à l'étude dynamique d'une structure sous écoulement", UIinfo={"groupes":("Maillage",)}, regles=( UN_PARMI('FAISCEAU_TRANS','GRAPPE','FAISCEAU_AXIAL','COQUE_COAX',),), FAISCEAU_TRANS =FACT(statut='f',max='**', + regles=( ENSEMBLE('CSTE_CONNORS','NB_CONNORS','RHO_TUBE'),), COUPLAGE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), CARA_ELEM =SIMP(statut='f',typ=cara_elem ), PROF_VITE_FLUI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), @@ -8183,6 +8941,9 @@ DEFI_FLUI_STRU=OPER(nom="DEFI_FLUI_STRU",op= 143,sd_prod=type_flui_stru, UNITE_CD =SIMP(statut='f',typ='I',defaut=70), UNITE_CK =SIMP(statut='f',typ='I',defaut=71), PAS =SIMP(statut='f',typ='R' ), + CSTE_CONNORS =SIMP(statut='f',typ='R',min=2,max=2,val_min=0.E+00), + NB_CONNORS =SIMP(statut='f',typ='I',val_min=2,), + RHO_TUBE =SIMP(statut='f',typ='R' ), ), GRAPPE =FACT(statut='f', regles=(ENSEMBLE('GRAPPE_2','NOEUD','CARA_ELEM','MODELE','RHO_FLUI',), @@ -8249,7 +9010,7 @@ DEFI_FLUI_STRU=OPER(nom="DEFI_FLUI_STRU",op= 143,sd_prod=type_flui_stru, ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -8269,7 +9030,7 @@ DEFI_FLUI_STRU=OPER(nom="DEFI_FLUI_STRU",op= 143,sd_prod=type_flui_stru, # ====================================================================== DEFI_FONC_ELEC=OPER(nom="DEFI_FONC_ELEC",op=64,sd_prod=fonction_sdaster,reentrant='n', UIinfo={"groupes":("Outils métier",)}, - fr="Définition d une fonction du temps pour calculer des forces de LAPLACE", + fr="Définir une fonction du temps intervenant dans le calcul des forces de LAPLACE", regles=(UN_PARMI('COUR_PRIN','COUR'), EXCLUS('COUR','COUR_SECO'), ), FREQ =SIMP(statut='f',typ='R',defaut= 50.), @@ -8318,7 +9079,7 @@ DEFI_FONC_ELEC=OPER(nom="DEFI_FONC_ELEC",op=64,sd_prod=fonction_sdaster,reentran ), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -8338,6 +9099,7 @@ DEFI_FONC_ELEC=OPER(nom="DEFI_FONC_ELEC",op=64,sd_prod=fonction_sdaster,reentran # ====================================================================== DEFI_FONC_FLUI=OPER(nom="DEFI_FONC_FLUI",op= 142,sd_prod=fonction_sdaster, reentrant='n', + fr="Définit un profil de vitesse d'écoulement fluide le long d'une poutre", UIinfo={"groupes":("Fonction",)}, MAILLAGE =SIMP(statut='o',typ=(maillage_sdaster) ), NOEUD_INIT =SIMP(statut='o',typ=no), @@ -8356,7 +9118,7 @@ DEFI_FONC_FLUI=OPER(nom="DEFI_FONC_FLUI",op= 142,sd_prod=fonction_sdaster, INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 16/06/2004 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -8383,7 +9145,7 @@ def defi_fonction_prod(VALE,VALE_PARA,VALE_C,NOEUD_PARA,**args): 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", + ,fr="Définit une fonction réelle ou complexe d'une variable réelle", reentrant='n', UIinfo={"groupes":("Fonction",)}, regles=(UN_PARMI('VALE','VALE_C','VALE_PARA','NOEUD_PARA'),), @@ -8412,7 +9174,7 @@ DEFI_FONCTION=OPER(nom="DEFI_FONCTION",op=3,sd_prod=defi_fonction_prod INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 09/05/2006 AUTEUR GALENNE E.GALENNE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -8432,8 +9194,8 @@ DEFI_FONCTION=OPER(nom="DEFI_FONCTION",op=3,sd_prod=defi_fonction_prod # ====================================================================== DEFI_FOND_FISS=OPER(nom="DEFI_FOND_FISS",op=55,sd_prod=fond_fiss,reentrant='n', UIinfo={"groupes":("Post traitements",)}, - fr="Définition de lèvres et d un fond de fissure en 3D", - regles=(UN_PARMI('FOND_FISS','FOND_FERME'), + fr="Définition de lèvres et d'un fond de fissure en 3D", + regles=(UN_PARMI('FOND_FISS','FOND_FERME','FOND_INF'), EXCLUS('FOND_FERME','DTAN_ORIG'), EXCLUS('FOND_FERME','DTAN_EXTR'), EXCLUS('FOND_FERME','VECT_GRNO_ORIG'), @@ -8441,6 +9203,9 @@ DEFI_FOND_FISS=OPER(nom="DEFI_FOND_FISS",op=55,sd_prod=fond_fiss,reentrant='n', UN_PARMI('LEVRE_SUP','NORMALE'), EXCLUS('LEVRE_INF','NORMALE'), ENSEMBLE('DTAN_ORIG','DTAN_EXTR'), + ENSEMBLE('FOND_SUP','FOND_INF'), + EXCLUS('FOND_INF','FOND_FISS'), + EXCLUS('FOND_INF','FOND_FERME'), ENSEMBLE('VECT_GRNO_ORIG','VECT_GRNO_EXTR'), EXCLUS('DTAN_ORIG','VECT_GRNO_ORIG'), EXCLUS('DTAN_EXTR','VECT_GRNO_EXTR') ,), @@ -8471,6 +9236,26 @@ DEFI_FOND_FISS=OPER(nom="DEFI_FOND_FISS",op=55,sd_prod=fond_fiss,reentrant='n', MAILLE_ORIG =SIMP(statut='f',typ=ma,), GROUP_MA_ORIG =SIMP(statut='f',typ=ma,), ), + FOND_INF =FACT(statut='f', + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + NOEUD_ORIG =SIMP(statut='f',typ=no,), + GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), + MAILLE_ORIG =SIMP(statut='f',typ=ma,), + GROUP_MA_ORIG =SIMP(statut='f',typ=ma,), + ), + FOND_SUP =FACT(statut='f', + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + NOEUD_ORIG =SIMP(statut='f',typ=no,), + GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), + MAILLE_ORIG =SIMP(statut='f',typ=ma,), + GROUP_MA_ORIG =SIMP(statut='f',typ=ma,), + ), LEVRE_SUP =FACT(statut='f', regles=(UN_PARMI('GROUP_MA','MAILLE'),), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), @@ -8482,13 +9267,14 @@ DEFI_FOND_FISS=OPER(nom="DEFI_FOND_FISS",op=55,sd_prod=fond_fiss,reentrant='n', MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), ), NORMALE =SIMP(statut='f',typ='R',max='**'), + PREC_NORM =SIMP(statut='f',typ='R',defaut=0.1), DTAN_ORIG =SIMP(statut='f',typ='R',max='**'), DTAN_EXTR =SIMP(statut='f',typ='R',max='**'), VECT_GRNO_ORIG =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2), VECT_GRNO_EXTR =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 25/10/2004 AUTEUR CIBHHLV L.VIVAN +#& MODIF COMMANDE DATE 04/07/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -8516,9 +9302,12 @@ DEFI_GROUP=OPER(nom="DEFI_GROUP",op= 104,sd_prod=defi_group_prod, fr="Définition de nouveaux groupes de noeuds et/ou de mailles dans un concept maillage", reentrant='o', UIinfo={"groupes":("Maillage",)}, - regles=(AU_MOINS_UN('CREA_GROUP_MA','CREA_GROUP_NO'),), + regles=(AU_MOINS_UN('CREA_GROUP_MA','CREA_GROUP_NO','DETR_GROUP_NO','DETR_GROUP_MA'),), MAILLAGE =SIMP(statut='o',typ=(maillage_sdaster,squelette) ), - + DETR_GROUP_MA =FACT(statut='f',max='**', + NOM =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),), + DETR_GROUP_NO =FACT(statut='f',max='**', + NOM =SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**'),), CREA_GROUP_MA =FACT(statut='f',max='**', regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','INTERSEC','UNION','DIFFE','OPTION'),), @@ -8687,7 +9476,7 @@ regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','INTERSEC','UNION','DIFFE','OPTION') ALARME =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), INFO =SIMP(statut='f',typ='I',into=( 1 , 2 ) ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -8705,8 +9494,8 @@ regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','INTERSEC','UNION','DIFFE','OPTION') # 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, - reentrant='n', +DEFI_INTE_SPEC=OPER(nom="DEFI_INTE_SPEC",op= 115,sd_prod=table_sdaster, + reentrant='n',fr="Définit une matrice interspectrale", UIinfo={"groupes":("Fonction",)}, DIMENSION =SIMP(statut='f',typ='I',defaut= 1 ), @@ -8747,7 +9536,7 @@ DEFI_INTE_SPEC=OPER(nom="DEFI_INTE_SPEC",op= 115,sd_prod=tabl_intsp, TITRE =SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -8768,6 +9557,7 @@ DEFI_INTE_SPEC=OPER(nom="DEFI_INTE_SPEC",op= 115,sd_prod=tabl_intsp, DEFI_INTERF_DYNA=OPER(nom="DEFI_INTERF_DYNA",op= 98,sd_prod=interf_dyna_clas, reentrant='n', UIinfo={"groupes":("Matrices/vecteurs",)}, + fr="Définir les interfaces d'une structure et leur affecter un type", NUME_DDL =SIMP(statut='o',typ=nume_ddl_sdaster ), INTERFACE =FACT(statut='o',max='**', regles=(ENSEMBLE('NOM','TYPE'), @@ -8783,7 +9573,7 @@ DEFI_INTERF_DYNA=OPER(nom="DEFI_INTERF_DYNA",op= 98,sd_prod=interf_dyna_clas, FREQ =SIMP(statut='f',typ='R',defaut= 1.), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -8803,7 +9593,7 @@ DEFI_INTERF_DYNA=OPER(nom="DEFI_INTERF_DYNA",op= 98,sd_prod=interf_dyna_clas, # ====================================================================== # RESPONSABLE VABHHTS J.PELLET DEFI_LIST_ENTI=OPER(nom="DEFI_LIST_ENTI",op=22,sd_prod=listis_sdaster, - fr="Définition d une suite croissante d entiers", + fr="Définir une liste d'entier strictement croissante", reentrant='n', UIinfo={"groupes":("Fonction",)}, regles=(UN_PARMI('VALE','DEBUT'), @@ -8819,7 +9609,7 @@ DEFI_LIST_ENTI=OPER(nom="DEFI_LIST_ENTI",op=22,sd_prod=listis_sdaster, INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -8839,7 +9629,7 @@ DEFI_LIST_ENTI=OPER(nom="DEFI_LIST_ENTI",op=22,sd_prod=listis_sdaster, # ====================================================================== # RESPONSABLE VABHHTS J.PELLET DEFI_LIST_REEL=OPER(nom="DEFI_LIST_REEL",op=24,sd_prod=listr8_sdaster, - fr="Définition d une suite croissante de réels", + fr="Définir une liste de réels strictement croissante", reentrant='n', UIinfo={"groupes":("Fonction",)}, regles=(UN_PARMI('VALE','DEBUT',), @@ -8856,7 +9646,7 @@ DEFI_LIST_REEL=OPER(nom="DEFI_LIST_REEL",op=24,sd_prod=listr8_sdaster, INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -8876,7 +9666,7 @@ DEFI_LIST_REEL=OPER(nom="DEFI_LIST_REEL",op=24,sd_prod=listr8_sdaster, # ====================================================================== # RESPONSABLE VABHHTS J.PELLET DEFI_MAILLAGE=OPER(nom="DEFI_MAILLAGE",op= 88,sd_prod=maillage_sdaster, - fr="Définition d un nouveau maillage à partir de macro éléments", + fr="Définition d'un nouveau maillage à partir de macro-éléments", reentrant='n', UIinfo={"groupes":("Maillage",)}, DEFI_MAILLE =FACT(statut='o',max='**', @@ -8935,7 +9725,7 @@ DEFI_MAILLAGE=OPER(nom="DEFI_MAILLAGE",op= 88,sd_prod=maillage_sdaster, GROUP_NO_FIN =SIMP(statut='f',typ=grno), ), ) ; -#& MODIF COMMANDE DATE 18/04/2005 AUTEUR PBADEL P.BADEL +#& MODIF COMMANDE DATE 29/05/2006 AUTEUR MJBHHPE J.L.FLEJOU # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -8959,7 +9749,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, 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'), + 'ELAS_HYPER',), EXCLUS('THER','THER_FO','THER_ORTH','THER_NL'), EXCLUS('ECRO_LINE','ECRO_LINE_FO'), EXCLUS('TAHERI','TAHERI_FO'), @@ -8972,7 +9762,6 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, EXCLUS('POLY_CFC','POLY_CFC_FO'), EXCLUS('LEMAITRE','LEMAITRE_FO','ZIRC_CYRA2','ZIRC_EPRI','VISC_IRRA_LOG', 'LEMA_SEUIL','LEMA_SEUIL_FO','LEMAITRE_IRRA','LMARC_IRRA',), - EXCLUS('OHNO','OHNO_FO'), EXCLUS('LMARC','LMARC_FO'), EXCLUS('VMIS_POUTRE','VMIS_POUTRE_FO'), EXCLUS('VENDOCHAB','VENDOCHAB_FO'), @@ -8983,10 +9772,12 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, PRESENT_PRESENT('CAM_CLAY','ELAS'), PRESENT_PRESENT('LAIGLE','ELAS'), PRESENT_PRESENT('DRUCK_PRAGER','ELAS'), + PRESENT_PRESENT('HOEK_BROWN','ELAS'), EXCLUS('MAZARS','MAZARS_FO'), PRESENT_PRESENT('BAZANT_FD','ELAS_FO'), EXCLUS('GLRC','GLRC_FO'), PRESENT_PRESENT('JOINT_BA','ELAS'), + PRESENT_PRESENT('CABLE','ELAS'), ), # # comportement élastique @@ -9014,7 +9805,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, K_DESSIC =SIMP(statut='f',typ='R',defaut= 0.E+0 ), B_ENDOGE =SIMP(statut='f',typ='R',defaut= 0.E+0 ), FONC_DESORP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST","HYDR","SECH",) ), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST","HYDR","SECH","NEUT1","NEUT2",) ), ), ELAS_FLUI =FACT(statut='f', E =SIMP(statut='o',typ='R'), @@ -9071,6 +9862,9 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, YT =SIMP(statut='f',typ='R',defaut= 1. ), YC =SIMP(statut='f',typ='R',defaut= 1. ), S_LT =SIMP(statut='f',typ='R',defaut= 1. ), + AMOR_ALPHA =SIMP(statut='f',typ='R'), + AMOR_BETA =SIMP(statut='f',typ='R'), + AMOR_HYST =SIMP(statut='f',typ='R'), ), ELAS_ORTH_FO =FACT(statut='f', regles=( @@ -9094,72 +9888,18 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, ALPHA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), ALPHA_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST",) ), + AMOR_ALPHA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + AMOR_BETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + AMOR_HYST =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), ), - ELAS_THM =FACT(statut='f', - 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', - 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', - 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', - 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_HYPER =FACT(statut='f', + regles=(UN_PARMI('K','NU'),), + C10 =SIMP(statut='f',typ='R',defaut=0.0), + C01 =SIMP(statut='o',typ='R'), + C20 =SIMP(statut='f',typ='R',defaut=0.0), + K =SIMP(statut='f',typ='R'), + RHO =SIMP(statut='f',typ='R',defaut=0.0), + NU =SIMP(statut='f',typ='R',val_min=-1.E+0,val_max=0.5E+0), ), ELAS_COQUE =FACT(statut='f', regles=(EXCLUS('MEMB_L','M_LLLL',), @@ -9278,12 +10018,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, E_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0), ), CABLE =FACT(statut='f', - 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 @@ -9381,17 +10116,6 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, EPSI_0 =SIMP(statut='o',typ='R'), M =SIMP(statut='o',typ='R'), ), - CHABOCHE =FACT(statut='f', - 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', R_0 =SIMP(statut='o',typ='R'), R_I =SIMP(statut='f',typ='R'), @@ -9494,7 +10218,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), ), POLY_CFC =FACT(statut='f', - TEXTURE =SIMP(statut='o',typ=(tabl_texture) ), + TEXTURE =SIMP(statut='o',typ=(table_sdaster) ), DL =SIMP(statut='f',typ='R'), DA =SIMP(statut='f',typ='R'), N =SIMP(statut='o',typ='R'), @@ -9510,7 +10234,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, C2 =SIMP(statut='o',typ='R'), ), POLY_CFC_FO =FACT(statut='f', - TEXTURE =SIMP(statut='o',typ=(tabl_texture) ), + TEXTURE =SIMP(statut='o',typ=(table_sdaster) ), DL =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), DA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), @@ -9609,6 +10333,19 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, S =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), ), + IRRAD3M=FACT(statut='f', + R02 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + EPSI_U =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + RM =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + AI0 =SIMP(statut='o',typ='R',val_min=0.0), + ZETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ETAI_S =SIMP(statut='o',typ='R',val_min=0.0), + R =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + ALPHA =SIMP(statut='o',typ='R',val_min=0.0), + PHI0 =SIMP(statut='o',typ='R',val_min=0.0), + KAPPA =SIMP(statut='f',typ='R',val_min=0.0,defaut=0.8,val_max=1.0), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","IRRA") ), + ), ZIRC_EPRI =FACT(statut='f', FLUX_PHI =SIMP(statut='o',typ='R'), R_P =SIMP(statut='o',typ='R'), @@ -9620,49 +10357,6 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, UN_SUR_M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), ), - OHNO =FACT(statut='f', - 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', - R_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - R_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - B =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PHI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A3 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A4 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A5 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - GAMMA1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - GAMMA2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - GAMMA3 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - GAMMA4 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - GAMMA5 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M3 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M4 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M5 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), LMARC =FACT(statut='f', DE_0 =SIMP(statut='o',typ='R'), R_0 =SIMP(statut='o',typ='R'), @@ -9773,6 +10467,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, KZ =SIMP(statut='o',typ='R'), KRX =SIMP(statut='o',typ='R'), KRZ =SIMP(statut='o',typ='R'), + R_P0 =SIMP(statut='f',typ='R',defaut= 1.E+4 ), ), DIS_CONTACT =FACT(statut='f', RIGI_NOR =SIMP(statut='f',typ='R' ), @@ -9803,6 +10498,33 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, C_PRAGER_MZ =SIMP(statut='f',typ='R',defaut= 0.E+0 ), VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("DRZ","INST","TEMP",) ), ), + DIS_GRICRA =FACT(statut='f', + KN_AX =SIMP(statut='o',typ='R' ), + KT_AX =SIMP(statut='o',typ='R' ), + COUL_AX =SIMP(statut='o',typ='R' ), + F_SER =SIMP(statut='f',typ='R' ), + F_SER_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ET_AX =SIMP(statut='f',typ='R',defaut=1.e-7 ), + ET_ROT =SIMP(statut='f',typ='R',defaut=1.e-7 ), + ANG1 =SIMP(statut='f',typ='R' ), + ANG2 =SIMP(statut='f',typ='R' ), + PEN1 =SIMP(statut='f',typ='R' ), + PEN2 =SIMP(statut='f',typ='R' ), + PEN3 =SIMP(statut='f',typ='R' ), + ANG1_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ANG2_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PEN1_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PEN2_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PEN3_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + regles=(EXCLUS('ANG1','ANG1_FO',), + UN_PARMI('ANG1','ANG1_FO',), + EXCLUS('F_SER','F_SER_FO',), + UN_PARMI('F_SER','F_SER_FO',), + PRESENT_PRESENT('ANG1','ANG2','PEN1','PEN2','PEN3',), + PRESENT_PRESENT('ANG1_FO','ANG2_FO','PEN1_FO','PEN2_FO','PEN3_FO',), + ), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("DRZ","INST","TEMP",) ), + ), NADAI_B =FACT(statut='f', F_C =SIMP(statut='o',typ='R'), F_T =SIMP(statut='o',typ='R'), @@ -10143,7 +10865,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, # comportement métallurgique # META_ACIER =FACT(statut='f', - TRC =SIMP(statut='o',typ=(tabl_trc) ), + TRC =SIMP(statut='o',typ=(table_sdaster) ), AR3 =SIMP(statut='o',typ='R'), ALPHA =SIMP(statut='o',typ='R'), MS0 =SIMP(statut='o',typ='R'), @@ -10312,8 +11034,6 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, # LE COMPORTEMENT DE COUPLAGE COMP_THM N EST VALABLE QUE POUR LES LOIS # DE COUPLAGE : LIQU_SATU,LIQU_GAZ,GAZ,LIQU_GAZ_ATM,LIQU_VAPE_GAZ,LIQU_VAPE # ET LIQU_AD_GAZ_VAPE -# POUR LES LOIS DE COUPLAGE LIQU_SATU_GAT ET LIQU_NSAT_GAT -# ON NE MODIFIE RIEN # LA CORRESPONDANCE AVEC LES VARIABLES CACHEES EST LA SUIVANTE : # 1 --> LIQU_SATU # 2 --> GAZ @@ -10321,8 +11041,6 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, # 4 --> LIQU_VAPE_GAZ # 5 --> LIQU_GAZ # 6 --> LIQU_GAZ_ATM -# 7 --> LIQU_SATU_GAT -# 8 --> LIQU_NSAT_GAT # 9 --> LIQU_AD_GAZ_VAPE # ================================================================================= COMP_THM = SIMP(statut='f', typ='TXM', @@ -10332,8 +11050,6 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, "LIQU_GAZ_ATM" , "LIQU_VAPE_GAZ" , "LIQU_VAPE" , - "LIQU_SATU_GAT" , - "LIQU_NSAT_GAT" , "LIQU_AD_GAZ_VAPE" , ) ), # ================================================================================= @@ -11358,192 +12074,6 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), ), ), -# ================================================================================= - b_liqusatugat = BLOC(condition = "COMP_THM == 'LIQU_SATU_GAT' ", - fr="Paramètres nécessaires pour une loi de couplage de type LIQU_SATU_GAT", - THM_LIQU =FACT(statut='f', - 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_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMBDA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LAMBDA_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - COEF_HENRY =SIMP(statut='f',typ='R'), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - THM_GAZ =FACT(statut='f', - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMBDA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LAMBDA_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - THM_VAPE_GAZ =FACT(statut='f', - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - THM_AIR_DISS = FACT(statut='f', - CP = SIMP(statut='f',typ='R'), - COEF_HENRY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",),), - ), - THM_INIT =FACT(statut='f', - 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'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEE CACHEE --------------------------------------------- -# --------------------------------------------------------------------------------- - COMP_THM = SIMP(statut='c',typ='R',defaut= 7.0,), - ), - THM_DIFFU =FACT(statut='f', - 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_sdaster,nappe_sdaster,formule)), - D_SATU_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - 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_sdaster,nappe_sdaster,formule)), - PERM_END =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), - PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_LIQU =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_LIQU_SATU=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICK =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FICK_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FICK_GAZ_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMBDA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LAMBDA_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_G_INTR =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CHAL_VAPO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), - ), - ), - b_liqunsatgat = BLOC(condition = "COMP_THM == 'LIQU_NSAT_GAT' ", - fr="Paramètres nécessaires pour une loi de couplage de type LIQU_NSAT_GAT", - THM_LIQU =FACT(statut='f', - 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_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMBDA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LAMBDA_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - COEF_HENRY =SIMP(statut='f',typ='R'), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - THM_GAZ =FACT(statut='f', - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMBDA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LAMBDA_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - THM_AIR_DISS = FACT(statut='f', - CP = SIMP(statut='f',typ='R'), - COEF_HENRY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - THM_VAPE_GAZ =FACT(statut='f', - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - THM_INIT =FACT(statut='f', - 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'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEE CACHEE --------------------------------------------- -# --------------------------------------------------------------------------------- - COMP_THM = SIMP(statut='c',typ='R',defaut= 8.0,), - ), - THM_DIFFU =FACT(statut='f', - 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_sdaster,nappe_sdaster,formule)), - D_SATU_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - 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_sdaster,nappe_sdaster,formule)), - PERM_END =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), - PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_LIQU =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_LIQU_SATU=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICK =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FICK_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FICK_GAZ_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMBDA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LAMBDA_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_G_INTR =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CHAL_VAPO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PV =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PG =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_S =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_PG =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_S =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), - ), - ), # courbes et coefficients associés à la fatigue et au dommage # FATIGUE =FACT(statut='f', @@ -11575,7 +12105,12 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), ), CISA_PLAN_CRIT =FACT(statut='f', - CRITERE =SIMP(statut='o',typ='TXM',into=("MATAKE","DANG_VAN_MODI_AC","DANG_VAN_MODI_AV","DOMM_MAXI") ), + CRITERE =SIMP(statut='o',typ='TXM',into=("MATAKE", + "DANG_VAN_MODI_AC", + "DANG_VAN_MODI_AV", + "DOMM_MAXI", + "FATEMI_SOCIE", + ) ), b_critere_matake =BLOC(condition="CRITERE=='MATAKE'", fr="Cisaillement plan critique critère de matake", @@ -11597,6 +12132,12 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, DOMM_B =SIMP(statut='o',typ='R'), COEF_CISA_TRAC =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0), ), + + b_critere_fate_soci =BLOC(condition="CRITERE=='FATEMI_SOCIE'", + fr="Critère de Fatemi et Socie, en élasticité ou élastoplasticité, pour le cas amplitude variable", + FATSOC_A =SIMP(statut='o',typ='R'), + COEF_CISA_TRAC =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0), + ), ), # # autres comportements ... @@ -11623,13 +12164,13 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, GC =SIMP(statut='o',typ='R'), SIGM_C =SIMP(statut='f',typ='R'), PENA_ADHERENCE =SIMP(statut='f',typ='R'), - PENA_CONTACT =SIMP(statut='f',typ='R',defaut=1.), + PENA_CONTACT =SIMP(statut='f',typ='R',defaut=1.), ), RUPT_FRAG_FO =FACT(statut='f', GC =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), SIGM_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), PENA_ADHERENCE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PENA_CONTACT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),defaut=1.), + PENA_CONTACT =SIMP(statut='f',typ='R',defaut=1.), VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), ), RCCM =FACT(statut='f', @@ -11682,6 +12223,19 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, TYPE_DP =SIMP(statut='c',typ='R',defaut= 2.0,), ), ), + HOEK_BROWN =FACT(statut='f', + GAMMA_RUP =SIMP(statut='o',typ='R'), + GAMMA_RES =SIMP(statut='o',typ='R'), + S_END =SIMP(statut='o',typ='R'), + S_RUP =SIMP(statut='o',typ='R'), + M_END =SIMP(statut='o',typ='R'), + M_RUP =SIMP(statut='o',typ='R'), + BETA =SIMP(statut='o',typ='R'), + ALPHAHB =SIMP(statut='o',typ='R'), + PHI_RUP =SIMP(statut='o',typ='R'), + PHI_RES =SIMP(statut='o',typ='R'), + PHI_END =SIMP(statut='f',typ='R'), + ), #### MONOCRISTAL ECOU_VISC1 =FACT(statut='f', @@ -11760,7 +12314,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 30/08/2004 AUTEUR NICOLAS O.NICOLAS +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -11780,6 +12334,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, # ====================================================================== DEFI_MODELE_GENE=OPER(nom="DEFI_MODELE_GENE",op= 126,sd_prod=modele_gene, reentrant='n', + fr="Créer la structure globale à partir des sous-structures en sous-structuration dynamique", UIinfo={"groupes":("Matrices/vecteurs",)}, SOUS_STRUC =FACT(statut='o',max='**', NOM =SIMP(statut='o',typ='TXM' ), @@ -11808,7 +12363,7 @@ DEFI_MODELE_GENE=OPER(nom="DEFI_MODELE_GENE",op= 126,sd_prod=modele_gene, ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -11827,7 +12382,7 @@ DEFI_MODELE_GENE=OPER(nom="DEFI_MODELE_GENE",op= 126,sd_prod=modele_gene, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== DEFI_NAPPE=OPER(nom="DEFI_NAPPE",op= 4,sd_prod=nappe_sdaster, - fr="Définition des valeurs d une fonction de deux variables réelles", + fr="Définir une fonction réelle de deux variables réelles", reentrant='n', UIinfo={"groupes":("Fonction",)}, regles=(UN_PARMI('FONCTION','DEFI_FONCTION'), @@ -11852,7 +12407,7 @@ DEFI_NAPPE=OPER(nom="DEFI_NAPPE",op= 4,sd_prod=nappe_sdaster, VERIF =SIMP(statut='f',typ='TXM',into=("CROISSANT",) ), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -11871,7 +12426,7 @@ DEFI_NAPPE=OPER(nom="DEFI_NAPPE",op= 4,sd_prod=nappe_sdaster, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== DEFI_OBSTACLE=OPER(nom="DEFI_OBSTACLE",op= 73,sd_prod=obstacle_sdaster - ,fr="Définition d un obstacle plan perpendiculaire à une structure filaire", + ,fr="Définition d'un obstacle plan perpendiculaire à une structure filaire", reentrant='n', UIinfo={"groupes":("Modélisation",)}, TYPE =SIMP(statut='o',typ='TXM',defaut="CERCLE", @@ -11937,7 +12492,7 @@ DEFI_PARA_SENSI=OPER(nom="DEFI_PARA_SENSI",op= 2,sd_prod=para_sensi, ang="Value of the parameter"), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 15/11/2004 AUTEUR ASSIRE A.ASSIRE +#& MODIF COMMANDE DATE 30/08/2005 AUTEUR ASSIRE A.ASSIRE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG @@ -11955,24 +12510,50 @@ DEFI_PARA_SENSI=OPER(nom="DEFI_PARA_SENSI",op= 2,sd_prod=para_sensi, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE BOITEAU O.BOITEAU +# RESPONSABLE ASSIRE A.ASSIRE from Macro.defi_part_feti_ops import defi_part_feti_ops DEFI_PART_FETI=MACRO(nom="DEFI_PART_FETI",op=defi_part_feti_ops,sd_prod=sd_feti_sdaster, - reentrant='n', + reentrant='n',UIinfo={"groupe":("Maillage",)}, fr="Creation partitionnement en sous-domaines pour FETI", - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), + regles=(UN_PARMI('MAILLAGE','MODELE'),), + MAILLAGE =SIMP(statut='f',typ=maillage_sdaster), MODELE =SIMP(statut='f',typ=modele_sdaster), - NB_PART =SIMP(statut='o',typ='I'), + NB_PART =SIMP(statut='o',typ='I',val_min=2), EXCIT =FACT(statut='f',max='**', CHARGE =SIMP(statut='f',typ=(char_meca,char_cine_meca)),), - METHODE =SIMP(statut='o',typ='TXM',into=("PMETIS","KMETIS","AUTRE",), defaut="PMETIS" ), - b_methode =BLOC(condition="METHODE == 'AUTRE'", fr="Autre logiciel", - LOGICIEL =SIMP(statut='f',typ='TXM'), - ), + + # Methode de partitionnement + METHODE =SIMP(statut='f',typ='TXM',into=("PMETIS","SCOTCH","KMETIS",), defaut="SCOTCH" ), + + LOGICIEL =SIMP(statut='f',typ='TXM'), + + # Corrige les problemes possibles de non-connexite des sous-domaines + CORRECTION_CONNEX =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON')), + + # Permet de grouper des mailles dans un meme sous-doamine + GROUPAGE =FACT(statut='f',max='**', + GROUP_MA =SIMP(statut='o',typ=grma,), + ), + # Permet d'appliquer des poids sur certaines mailles + POIDS_MAILLES =FACT(statut='f',max='**', + GROUP_MA =SIMP(statut='o',typ=grma,), + POIDS =SIMP(statut='f',typ='I',val_min=2), + ), + # Prefixe pour le nom des group_ma definissant les sous-domaines NOM_GROUP_MA =SIMP(statut='f',typ='TXM',defaut='SD' ), - INFO =SIMP(statut='f',typ='I',into=(1, 2, 3, 4,5), defaut=1), + + # Traiter les mailles de bords (elles sont enlevees du graphe puis reinjectees) + TRAITER_BORDS =SIMP(statut='f',typ='TXM',defaut='OUI',into=('OUI','NON') ), + + # Si le mot-clé suivant est renseigné, crée de nouveau group_ma a partir des bords + # Note : le calcul FETI sera impossible + b_traiter_bords =BLOC(condition="TRAITER_BORDS == 'OUI'", fr="Crée t on des nouveaux group_ma", + NOM_GROUP_MA_BORD =SIMP(statut='f',typ='TXM'), + ), + + INFO =SIMP(statut='f',typ='I',into=(1, 2), defaut=1), ); #& MODIF COMMANDE DATE 22/02/2005 AUTEUR DURAND C.DURAND # CONFIGURATION MANAGEMENT OF EDF VERSION @@ -12010,7 +12591,67 @@ DEFI_PART_OPS=OPER(nom="DEFI_PART_OPS",op=21,sd_prod=sd_feti_sdaster, CHARGE =SIMP(statut='f',typ=(char_meca,char_cine_meca)), ), ); -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS +#& MODIF COMMANDE DATE 30/08/2005 AUTEUR ASSIRE A.ASSIRE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# RESPONSABLE ASSIRE A.ASSIRE + +DEFI_PART_PA_OPS=OPER(nom="DEFI_PART_PA_OPS",op=29,sd_prod=sd_feti_sdaster, + fr="Creation partitionnement en sous-domaines pour FETI", + docu="U4.00.00",reentrant='n', + UIinfo={"groupes":("Résolution",)}, + MAILLAGE =SIMP(statut='o',typ=(maillage_sdaster,squelette) ), + MODELE =SIMP(statut='f',typ=(modele_sdaster)), + NB_PART =SIMP(statut='o',typ='I',), + + # Methode de partitionnement + METHODE =SIMP(statut='f',typ='TXM',into=("PMETIS","SCOTCH","KMETIS",), defaut="SCOTCH" ), + + LOGICIEL =SIMP(statut='f',typ='TXM'), + + # Corrige les problemes possibles de non-connexite des sous-domaines + CORRECTION_CONNEX =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON')), + + # Permet de grouper des mailles dans un meme sous-doamine + GROUPAGE =FACT(statut='f',max='**', + GROUP_MA =SIMP(statut='o',typ=grma,), + ), + # Permet d'appliquer des poids sur certaines mailles + POIDS_MAILLES =FACT(statut='f',max='**', + GROUP_MA =SIMP(statut='o',typ=grma,), + POIDS =SIMP(statut='f',typ='I'), + ), + # Prefixe pour le nom des group_ma definissant les sous-domaines + NOM_GROUP_MA =SIMP(statut='f',typ='TXM',defaut='SD' ), + + # Traiter les mailles de bords (elles sont enlevees du graphe puis reinjectees) + TRAITER_BORDS =SIMP(statut='f',typ='TXM',defaut='OUI',into=('OUI','NON') ), + + # Si le mot-clé suivant est renseigné, crée de nouveau group_ma a partir des bords + # Note : le calcul FETI sera impossible + b_traiter_bords =BLOC(condition="TRAITER_BORDS == 'OUI'", fr="Crée t on des nouveaux group_ma", + NOM_GROUP_MA_BORD =SIMP(statut='f',typ='TXM'), + ), + + INFO =SIMP(statut='f',typ='I',into=(1, 2), defaut=1), + +); +#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -12091,7 +12732,7 @@ DEFI_SPEC_TURB=OPER(nom="DEFI_SPEC_TURB",op= 145,sd_prod=spectre_sdaster, SPEC_FONC_FORME =FACT(statut='f', regles=(UN_PARMI('INTE_SPEC','GRAPPE_1'), ENSEMBLE('INTE_SPEC','FONCTION'),), - INTE_SPEC =SIMP(statut='f',typ=tabl_intsp ), + INTE_SPEC =SIMP(statut='f',typ=table_sdaster), FONCTION =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'), GRAPPE_1 =SIMP(statut='f',typ='TXM',into=("DEBIT_180","DEBIT_300",) ), NOEUD =SIMP(statut='o',typ=no), @@ -12100,7 +12741,7 @@ DEFI_SPEC_TURB=OPER(nom="DEFI_SPEC_TURB",op= 145,sd_prod=spectre_sdaster, ), SPEC_EXCI_POINT =FACT(statut='f', regles=(UN_PARMI('INTE_SPEC','GRAPPE_2'),), - INTE_SPEC =SIMP(statut='f',typ=tabl_intsp ), + INTE_SPEC =SIMP(statut='f',typ=table_sdaster), 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 @@ -12118,7 +12759,7 @@ DEFI_SPEC_TURB=OPER(nom="DEFI_SPEC_TURB",op= 145,sd_prod=spectre_sdaster, ), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 15/02/2005 AUTEUR NICOLAS O.NICOLAS +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -12137,7 +12778,7 @@ DEFI_SPEC_TURB=OPER(nom="DEFI_SPEC_TURB",op= 145,sd_prod=spectre_sdaster, # 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", + fr="Définit un maillage pour visualiser les résultats d'une sous-structuration dynamique", reentrant='n', UIinfo={"groupes":("Maillage",)}, regles=(UN_PARMI('CYCLIQUE','MODELE_GENE','MAILLAGE'), @@ -12194,7 +12835,7 @@ DEFI_SQUELETTE=OPER(nom="DEFI_SQUELETTE",op= 110,sd_prod=squelette, ), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 22/11/2004 AUTEUR JMBHH01 J.M.PROIX +#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -12212,8 +12853,8 @@ DEFI_SQUELETTE=OPER(nom="DEFI_SQUELETTE",op= 110,sd_prod=squelette, # 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=" ",reentrant='n', +DEFI_TEXTURE=OPER(nom="DEFI_TEXTURE",op= 181,sd_prod=table_sdaster,reentrant='n', + fr="Définir pour un materiau CFC, les orientations cristillographiques et leur système de glissement ", UIinfo={"groupes":("Modélisation",)}, SYST_GLISSEMENT =FACT(statut='o',min=3,max=3, N =SIMP(statut='o',typ='R',min=12,max=12 ), @@ -12225,7 +12866,7 @@ DEFI_TEXTURE=OPER(nom="DEFI_TEXTURE",op= 181,sd_prod=tabl_texture, ), TITRE =SIMP(statut='f',typ='TXM',max='**' ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -12243,31 +12884,25 @@ DEFI_TEXTURE=OPER(nom="DEFI_TEXTURE",op= 181,sd_prod=tabl_texture, # 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_sdaster,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_sdaster), - 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',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), +DEFI_TRC=OPER(nom="DEFI_TRC",op=94,sd_prod=table_sdaster,reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + fr="Définir d'un diagramme de transformations en refroidissement continu (TRC) de référence d'un acier" + +" pour les calculs métallurgiques.", + HIST_EXP =FACT(statut='o',max='**', + VALE =SIMP(statut='o',typ='R',max='**'), + ), + TEMP_MS =FACT(statut='o',max='**', + SEUIL =SIMP(statut='o',typ='R'), + AKM =SIMP(statut='o',typ='R'), + BKM =SIMP(statut='o',typ='R'), + TPLM =SIMP(statut='o',typ='R'), + ), + GRAIN_AUST =FACT(statut='f',max='**', + DREF =SIMP(statut='f',typ='R'), + A =SIMP(statut='f',typ='R'), ), ) ; - -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -12285,49 +12920,14 @@ DEFI_THER_JOULE=OPER(nom="DEFI_THER_JOULE",op= 121,sd_prod=fonction_sdaster,reen # 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,reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - fr="Définition d un diagramme de transformations en refroidissement continu d un acier", - HIST_EXP =FACT(statut='o',max='**', - VALE =SIMP(statut='o',typ='R',max='**'), - ), - TEMP_MS =FACT(statut='o',max='**', - SEUIL =SIMP(statut='o',typ='R'), - AKM =SIMP(statut='o',typ='R'), - BKM =SIMP(statut='o',typ='R'), - TPLM =SIMP(statut='o',typ='R'), - ), - GRAIN_AUST =FACT(statut='f',max='**', - DREF =SIMP(statut='f',typ='R'), - A =SIMP(statut='f',typ='R'), - ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEPL_INTERNE=OPER(nom="DEPL_INTERNE",op=89,sd_prod=cham_no_depl_r,reentrant='n', +DEPL_INTERNE=OPER(nom="DEPL_INTERNE",op=89,sd_prod=cham_no_sdaster,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), + fr="Calculer le champ de déplacement à l'intérieur d'une sous-structure statique", + DEPL_GLOBAL =SIMP(statut='o',typ=cham_no_sdaster), MAILLE =SIMP(statut='o',typ=ma,), NOM_CAS =SIMP(statut='f',typ='TXM',defaut=" "), ) ; -#& MODIF COMMANDE DATE 03/11/2004 AUTEUR MCOURTOI M.COURTOIS +#& MODIF COMMANDE DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -12345,13 +12945,17 @@ DEPL_INTERNE=OPER(nom="DEPL_INTERNE",op=89,sd_prod=cham_no_depl_r,reentrant='n', # 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, +DETRUIRE=MACRO(nom="DETRUIRE",op=-7, UIinfo={"groupes":("Gestion du travail",)}, - fr="Destruction d un concept utilisateur dans la base GLOBALE", + fr="Détruit des concepts utilisateurs dans la base GLOBALE ou des objets JEVEUX", op_init=ops.detruire, - regles=(UN_PARMI('CONCEPT','OBJET',),), + regles=(UN_PARMI('CONCEPT','OBJET',),), CONCEPT =FACT(statut='f',max='**', + regles=(DERIVABLE('NOM'),), NOM =SIMP(statut='o',typ=assd,validators=NoRepeat(),max='**'), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(), + fr="Paramètre de sensibilité.", + ang="Sensitivity parameter",max='**'), ), OBJET =FACT(statut='f',max='**', CLASSE =SIMP(statut='f',typ='TXM',into=('G','V','L'),defaut='G'), @@ -12361,7 +12965,7 @@ DETRUIRE=PROC(nom="DETRUIRE",op=-7, ALARME =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI',), INFO =SIMP(statut='f',typ='I',into=(1,2),defaut=2, ), ); -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -12379,45 +12983,8 @@ DETRUIRE=PROC(nom="DETRUIRE",op=-7, # 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_sdaster,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_sdaster), - RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,evol_noli) ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",)), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - GROUP_MA_1 =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),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 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -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", +DYNA_ALEA_MODAL=OPER(nom="DYNA_ALEA_MODAL",op= 131,sd_prod=table_sdaster + ,fr="Calcul de la réponse spectrale d'une structure linéaire sous une excitation connue par sa DSP", reentrant='n', UIinfo={"groupes":("Résolution",)}, BASE_MODALE =FACT(statut='o', @@ -12436,7 +13003,7 @@ DYNA_ALEA_MODAL=OPER(nom="DYNA_ALEA_MODAL",op= 131,sd_prod=tabl_intsp # MODE_STAT devrait etre dans EXCIT car est utile et obligatoire que si NOM_CMP=depl_r, on pourrait # ainsi rajouter un bloc du genre b_mod_stat= BLOC(condition = "(GRANDEUR == None) or (GRANDEUR == 'DEPL_R')", EXCIT =FACT(statut='o', - INTE_SPEC =SIMP(statut='o',typ=tabl_intsp ), + INTE_SPEC =SIMP(statut='o',typ=table_sdaster), NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG",) ), MODAL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), @@ -12500,7 +13067,7 @@ DYNA_ALEA_MODAL=OPER(nom="DYNA_ALEA_MODAL",op= 131,sd_prod=tabl_intsp TITRE =SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; -#& MODIF COMMANDE DATE 22/02/2005 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -12518,22 +13085,23 @@ DYNA_ALEA_MODAL=OPER(nom="DYNA_ALEA_MODAL",op= 131,sd_prod=tabl_intsp # 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 - if AsType(MATR_MASS) == matr_asse_gene_c : return harm_gene - raise AsException("type de concept resultat non prevu") +def dyna_line_harm_prod(MATR_RIGI,**args): + if (AsType(MATR_RIGI) == matr_asse_depl_r) : return dyna_harmo + elif (AsType(MATR_RIGI) == matr_asse_depl_c) : return dyna_harmo + elif (AsType(MATR_RIGI) == matr_asse_pres_c) : return acou_harmo + elif (AsType(MATR_RIGI) == matr_asse_gene_r) : return harm_gene + elif (AsType(MATR_RIGI) == matr_asse_gene_c) : return harm_gene + raise AsException("type de concept resultat non prevu") DYNA_LINE_HARM=OPER(nom="DYNA_LINE_HARM",op= 60,sd_prod=dyna_line_harm_prod, - fr="Réponse dynamique complexe d un système à une excitation harmonique", - reentrant='n', + fr="Calcul de la réponse dynamique complexe d'un système à une excitation harmonique", + reentrant='f', UIinfo={"groupes":("Résolution",)}, regles=(PRESENT_ABSENT('AMOR_REDUIT','MATR_AMOR'), PRESENT_ABSENT('AMOR_REDUIT','LIST_AMOR'), PRESENT_ABSENT('MATR_AMOR','LIST_AMOR'), - UN_PARMI('FREQ','LIST_FREQ'),), + UN_PARMI('FREQ','LIST_FREQ'), + CONCEPT_SENSIBLE('ENSEMBLE'),), MODELE =SIMP(statut='f',typ=modele_sdaster ), CHAM_MATER =SIMP(statut='f',typ=cham_mater ), CARA_ELEM =SIMP(statut='f',typ=cara_elem ), @@ -12548,10 +13116,14 @@ DYNA_LINE_HARM=OPER(nom="DYNA_LINE_HARM",op= 60,sd_prod=dyna_line_harm_prod, LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",)), NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3,into=("DEPL","VITE","ACCE") ), + b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : RESULTAT obligatoire", + RESULTAT =SIMP(statut='o',typ=(dyna_harmo,harm_gene)), + ), EXCIT =FACT(statut='o',max='**', regles=(UN_PARMI('VECT_ASSE','CHARGE'), - UN_PARMI('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),), - VECT_ASSE =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_depl_c,cham_no_pres_c,vect_asse_gene_r,vect_asse_gene_c ) ), + UN_PARMI('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'), + ), + VECT_ASSE =SIMP(statut='f',typ=(cham_no_sdaster,vect_asse_gene) ), CHARGE =SIMP(statut='f',typ=char_meca ), TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), FONC_MULT_C =SIMP(statut='f',typ=fonction_c ), @@ -12569,30 +13141,31 @@ DYNA_LINE_HARM=OPER(nom="DYNA_LINE_HARM",op= 60,sd_prod=dyna_line_harm_prod, # 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 30/06/2004 AUTEUR MCOURTOI M.COURTOIS +#& MODIF COMMANDE DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== 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", + fr="Calcul de la réponse dynamique transitoire à une excitation temporelle quelconque", reentrant='f', UIinfo={"groupes":("Résolution",)}, # regles=(UN_PARMI('WILSON','DIFF_CENTRE','ADAPT'),), - regles=(UN_PARMI('NEWMARK','WILSON','DIFF_CENTRE','ADAPT'),), + regles=(UN_PARMI('NEWMARK','WILSON','DIFF_CENTRE','ADAPT'), + CONCEPT_SENSIBLE('ENSEMBLE'),), MODELE =SIMP(statut='f',typ=modele_sdaster ), CHAM_MATER =SIMP(statut='f',typ=cham_mater ), CARA_ELEM =SIMP(statut='f',typ=cara_elem ), @@ -12612,8 +13185,8 @@ DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op= 48,sd_prod=dyna_trans, ADAPT =FACT(statut='f', ), ETAT_INIT =FACT(statut='f', - regles=(AU_MOINS_UN('DYNA_TRANS', 'DEPL_INIT', 'VITE_INIT',), - PRESENT_ABSENT('DYNA_TRANS', 'DEPL_INIT', 'VITE_INIT'),), + regles=(AU_MOINS_UN('DYNA_TRANS', 'DEPL_INIT', 'VITE_INIT', 'ACCE_INIT'), + PRESENT_ABSENT('DYNA_TRANS', 'DEPL_INIT', 'VITE_INIT', 'ACCE_INIT'),), DYNA_TRANS =SIMP(statut='f',typ=dyna_trans ), b_dyna_trans =BLOC(condition = "DYNA_TRANS != None", regles=(EXCLUS('NUME_INIT','INST_INIT' ),), @@ -12624,8 +13197,9 @@ DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op= 48,sd_prod=dyna_trans, 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) ), + DEPL_INIT =SIMP(statut='f',typ=cham_no_sdaster), + VITE_INIT =SIMP(statut='f',typ=cham_no_sdaster), + ACCE_INIT =SIMP(statut='f',typ=cham_no_sdaster), ), EXCIT =FACT(statut='f',max='**', regles=(UN_PARMI('CHARGE','VECT_ASSE'), @@ -12636,7 +13210,7 @@ DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op= 48,sd_prod=dyna_trans, PRESENT_PRESENT('ACCE','VITE','DEPL'), # PRESENT_ABSENT('MULT_APPUI','FONC_MULT'), ), - VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r ), + VECT_ASSE =SIMP(statut='f',typ=cham_no_sdaster), CHARGE =SIMP(statut='f',typ=char_meca ), FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), COEF_MULT =SIMP(statut='f',typ='R' ), @@ -12655,26 +13229,52 @@ DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op= 48,sd_prod=dyna_trans, 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', - 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 ), + METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ), + + b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", + RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), + ), + + b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), + ), + + b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT'", + fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", + NPREC =SIMP(statut='f',typ='I',defaut=8), + STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + + b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", + PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), + NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), + RESI_RELA =SIMP(statut='f',typ='R',defaut=1.E-6), + NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), + ), + + b_mumps =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS", + TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')), + PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=20,), + RESI_RELA =SIMP(statut='f',typ='R',defaut=1.E-6), + ), ), + INCREMENT =FACT(statut='o',max='**', regles=(UN_PARMI('LIST_INST','FONC_INST','PAS'),), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), - FONC_INST =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), + FONC_INST =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), PAS =SIMP(statut='f',typ='R' ), b_pas =BLOC(condition = "PAS != None", INST_INIT =SIMP(statut='f',typ='R' ), - INST_FIN =SIMP(statut='f',typ='R' ), + 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' ), + 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 ), @@ -12691,13 +13291,13 @@ DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op= 48,sd_prod=dyna_trans, CHAM_EXCLU =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","VITE","ACCE") ), ), SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des param\350tres de sensibilit\351.", + fr="Liste des paramétres de sensibilité.", ang="List of sensitivity parameters", ), TITRE =SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 01/04/2005 AUTEUR VABHHTS J.PELLET +#& MODIF COMMANDE DATE 16/05/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -12716,10 +13316,11 @@ DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op= 48,sd_prod=dyna_trans, # 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", + fr="Calcul de l'évolution dynamique d'une structure dont le matériau ou la géométrie ont un comportement non linéaire", UIinfo={"groupes":("Résolution",)}, regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',), - UN_PARMI('NEWMARK','HHT','TETA_METHODE', ),), + UN_PARMI('NEWMARK','HHT','TETA_METHODE',), + CONCEPT_SENSIBLE('ENSEMBLE'),), MODELE =SIMP(statut='o',typ=modele_sdaster), CHAM_MATER =SIMP(statut='o',typ=cham_mater), MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)), @@ -12748,24 +13349,22 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f', MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',), ), AMOR_MODAL =FACT(statut='f', + regles=(EXCLUS('AMOR_REDUIT','LIST_AMOR'),), MODE_MECA =SIMP(statut='f',typ=mode_meca), AMOR_REDUIT =SIMP(statut='f',typ='R',max='**' ), + LIST_AMOR =SIMP(statut='f',typ=listr8_sdaster ), NB_MODE =SIMP(statut='f',typ='I',defaut= 9999 ), REAC_VITE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), ), - VARI_COMM =FACT(statut='f', - regles=(AU_MOINS_UN('IRRA',),), - IRRA =SIMP(statut='f',typ=evol_varc), - CORROSION =SIMP(statut='f',typ=carte_corr_r), - ), COMP_INCR =C_COMP_INCR(), COMP_ELAS =FACT(statut='f',max='**', RELATION =SIMP(statut='o',typ='TXM',defaut="ELAS", into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC", - "ELAS_POUTRE_GR","CABLE")), + "ELAS_POUTRE_GR","CABLE","ELAS_HYPER")), ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut=1,into=(1,)), ELAS_VMIS_LINE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), + ELAS_HYPER =SIMP(statut='c',typ='I',defaut=1,into=(1,)), ELAS_POUTRE_GR =SIMP(statut='c',typ='I',defaut=3,into=(3,)), CABLE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ), @@ -12773,22 +13372,29 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f', TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6), + ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), + ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), + RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", + into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), ), #------------------------------------------------------------------- b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : ETAT_INIT obligatoire", ETAT_INIT =FACT(statut='o', - regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','SIGM','VARI','VARI_NON_LOCAL',), + regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','ACCE','SIGM','VARI','VARI_NON_LOCAL',), EXCLUS('EVOL_NOLI','DEPL',), EXCLUS('EVOL_NOLI','VITE'), + EXCLUS('EVOL_NOLI','ACCE'), EXCLUS('EVOL_NOLI','SIGM',), EXCLUS('EVOL_NOLI','VARI',), EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), EXCLUS('NUME_ORDRE','INST'), ), - DEPL =SIMP(statut='f',typ=cham_no_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), + DEPL =SIMP(statut='f',typ=cham_no_sdaster), + VITE =SIMP(statut='f',typ=cham_no_sdaster), + ACCE =SIMP(statut='f',typ=cham_no_sdaster), + SIGM =SIMP(statut='f',typ=(cham_elem,carte_sdaster)), + VARI =SIMP(statut='f',typ=cham_elem), + VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_sdaster), EVOL_NOLI =SIMP(statut='f',typ=evol_noli), NUME_ORDRE =SIMP(statut='f',typ='I'), INST =SIMP(statut='f',typ='R'), @@ -12799,18 +13405,20 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f', ),), b_not_reuse =BLOC(condition = "not reuse",fr="en mode concept non reentrant : ETAT_INIT facultatif", ETAT_INIT =FACT(statut='f', - regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','SIGM','VARI','VARI_NON_LOCAL',), + regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','ACCE','SIGM','VARI','VARI_NON_LOCAL',), EXCLUS('EVOL_NOLI','DEPL',), EXCLUS('EVOL_NOLI','VITE'), + EXCLUS('EVOL_NOLI','ACCE'), EXCLUS('EVOL_NOLI','SIGM',), EXCLUS('EVOL_NOLI','VARI',), EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), EXCLUS('NUME_ORDRE','INST'), ), - DEPL =SIMP(statut='f',typ=cham_no_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), + DEPL =SIMP(statut='f',typ=cham_no_sdaster), + VITE =SIMP(statut='f',typ=cham_no_sdaster), + ACCE =SIMP(statut='f',typ=cham_no_sdaster), + SIGM =SIMP(statut='f',typ=(cham_elem,carte_sdaster)), + VARI =SIMP(statut='f',typ=cham_elem), + VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_sdaster), EVOL_NOLI =SIMP(statut='f',typ=evol_noli), NUME_ORDRE =SIMP(statut='f',typ='I'), INST =SIMP(statut='f',typ='R'), @@ -12845,8 +13453,8 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f', DELTA =SIMP(statut='f',typ='R',defaut= 0.5), ), HHT =FACT(statut='f', - ALPHA =SIMP(statut='f',typ='R' - ,defaut= -0.29999999999999999 ), + ALPHA =SIMP(statut='f',typ='R',defaut= -0.3 ), + MODI_EQUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), ), TETA_METHODE =FACT(statut='f', TETA =SIMP(statut='f',typ='R' @@ -12860,6 +13468,7 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f', REAC_ITER_ELAS =SIMP(statut='f',typ='I',defaut=0), PAS_MINI_ELAS =SIMP(statut='f',typ='R',defaut=0.0E+0), ), + PARM_THETA =SIMP(statut='f',typ='R',defaut= 1. ), SOLVEUR =FACT(statut='d', METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ), b_mult_front =BLOC(condition= "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", @@ -12927,12 +13536,53 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f', ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25), ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), - RESI_INTE_RELA =SIMP(statut='f',typ='R' - ,defaut= 1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", - into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), + ), +#------------------------------------------------------------------- + SUIVI_DDL = FACT(statut='f',max=4, + regles=(UN_PARMI('NOEUD','MAILLE'), + PRESENT_PRESENT('MAILLE','POINT'),), + NUME_SUIVI =SIMP(statut='o',typ='I' ,min=1,max=4), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1, + into=("DEPL","VITE","ACCE","SIEF_ELGA", + "VARI_ELGA","FORC_NODA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU",)), + NOM_CMP =SIMP(statut='o',typ='TXM',max=1 ), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=1), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max=1), + POINT =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max=1), + ), + + AFFICHAGE = FACT(statut='f',max=16, + + UNITE = SIMP(statut='f',typ='I',val_min=1), + + LONG_R = SIMP(statut='f',typ='I',defaut=12,val_min=1,val_max=12), + PREC_R = SIMP(statut='f',typ='I',defaut=5, val_min=1,val_max=8), + LONG_I = SIMP(statut='f',typ='I',defaut=6, val_min=1,val_max=12), + + NOM_COLONNE = SIMP(statut='o',typ='TXM',defaut="STANDARD", + into=("STANDARD","MINIMUM", + "ITER_NEWT", + "INCR_TPS", + "RESI_RELA","RELA_NOEU", + "RESI_MAXI","MAXI_NOEU", + "RESI_REFE","REFE_NOEU", + "RELI_ITER","RELI_COEF", + "PILO_PARA", + "LAGR_ECAR","LAGR_INCR","LAGR_ITER", + "MATR_ASSE", + "ITER_DEBO", + "CTCD_ITER","CTCD_INFO","CTCD_GEOM","CTCD_NOEU", + "CTCC_GEOM","CTCC_FROT","CTCC_CONT", + "SUIV_1","SUIV_2","SUIV_3","SUIV_4", + ), + ), + b_residu = BLOC(condition = " NOM_COLONNE == 'RESI_RELA' or \ + NOM_COLONNE == 'RESI_MAXI' or\ + NOM_COLONNE == 'RESI_REFE' or\ + NOM_COLONNE == 'CTCD_GEOM' or\ + NOM_COLONNE == 'STANDARD' ", + INFO_RESIDU = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), + ), ), #------------------------------------------------------------------- ARCHIVAGE =FACT(statut='f', @@ -12966,6 +13616,16 @@ into=("DEPL","VITE","ACCE","SIEF_ELGA","VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU"," MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), POINT =SIMP(statut='f',typ='I' ,max='**'), ), +#------------------------------------------------------------------- + CRIT_FLAMB =FACT(statut='f',min=1,max=1, + NB_FREQ =SIMP(statut='f',typ='I',max=1,defaut=3), + CHAR_CRIT =SIMP(statut='f',typ='R',min=2,max=2,defaut=(-10.0,10.), + fr="Valeur des deux charges critiques délimitant la bande de recherche en HPP"), + ), + MODE_VIBR =FACT(statut='f',min=1,max=1, + MATR_RIGI =SIMP(statut='f',typ='TXM',defaut="ELASTIQUE",into=("ELASTIQUE","TANGENTE") ), + NB_FREQ =SIMP(statut='f',typ='I',max=1,defaut=3), + ), #------------------------------------------------------------------- SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', fr="Liste des paramètres de sensibilité", @@ -13004,14 +13664,11 @@ into=("DEPL","VITE","ACCE","SIEF_ELGA","VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU"," 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 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -13029,18 +13686,18 @@ into=("DEPL","VITE","ACCE","SIEF_ELGA","VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU"," # 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, +DYNA_SPEC_MODAL=OPER(nom="DYNA_SPEC_MODAL",op= 147,sd_prod=table_sdaster, fr="Calcul de la réponse par recombinaison modale d'une structure linéaire pour une excitation aléatoire", reentrant='n', UIinfo={"groupes":("Résolution",)}, BASE_ELAS_FLUI =SIMP(statut='o',typ=melasflu_sdaster ), EXCIT =FACT(statut='o', - INTE_SPEC_GENE =SIMP(statut='o',typ=tabl_intsp ), + INTE_SPEC_GENE =SIMP(statut='o',typ=table_sdaster), ), OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 12/04/2005 AUTEUR PBADEL P.BADEL +#& MODIF COMMANDE DATE 16/05/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG @@ -13059,13 +13716,15 @@ DYNA_SPEC_MODAL=OPER(nom="DYNA_SPEC_MODAL",op= 147,sd_prod=tabl_intsp, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== #& RESPONSABLE -DYNA_TRAN_EXPLI=OPER(nom="DYNA_TRAN_EXPLI",op= 70,sd_prod=evol_noli,reentrant='f', - fr="Analyse mecanique dynamique explicite", - regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',),), +DYNA_TRAN_EXPLI=OPER(nom="DYNA_TRAN_EXPLI",op= 70,sd_prod=evol_noli,reentrant='f',UIinfo={"groupe":("Résolution",)}, + fr="Calcul de l'évolution dynamique d'une structure dont la géométrie ou le matériau ont un comportement" + +" non linéaire, par une méthode explicite sur les accélérations ", + regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',),UN_PARMI('DIFF_CENT','TCHAMWA'),), MODELE =SIMP(statut='o',typ=modele_sdaster), CHAM_MATER =SIMP(statut='o',typ=cham_mater), MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)), CARA_ELEM =SIMP(statut='f',typ=cara_elem), + MASS_DIAG =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), EXCIT =FACT(statut='o',max='**', regles=(PRESENT_ABSENT('FONC_MULT','ACCE'), PRESENT_PRESENT('ACCE','VITE','DEPL'), @@ -13084,23 +13743,32 @@ DYNA_TRAN_EXPLI=OPER(nom="DYNA_TRAN_EXPLI",op= 70,sd_prod=evol_noli,reentrant='f GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), ), AMOR_MODAL =FACT(statut='f', - MODE_MECA =SIMP(statut='f',typ=mode_meca), + MODE_MECA =SIMP(statut='o',typ=mode_meca), AMOR_REDUIT =SIMP(statut='f',typ='R',max='**' ), NB_MODE =SIMP(statut='f',typ='I',defaut= 9999 ), REAC_VITE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), ), - PROJ_MODAL =FACT(statut='f', - MODE_MECA =SIMP(statut='f',typ=mode_meca), + PROJ_MODAL =FACT(statut='f',max='**', + MODE_MECA =SIMP(statut='o',typ=mode_meca), NB_MODE =SIMP(statut='f',typ='I',defaut= 9999 ), + regles=(PRESENT_PRESENT('MASS_GENE','RIGI_GENE'),), + MASS_GENE =SIMP(statut='f',typ=matr_asse_gene_r), + RIGI_GENE =SIMP(statut='f',typ=matr_asse_gene_r), + AMOR_GENE =SIMP(statut='f',typ=matr_asse_gene_r), + ), + EXCIT_GENE =FACT(statut='f', + FONC_MULT =SIMP(statut='f',typ=fonction_sdaster,max='**' ), + VECT_GENE =SIMP(statut='f',typ=vect_asse_gene,max='**' ), ), COMP_INCR =C_COMP_INCR(), COMP_ELAS =FACT(statut='f',max='**', RELATION =SIMP(statut='o',typ='TXM',defaut="ELAS", into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC", - "ELAS_POUTRE_GR","CABLE")), + "ELAS_POUTRE_GR","CABLE","ELAS_HYPER")), ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut=1,into=(1,)), ELAS_VMIS_LINE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), + ELAS_HYPER =SIMP(statut='c',typ='I',defaut=1,into=(1,)), ELAS_POUTRE_GR =SIMP(statut='c',typ='I',defaut=3,into=(3,)), CABLE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ), @@ -13108,21 +13776,28 @@ DYNA_TRAN_EXPLI=OPER(nom="DYNA_TRAN_EXPLI",op= 70,sd_prod=evol_noli,reentrant='f TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6), + ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), + ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), + RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", + into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), ), #------------------------------------------------------------------- ETAT_INIT =FACT(statut='f', - regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','SIGM','VARI','VARI_NON_LOCAL',), + regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','ACCE','SIGM','VARI','VARI_NON_LOCAL',), EXCLUS('EVOL_NOLI','DEPL',), EXCLUS('EVOL_NOLI','VITE'), + EXCLUS('EVOL_NOLI','ACCE'), EXCLUS('EVOL_NOLI','SIGM',), EXCLUS('EVOL_NOLI','VARI',), EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), EXCLUS('NUME_ORDRE','INST'), ), - DEPL =SIMP(statut='f',typ=cham_no_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), + DEPL =SIMP(statut='f',typ=cham_no_sdaster), + VITE =SIMP(statut='f',typ=cham_no_sdaster), + ACCE =SIMP(statut='f',typ=cham_no_sdaster), + SIGM =SIMP(statut='f',typ=(cham_elem,carte_sdaster)), + VARI =SIMP(statut='f',typ=cham_elem), + VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_sdaster), EVOL_NOLI =SIMP(statut='f',typ=evol_noli), NUME_ORDRE =SIMP(statut='f',typ='I'), INST =SIMP(statut='f',typ='R'), @@ -13152,10 +13827,12 @@ DYNA_TRAN_EXPLI=OPER(nom="DYNA_TRAN_EXPLI",op= 70,sd_prod=evol_noli,reentrant='f VALE =SIMP(statut='f',typ='R'), ), #------------------------------------------------------------------- - NEWMARK =FACT(statut='d', - ALPHA =SIMP(statut='f',typ='R',defaut= 0.25), - DELTA =SIMP(statut='f',typ='R',defaut= 0.5), + DIFF_CENT =FACT(statut='f', + ), + TCHAMWA =FACT(statut='f', + PHI =SIMP(statut='f',typ='R',defaut= 1.05), ), + STOP_CFL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), NEWTON =FACT(statut='c', REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), PREDICTION =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE") ), @@ -13164,6 +13841,7 @@ DYNA_TRAN_EXPLI=OPER(nom="DYNA_TRAN_EXPLI",op= 70,sd_prod=evol_noli,reentrant='f REAC_ITER_ELAS =SIMP(statut='f',typ='I',defaut=0), PAS_MINI_ELAS =SIMP(statut='f',typ='R',defaut=0.0E+0), ), + PARM_THETA =SIMP(statut='f',typ='R',defaut= 1. ), SOLVEUR =FACT(statut='d', METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), b_mult_front =BLOC(condition= "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", @@ -13233,6 +13911,40 @@ DYNA_TRAN_EXPLI=OPER(nom="DYNA_TRAN_EXPLI",op= 70,sd_prod=evol_noli,reentrant='f RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), ), +#------------------------------------------------------------------- + AFFICHAGE = FACT(statut='f',max=16, + + UNITE = SIMP(statut='f',typ='I',val_min=1), + + LONG_R = SIMP(statut='f',typ='I',defaut=12,val_min=1,val_max=12), + PREC_R = SIMP(statut='f',typ='I',defaut=5, val_min=1,val_max=8), + LONG_I = SIMP(statut='f',typ='I',defaut=6, val_min=1,val_max=12), + + NOM_COLONNE = SIMP(statut='o',typ='TXM',defaut="STANDARD", + into=("STANDARD","MINIMUM", + "ITER_NEWT", + "INCR_TPS", + "RESI_RELA","RELA_NOEU", + "RESI_MAXI","MAXI_NOEU", + "RESI_REFE","REFE_NOEU", + "RELI_ITER","RELI_COEF", + "PILO_PARA", + "LAGR_ECAR","LAGR_INCR","LAGR_ITER", + "MATR_ASSE", + "ITER_DEBO", + "CTCD_ITER","CTCD_INFO","CTCD_GEOM","CTCD_NOEU", + "CTCC_GEOM","CTCC_FROT","CTCC_CONT", + "SUIV_1","SUIV_2","SUIV_3","SUIV_4", + ), + ), + b_residu = BLOC(condition = " NOM_COLONNE == 'RESI_RELA' or \ + NOM_COLONNE == 'RESI_MAXI' or\ + NOM_COLONNE == 'RESI_REFE' or\ + NOM_COLONNE == 'CTCD_GEOM' or\ + NOM_COLONNE == 'STANDARD' ", + INFO_RESIDU = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), + ), + ), #------------------------------------------------------------------- ARCHIVAGE =FACT(statut='f', regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'), @@ -13293,14 +14005,11 @@ into=("DEPL","VITE","ACCE","SIEF_ELGA","VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU"," 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 22/02/2005 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -13319,7 +14028,8 @@ into=("DEPL","VITE","ACCE","SIEF_ELGA","VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU"," # 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", + fr="Calcul de la réponse dynamique transitoire d'un système amorti ou non en coordonées généralisées" + +" par superposition modale ou par sous structuration", reentrant='f', UIinfo={"groupes":("Résolution",)}, regles=(EXCLUS('AMOR_REDUIT','AMOR_GENE','LIST_AMOR'), @@ -13343,8 +14053,8 @@ DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op= 74,sd_prod=tran_gene, 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_r ), - VITE_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene_r ), + DEPL_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ), + VITE_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ), ), INCREMENT =FACT(statut='o',max='**', INST_INIT =SIMP(statut='f',typ='R' ), @@ -13376,7 +14086,7 @@ DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op= 74,sd_prod=tran_gene, 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_r ), + VECT_GENE =SIMP(statut='f',typ=vect_asse_gene ), NUME_MODE =SIMP(statut='f',typ='I' ), FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), COEF_MULT =SIMP(statut='f',typ='R' ), @@ -13395,10 +14105,13 @@ DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op= 74,sd_prod=tran_gene, D_FONC_DT2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), ), CHOC =FACT(statut='f',max='**', - regles=(UN_PARMI('NOEUD_1','GROUP_NO_1' ), - PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'), - PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),), + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD_1','GROUP_NO_1' ), + EXCLUS('NOEUD_2','GROUP_NO_2'), + PRESENT_ABSENT('GROUP_MA','NOEUD_2','GROUP_NO_2'), + PRESENT_ABSENT('MAILLE','NOEUD_2','GROUP_NO_2'),), INTITULE =SIMP(statut='f',typ='TXM' ), + GROUP_MA =SIMP(statut='f',typ=grma), + MAILLE =SIMP(statut='f',typ=ma), NOEUD_1 =SIMP(statut='f',typ=no), NOEUD_2 =SIMP(statut='f',typ=no), GROUP_NO_1 =SIMP(statut='f',typ=grno), @@ -13433,8 +14146,7 @@ DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op= 74,sd_prod=tran_gene, ), FLAMBAGE =FACT(statut='f',max='**', regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'), - PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'), - PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),), + EXCLUS('NOEUD_2','GROUP_NO_2'),), NOEUD_1 =SIMP(statut='f',typ=no), NOEUD_2 =SIMP(statut='f',typ=no), GROUP_NO_1 =SIMP(statut='f',typ=grno), @@ -13454,9 +14166,7 @@ DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op= 74,sd_prod=tran_gene, ), ANTI_SISM =FACT(statut='f',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'),), + UN_PARMI('NOEUD_2','GROUP_NO_2'),), NOEUD_1 =SIMP(statut='f',typ=no), NOEUD_2 =SIMP(statut='f',typ=no), GROUP_NO_1 =SIMP(statut='f',typ=grno), @@ -13508,7 +14218,7 @@ DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op= 74,sd_prod=tran_gene, ), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -13529,6 +14239,7 @@ DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op= 74,sd_prod=tran_gene, # RESPONSABLE VABHHTS J.PELLET ENGENDRE_TEST=PROC(nom="ENGENDRE_TEST",op=178, UIinfo={"groupes":("Impression",)}, + fr="Engendre des tests pour la non régression du code (pour développeurs)", regles=(UN_PARMI('TOUT','CO'),), UNITE =SIMP(statut='f',typ='I',defaut=8), TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), @@ -13537,7 +14248,7 @@ ENGENDRE_TEST=PROC(nom="ENGENDRE_TEST",op=178, FORMAT_R =SIMP(statut='f',typ='TXM',defaut="1PE12.5"), PREC_R =SIMP(statut='f',typ='TXM',defaut="1.E-5"), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -13555,14 +14266,15 @@ ENGENDRE_TEST=PROC(nom="ENGENDRE_TEST",op=178, # 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="", +EXEC_LOGICIEL=PROC(nom="EXEC_LOGICIEL",op= 183, + fr="Exécute un logiciel ou une commande système depuis Aster", UIinfo={"groupes":("Impression",)}, LOGICIEL =SIMP(statut='f',typ='TXM' ), ARGUMENT =FACT(statut='f',max='**', NOM_PARA =SIMP(statut='f',typ='TXM' ), ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 14/10/2005 AUTEUR CIBHHLV L.VIVAN # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -13588,7 +14300,7 @@ def extr_mode_prod(FILTRE_MODE,**args): raise AsException("type de concept resultat non prevu") EXTR_MODE=OPER(nom="EXTR_MODE",op= 168,sd_prod=extr_mode_prod, - reentrant='n', + reentrant='n',fr="Extraire séléctivement des modes des structures de données modales", UIinfo={"groupes":("Résolution",)}, FILTRE_MODE =FACT(statut='o',max='**', regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','NUME_MODE','NUME_MODE_EXCLU','FREQ_MIN','CRIT_EXTR',),), @@ -13604,7 +14316,11 @@ EXTR_MODE=OPER(nom="EXTR_MODE",op= 168,sd_prod=extr_mode_prod, 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 ), + regles=(AU_MOINS_UN('SEUIL','SEUIL_X','SEUIL_Y','SEUIL_Z'),), + SEUIL =SIMP(statut='f',typ='R'), + SEUIL_X =SIMP(statut='f',typ='R'), + SEUIL_Y =SIMP(statut='f',typ='R'), + SEUIL_Z =SIMP(statut='f',typ='R'), ), ), TITRE =SIMP(statut='f',typ='TXM',max='**'), @@ -13613,7 +14329,7 @@ EXTR_MODE=OPER(nom="EXTR_MODE",op= 168,sd_prod=extr_mode_prod, CRIT_EXTR =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",into=("MASS_EFFE_UN","MASS_GENE") ), ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -13650,6 +14366,9 @@ def extr_resu_prod(RESULTAT,**args): EXTR_RESU=OPER(nom="EXTR_RESU",op=176,sd_prod=extr_resu_prod,reentrant='f', UIinfo={"groupes":("Résultats et champs",)}, + fr="Extraire des champs au sein d'une SD Résultat", + regles=(CONCEPT_SENSIBLE('SEPARE'), REUSE_SENSIBLE(), + DERIVABLE('RESULTAT'),), RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,acou_harmo,mode_meca, mode_acou,mode_stat_depl,mode_stat_acce,mode_stat_forc,evol_ther,evol_noli, mult_elas,fourier_elas ) ), @@ -13682,7 +14401,7 @@ EXTR_RESU=OPER(nom="EXTR_RESU",op=176,sd_prod=extr_resu_prod,reentrant='f', TITRE =SIMP(statut='f',typ='TXM',max='**' ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG @@ -13706,7 +14425,7 @@ def extr_table_prod(TYPE_RESU,**args): EXTR_TABLE=OPER(nom="EXTR_TABLE",op=173,sd_prod=extr_table_prod,reentrant='n', UIinfo={"groupes":("Résultats et champs",)}, - + fr="Extraire d'une table la matrice de masse généralisée assemblée", TYPE_RESU =SIMP(statut='o',typ='TXM',into=("MATR_ASSE_GENE_R",) ), TABLE =SIMP(statut='o',typ=table_sdaster), @@ -13731,7 +14450,7 @@ EXTR_TABLE=OPER(nom="EXTR_TABLE",op=173,sd_prod=extr_table_prod,reentrant='n', TITRE =SIMP(statut='f',typ='TXM',max='**' ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -13757,7 +14476,7 @@ def fact_grad_prod(MATR_ASSE,**args): FACT_GRAD=OPER(nom="FACT_GRAD",op=85,sd_prod=fact_grad_prod, UIinfo={"groupes":("Résolution",)}, - fr="Préconditionnement pour résolution par gradient conjugué", + fr="Construire une matrice de préconditionnement pour une résolution par gradient conjugué", reentrant='n', MATR_ASSE =SIMP(statut='o', typ=(matr_asse_depl_r,matr_asse_temp_r, @@ -13766,7 +14485,7 @@ FACT_GRAD=OPER(nom="FACT_GRAD",op=85,sd_prod=fact_grad_prod, NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), INFO =SIMP(statut='f',typ='I',into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 01/04/2005 AUTEUR VABHHTS J.PELLET +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -13794,7 +14513,8 @@ def fact_ldlt_prod(MATR_ASSE,**args): 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", +FACT_LDLT=OPER(nom="FACT_LDLT",op=14,sd_prod=fact_ldlt_prod, + fr="Factoriser une matrice assemblée en un produit de deux matrices triangulaires", reentrant='f', UIinfo={"groupes":("Résolution",)}, regles=(EXCLUS('BLOC_DEBUT','DDL_DEBUT'), @@ -13818,7 +14538,7 @@ FACT_LDLT=OPER(nom="FACT_LDLT",op=14,sd_prod=fact_ldlt_prod,fr="Factorisation en TITRE =SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -13836,7 +14556,7 @@ FACT_LDLT=OPER(nom="FACT_LDLT",op=14,sd_prod=fact_ldlt_prod,fr="Factorisation en # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une étude", +FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une étude, fin du travail engagé par une des commandes DEBUT ou POURSUITE", UIinfo={"groupes":("Gestion du travail",)}, FORMAT_HDF =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f', typ='TXM',defaut="NON",into=("OUI","NON",) ), @@ -13848,7 +14568,7 @@ FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ), UNITE =SIMP(statut='f',typ='I',defaut=6), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -13867,11 +14587,11 @@ FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== FONC_FLUI_STRU=OPER(nom="FONC_FLUI_STRU",op= 169,sd_prod=fonction_sdaster, - reentrant='n', + reentrant='n',fr="Crée une fonction constante paramètrée par l'abscisse curviligne", UIinfo={"groupes":("Fonction",)}, TYPE_FLUI_STRU =SIMP(statut='o',typ=(type_flui_stru) ), ) ; -#& MODIF COMMANDE DATE 22/11/2004 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -13901,10 +14621,11 @@ def form_pyth_ops(self,d): FORMULE=FORM(nom="FORMULE",op_init=form_pyth_ops,op=-5, sd_prod=formule,UIinfo={"groupes":("Fonction",)}, + fr="Définit une formule réelle à partir de son expression mathématique", VALE =SIMP(statut='f',typ='TXM'), NOM_PARA =SIMP(statut='o',typ='TXM',max='**'), ); -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -13927,7 +14648,7 @@ GENE_FONC_ALEA=OPER(nom="GENE_FONC_ALEA",op= 118,sd_prod=table_sdaster, fr="Génération de la fonction temporelle à partir d une matrice interspectrale", reentrant='n', UIinfo={"groupes":("Fonction",)}, - INTE_SPEC =SIMP(statut='o',typ=tabl_intsp ), + INTE_SPEC =SIMP(statut='o',typ=table_sdaster), NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), INTERPOL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("NON","OUI") ), b_interpol_oui =BLOC(condition = "INTERPOL == 'OUI' ",fr="Parametres cas interpolation autorisee", @@ -13941,7 +14662,7 @@ GENE_FONC_ALEA=OPER(nom="GENE_FONC_ALEA",op= 118,sd_prod=table_sdaster, INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 11/07/2005 AUTEUR CAMBIER S.CAMBIER # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG @@ -13960,16 +14681,38 @@ GENE_FONC_ALEA=OPER(nom="GENE_FONC_ALEA",op= 118,sd_prod=table_sdaster, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== # RESPONSABLE CAMBIER S.CAMBIER -GENE_MATR_ALEA=OPER(nom="GENE_MATR_ALEA",op= 27,sd_prod=matr_asse_gene_r, - fr="Generateur de matrice aleatoire", +def gene_matr_alea_prod(MATR_MOYEN,**args ): + if (AsType(MATR_MOYEN) == matr_asse_gene_r ) : return matr_asse_gene_r + if (AsType(MATR_MOYEN) == macr_elem_dyna) : return macr_elem_dyna + raise AsException("type de concept resultat non prevu") + +GENE_MATR_ALEA=OPER(nom="GENE_MATR_ALEA",op= 27, +#sd_prod=matr_asse_gene_r, +sd_prod=gene_matr_alea_prod, + fr="Générer une réalisation d'une matrice aléatoire réelle sym. déf. positive ou d'un macro élément dynamique", reentrant='n', - UIinfo={"groupes":("Fonction",)}, - MATR_MOYEN = SIMP(statut='o', typ=matr_asse_gene_r), - COEF_VAR = SIMP(statut='f', typ='R', defaut=0.1), + UIinfo={"groupes":("Matrice",)}, + MATR_MOYEN = SIMP(statut='o', typ=(matr_asse_gene_r,macr_elem_dyna)), + +# cas matrice generalisee + b_matr =BLOC( condition = "AsType(MATR_MOYEN) in (matr_asse_gene_r,)", + COEF_VAR = SIMP(statut='f', typ='R', defaut=0.1, val_min=0.E+0 , + fr="coefficient de variation de la matrice a generer" ), + ), +# cas macr_elem_dyna + b_macr =BLOC( condition = "AsType(MATR_MOYEN) in (macr_elem_dyna,)", + fr="cas macr_elem_dyna (sous-structuratio)", + COEF_VAR_RIGI = SIMP(statut='f', typ='R', defaut=0.1, val_min=0.E+0 , + fr="coefficient de variation de la matrice de raideur" ), + COEF_VAR_MASS = SIMP(statut='f', typ='R', defaut=0., val_min=0.E+0 , + fr="coefficient de variation de la matrice de masse" ), + COEF_VAR_AMOR = SIMP(statut='f', typ='R', defaut=0., val_min=0.E+0 , + fr="coefficient de variation de la matrice d'amortissement" ),), + INIT_ALEA =SIMP(statut='f',typ='I'), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 28/02/2006 AUTEUR VABHHTS J.PELLET # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG @@ -13988,10 +14731,12 @@ GENE_MATR_ALEA=OPER(nom="GENE_MATR_ALEA",op= 27,sd_prod=matr_asse_gene_r, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== # RESPONSABLE CAMBIER S.CAMBIER -GENE_VARI_ALEA=OPER(nom="GENE_VARI_ALEA",op= 28,sd_prod=table_sdaster, - fr="Generateur de variable aleatoire", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, +from Macro.gene_vari_alea_ops import gene_vari_alea_ops,gene_vari_alea_init +GENE_VARI_ALEA=MACRO(nom="GENE_VARI_ALEA", + op_init=gene_vari_alea_init,op=gene_vari_alea_ops, + sd_prod=reel,reentrant='n', + fr="Générer une réalisation d'une variable aléatoire réelle de loi de probabilité donnée (Gamma ou Exponentielle)", + UIinfo={"groupes":("Fonction",)}, TYPE = SIMP(statut='f', typ='TXM', into=("EXP_TRONQUEE", "EXPONENTIELLE", "GAMMA"), defaut="GAMMA"), b_gamma =BLOC(condition = "TYPE == 'GAMMA' ",fr="Parametres loi gamma", VALE_MOY = SIMP(statut='f', typ='R', defaut=1.), @@ -14006,11 +14751,10 @@ GENE_VARI_ALEA=OPER(nom="GENE_VARI_ALEA",op= 28,sd_prod=table_sdaster, VALE_MOY = SIMP(statut='f', typ='R', defaut=0.), BORNE_INF = SIMP(statut='f', typ='R', defaut=-1.), BORNE_SUP = SIMP(statut='f', typ='R', defaut=1.), - COEF_VAR = SIMP(statut='f', typ='R', defaut=0.1), + COEF_VAR = SIMP(statut='f', typ='R', defaut=0.1,val_min=0.), ), INIT_ALEA =SIMP(statut='f',typ='I'), -) ; - +) #& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -14037,7 +14781,7 @@ IMPR_CHARGE=PROC(nom="IMPR_CHARGE",op= 158, VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ), CHARGE =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**', ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -14056,7 +14800,7 @@ IMPR_CHARGE=PROC(nom="IMPR_CHARGE",op= 158, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== IMPR_CLASSI=PROC(nom="IMPR_CLASSI",op= 114, - UIinfo={"groupes":("Fonction",)}, + UIinfo={"groupes":("Fonction",)},fr="Ecrit le résultat d'une analyse modale au format du code CLASSI", regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','FREQ','NUME_MODE','LIST_FREQ', 'LIST_ORDRE' ),), UNITE_CLASSI =SIMP(statut='o',typ='I' ), @@ -14080,339 +14824,46 @@ IMPR_CLASSI=PROC(nom="IMPR_CLASSI",op= 114, ), AMOR =SIMP(statut='o',typ='R',max='**'), ) ; -#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN +#& MODIF COMMANDE DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== # RESPONSABLE VABHHTS J.PELLET IMPR_CO=PROC(nom="IMPR_CO",op=17, - UIinfo={"groupes":("Impression",)}, - fr="Impression du contenu d un concept utilisateur (pour développeur)", - regles=(UN_PARMI('CO','CHAINE', ),), - UNITE =SIMP(statut='f',typ='I',defaut=8), - 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,validators=NoRepeat(),max='**'), - CHAINE =SIMP(statut='f',typ='TXM'), - POSITION =SIMP(statut='f',typ='I',defaut=1), -) ; -#& MODIF COMMANDE DATE 05/10/2004 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GNICOLAS G.NICOLAS -IMPR_FICO_HOMA=PROC(nom="IMPR_FICO_HOMA",op= 189, docu="U7.04.01-b", - 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. 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." ), -# -# 3. Le nom local du fichier de configuration HOMARD -# - UNITE_CONF =SIMP(statut='o',typ='I'), -# -# 4. Le nom local du fichier de données HOMARD -# - UNITE_DONN =SIMP(statut='f',typ='I'), -# -# 5. Gestion des éléments autres que des simplexes -# 0 : autres elements refuses (defaut) -# 1 : raffinement sur les simplexes, mais autres acceptes -# 2 : tous -# - NON_SIMPLEXE = SIMP(statut='f',typ='I',defaut=0,into=(0,1,2), - fr="Type d'éléments acceptés.", - ang="Type of authorized elements." ), -# -# 6. Le type de traitement : -# - TRAITEMENT =FACT(statut='o', -# -# 6.1. TROIS CHOIX EXCLUSIFS : -# -# 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 -# - regles=( UN_PARMI('ADAPTATION','UNIFORME','INFORMATION'),), - 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="Information sur un maillage", - ang="Information on a mesh", - into=("OUI",) ), -# -# 6.2. LES CONTRAINTES : -# -# 6.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 -# -# 6.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 -# -# 6.2.3. 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 ) ", - 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 =BLOC(condition = "( UNIFORME != None ) or ( ADAPTATION != None ) ", - fr="Nom MED du maillage en sortie, numero d'iteration", - ang="MED name of the out-mesh, iteration rank", - 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" ), - ) , -# - b_indicateur_d_erreur =BLOC(condition = "ADAPTATION != None", - fr="Indicateur d'erreur", - ang="Error indicator", - regles=(AU_MOINS_UN('NUME_ORDRE','INST','RESULTAT'), - EXCLUS('NUME_ORDRE','INST'), - EXCLUS('NUME_ORDRE','RESULTAT'), - PRESENT_PRESENT('RESULTAT','NOM_CHAM'),), - NOM_MED =SIMP(statut='o',typ='TXM', - fr="Nom MED de l'indicateur d'erreur.", - ang="MED name of error indicator.",), - COMPOSANTE =SIMP(statut='o',typ='TXM', - fr="Nom de la composante de l'indicateur d'erreur retenue.", - ang="Name of the selected component of the error indicator.",), - NUME_ORDRE =SIMP(statut='f',typ='I', - fr="Numero d'ordre de l'indicateur.", - ang="Rank number of the error indicator.",), - INST =SIMP(statut='f',typ='R', - fr="Instant de l'indicateur.", - ang="Instant of the error indicator.",), - b_precision =BLOC(condition="(INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3, - fr="Précision sur le choix de l'instant associé", - ang="Accuracy over instant choice" ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), - fr="Critère de précision sur le choix de l'instant associé", - ang="Accuracy criterium over instant choice" ),), - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther), - fr="Concept contenant l'indicateur.", - ang="Conceipt wich contains the error indicator.",), - NOM_CHAM =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' )" , - NIVE_MAX =SIMP(statut='f',typ='I', - fr="Niveau maximum de profondeur de raffinement", - ang="Maximum level for refinement"), - ) , -# - b_niveau_minimum =BLOC ( condition = " ( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'DERAFFINEMENT' ) or \ - ( UNIFORME == 'DERAFFINEMENT' )" , - NIVE_MIN =SIMP(statut='f',typ='I', - fr="Niveau minimum de déraffinement", - ang="Minimum level for unrefinement" ), - ) , -# -# 6.3. Le suivi de frontiere eventuel : -# - NOM_MED_MAILLAGE_FRONTIERE =SIMP(statut='f',typ='TXM', - fr="Nom MED du maillage de la frontiere à suivre", - ang="MED name of the boundary mesh" ), -# - b_frontiere_1 =BLOC ( condition = "NOM_MED_MAILLAGE_FRONTIERE != None" , - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', - fr="Groupes définissant la frontière", - ang="Groups which define the boundary" ), - ) , -# - ), -# -# 7. Mise à jour de champs sur le nouveau maillage -# - MAJ_CHAM =FACT(statut='f',max='**', - fr="Mise à jour de champs sur le nouveau maillage.", - ang="Updating of fields over the new mesh.", - regles=(AU_MOINS_UN('NUME_ORDRE','INST','RESULTAT'), - EXCLUS('NUME_ORDRE','INST'), - EXCLUS('NUME_ORDRE','RESULTAT'), - PRESENT_PRESENT('RESULTAT','NOM_CHAM'),), - NOM_MED =SIMP(statut='o',typ='TXM', - fr="Nom MED du champ à mettre à jour.", - ang="MED name of field.",), - NUME_ORDRE =SIMP(statut='f',typ='I', - fr="Numero d'ordre du champ à mettre à jour.", - ang="Rank number of field.",), - INST =SIMP(statut='f',typ='R', - fr="Instant du champ à mettre à jour.", - ang="Instant of field.",), - b_precision =BLOC(condition="(INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3, - fr="Précision sur le choix de l'instant associé", - ang="Accuracy over instant choice" ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), - fr="Critère de précision sur le choix de l'instant associé", - ang="Accuracy criterium over instant choice" ),), - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther), - fr="Concept contenant le champ à mettre à jour.", - ang="Conceipt wich contains the field.",), - NOM_CHAM =SIMP(statut='f',typ='TXM', - fr="Nom du champ dans le résultat du champ à mettre à jour.", - ang="Name of the field.",), - ), -# -# 8. L'ANALYSE DU MAILLAGE -# - ANALYSE =FACT(statut='f', - fr="Analyse du maillage.", - ang="Mesh analysis.", -# -# 5 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." ), -# - ), -# + UIinfo={"groupes":("Impression",)}, + fr="Imprimer tous les objets JEVEUX qui constituent un concept utilisateur existant (pour les développeurs)", + regles=(UN_PARMI('CONCEPT','CHAINE','TOUT' ),), + + UNITE =SIMP(statut='f',typ='I',defaut=8), + NIVEAU =SIMP(statut='f',typ='I',defaut=2,into=(-1,0,1,2) ), + ATTRIBUT =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","OUI") ), + CONTENU =SIMP(statut='f',typ='TXM',defaut="OUI",into=("NON","OUI") ), + BASE =SIMP(statut='f',typ='TXM',defaut="G",into=(" ","G","V","L") ), + CONCEPT =FACT(statut='f',max='**', + regles=(DERIVABLE('NOM'),), + NOM =SIMP(statut='o',typ=assd,validators=NoRepeat(),max='**'), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(), + fr="Paramètre de sensibilité.", + ang="Sensitivity parameter",max='**'),), + CHAINE =SIMP(statut='f',typ='TXM'), + POSITION =SIMP(statut='f',typ='I',defaut=1), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), ) ; -#& MODIF COMMANDE DATE 15/11/2004 AUTEUR MCOURTOI M.COURTOIS +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG @@ -14434,7 +14885,7 @@ IMPR_FICO_HOMA=PROC(nom="IMPR_FICO_HOMA",op= 189, docu="U7.04.01-b", from Macro.impr_fonction_ops import impr_fonction_ops IMPR_FONCTION=MACRO(nom="IMPR_FONCTION",op=impr_fonction_ops,sd_prod=None, - fr="Impression de fonctions sur fichiers, les valeurs ayant été récupérées par RECU_FONCTION", + fr="Imprime le contenu d'objets de type fonction ou liste de réels dans un fichier destiné à un traceur de courbe", UIinfo={"groupes":("Fonction",)}, FORMAT =SIMP(statut='o',typ='TXM',position='global',defaut='TABLEAU', into=("TABLEAU","AGRAF","XMGRACE",),), @@ -14546,7 +14997,7 @@ IMPR_FONCTION=MACRO(nom="IMPR_FONCTION",op=impr_fonction_ops,sd_prod=None, ), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 17/05/2005 AUTEUR CIBHHLV L.VIVAN +#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -14565,7 +15016,7 @@ IMPR_FONCTION=MACRO(nom="IMPR_FONCTION",op=impr_fonction_ops,sd_prod=None, # 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", + fr="Imprimer le résultat d'un calcul dynamique en variables généralisées au format RESULTAT", UIinfo={"groupes":("Impression",)}, FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT",into=("RESULTAT",) ), UNITE =SIMP(statut='f',typ='I',defaut=8), @@ -14580,22 +15031,20 @@ IMPR_GENE=PROC(nom="IMPR_GENE",op= 157, 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_r, tran_gene, mode_gene, harm_gene)), + RESU_GENE =SIMP(statut='o',typ=(vect_asse_gene, tran_gene, mode_gene, harm_gene)), TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster ), - TOUT_MODE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ), FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), - 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", + TOUT_MODE =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", into=("RELATIF","ABSOLU") ), - ), TOUT_CMP_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), NUME_CMP_GENE =SIMP(statut='f',typ='I',max='**'), TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), @@ -14607,7 +15056,7 @@ IMPR_GENE=PROC(nom="IMPR_GENE",op= 157, INFO_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -14627,7 +15076,7 @@ IMPR_GENE=PROC(nom="IMPR_GENE",op= 157, # ====================================================================== IMPR_JEVEUX=PROC(nom="IMPR_JEVEUX",op=16, UIinfo={"groupes":("Impression",)}, - fr="Impression de caractéristiques d'objets JEVEUX (pour développeur)", + fr="Imprimer le contenu des objets créés par JEVEUX (pour développeur)", ENTITE =SIMP(fr="choix de l'observation",statut='o',typ='TXM', into=("DISQUE","MEMOIRE","REPERTOIRE", "OBJET","ATTRIBUT","SYSTEME") ), @@ -14662,7 +15111,7 @@ IMPR_JEVEUX=PROC(nom="IMPR_JEVEUX",op=16, ), COMMENTAIRE =SIMP(statut='f',typ='TXM' ), ) ; -#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -14682,6 +15131,7 @@ IMPR_JEVEUX=PROC(nom="IMPR_JEVEUX",op=16, # ====================================================================== IMPR_MACR_ELEM=PROC(nom="IMPR_MACR_ELEM",op= 160, UIinfo={"groupes":("Impression",)}, + fr="Impression d'une structure de données MACR_ELEM_DYNA au format IDEAS MISS3D PLEXUS ou CADYRO", MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ), FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS", into=("MISS_3D","IDEAS","CADYRO","PLEXUS") ), @@ -14720,7 +15170,7 @@ IMPR_MACR_ELEM=PROC(nom="IMPR_MACR_ELEM",op= 160, ), ) ; -#& MODIF COMMANDE DATE 08/02/2005 AUTEUR CIBHHLV L.VIVAN +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -14739,7 +15189,7 @@ IMPR_MACR_ELEM=PROC(nom="IMPR_MACR_ELEM",op= 160, # 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", + fr="Imprimer sur un fichier au format IDEAS ou RESULTAT des matrices élémentaires et assemblées", UIinfo={"groupes":("Impression",)}, regles=(AU_MOINS_UN('MATR_ELEM','MATR_ASSE'),), # ====================================================================== @@ -14791,7 +15241,7 @@ IMPR_MATRICE=PROC(nom="IMPR_MATRICE",op= 159, ), # ====================================================================== ) ; -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS +#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -14811,13 +15261,14 @@ IMPR_MATRICE=PROC(nom="IMPR_MATRICE",op= 159, # ====================================================================== IMPR_MISS_3D=PROC(nom="IMPR_MISS_3D",op= 162, UIinfo={"groupes":("Impression",)}, + fr="Impression des données d'entrée pour une étude sismique avec MISS3D", regles=(UN_PARMI('INST_INIT','FREQ_INIT'), PRESENT_PRESENT('INST_INIT','INST_FIN'), PRESENT_PRESENT('FREQ_INIT','FREQ_FIN'),), MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ), EXCIT =FACT(statut='f',max='**', regles=(UN_PARMI('FONC_MULT','COEF_MULT' ),), - VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r ), + VECT_ASSE =SIMP(statut='f',typ=cham_no_sdaster), FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), COEF_MULT =SIMP(statut='f',typ='R' ), ), @@ -14882,7 +15333,7 @@ IMPR_OAR =PROC(nom="IMPR_OAR",op= 40, UNITE =SIMP(statut='f',typ='I',defaut=38), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 12/04/2005 AUTEUR CIBHHPD L.SALMONA +#& MODIF COMMANDE DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -14902,7 +15353,7 @@ IMPR_OAR =PROC(nom="IMPR_OAR",op= 40, # ====================================================================== IMPR_RESU=PROC(nom="IMPR_RESU",op=39, UIinfo={"groupes":("Impression",)}, - fr="Impression du résultat d un calcul (différents formats)", + fr="Imprimer un maillage et/ou les résultats d'un calcul (différents formats)", MODELE =SIMP(statut='f',typ=modele_sdaster), FORMAT =SIMP(statut='f',typ='TXM',position='global',defaut="RESULTAT", @@ -14951,10 +15402,15 @@ IMPR_RESU=PROC(nom="IMPR_RESU",op=39, b_sensibilite =BLOC(condition="RESULTAT != None", fr="Définition des paramètres de sensibilité", ang="Definition of sensitivity parameters", + regles=(DERIVABLE('RESULTAT'),), SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', fr="Liste des paramètres de sensibilité.", ang="List of sensitivity parameters"),), +# b_partie =BLOC(condition="""((AsType(RESULTAT)==dyna_harmo) or +# (AsType(CHAM_GD)!=carte_sdaster)) and ((FORMAT=='CASTEM') or (FORMAT=='GMSH'))""", + PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ), +# ), b_extrac =BLOC(condition="RESULTAT != None", fr="extraction d un champ de grandeur", regles=(EXCLUS('TOUT_CHAM','NOM_CHAM'), @@ -15005,8 +15461,8 @@ IMPR_RESU=PROC(nom="IMPR_RESU",op=39, ), ### b_topologie=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and\ - ((FORMAT == 'RESULTAT')or(FORMAT == 'IDEAS'))""", - fr="sélection des entités toplogiques", + ((FORMAT == 'RESULTAT')or(FORMAT == 'IDEAS')or(FORMAT == 'MED'))""", + fr="sélection des entités topologiques", TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), @@ -15068,7 +15524,7 @@ IMPR_STURM=PROC(nom="IMPR_STURM",op=32,fr="Calculer et imprimer le nombre de val 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 15/11/2004 AUTEUR MCOURTOI M.COURTOIS +#& MODIF COMMANDE DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -15091,7 +15547,8 @@ from Macro.impr_table_ops import impr_table_ops IMPR_TABLE=MACRO(nom="IMPR_TABLE",op=impr_table_ops,sd_prod=None, UIinfo={"groupes":("Impression",)}, - fr="Impression d un concept de type table_sdaster", + fr="Impression du contenu d'une table dans un fichier", + regles=(DERIVABLE("TABLE"),), TABLE =SIMP(statut='o',typ=table_sdaster), SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', fr="Liste des paramètres de sensibilité.", @@ -15200,7 +15657,7 @@ INCLUDE=MACRO(nom="INCLUDE",op=ops.build_include, UNITE = SIMP(statut='o',typ='I'), INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)), ); -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -15220,7 +15677,7 @@ INCLUDE=MACRO(nom="INCLUDE",op=ops.build_include, # ====================================================================== INCLUDE_MATERIAU=MACRO(nom="INCLUDE_MATERIAU",op=-14, UIinfo={"groupes":("Modélisation",)}, - fr=" ", + fr="Récupérer les caractéristiques d'un matériau dans le Catalogue Materiaux d'Aster ", sd_prod=ops.INCLUDE_MATERIAU,op_init=ops.INCLUDE_context,fichier_ini=0, NOM_AFNOR =SIMP(statut='o',typ='TXM' ), TYPE_MODELE =SIMP(statut='o',typ='TXM',into=("REF","PAR") ), @@ -15361,7 +15818,7 @@ INFO_FONCTION=MACRO(nom="INFO_FONCTION",op=info_fonction_ops,sd_prod=info_foncti ), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), ) -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -15382,7 +15839,7 @@ INFO_FONCTION=MACRO(nom="INFO_FONCTION",op=info_fonction_ops,sd_prod=info_foncti # RESPONSABLE G8BHHXD X.DESROCHES INTE_MAIL_2D=OPER(nom="INTE_MAIL_2D",op=50,sd_prod=courbe_sdaster, UIinfo={"groupes":("Post traitements",)}, - fr="Définition d une courbe sur un maillage 2D",reentrant='n', + fr="Définition d'une courbe dans un maillage 2D",reentrant='n', MAILLAGE =SIMP(statut='o',typ=(maillage_sdaster) ), @@ -15443,7 +15900,7 @@ INTE_MAIL_2D=OPER(nom="INTE_MAIL_2D",op=50,sd_prod=courbe_sdaster, PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -15464,7 +15921,7 @@ INTE_MAIL_2D=OPER(nom="INTE_MAIL_2D",op=50,sd_prod=courbe_sdaster, # RESPONSABLE G8BHHXD X.DESROCHES INTE_MAIL_3D=OPER(nom="INTE_MAIL_3D",op=96,sd_prod=surface_sdaster, UIinfo={"groupes":("Post traitements",)}, - fr="Définition d un chemin sur un maillage 3D",reentrant='n', + fr="Définir un chemin de type segment de droite dans un maillage 3D",reentrant='n', MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), @@ -15482,7 +15939,7 @@ INTE_MAIL_3D=OPER(nom="INTE_MAIL_3D",op=96,sd_prod=surface_sdaster, PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 16/05/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -15505,18 +15962,13 @@ def lire_champ_prod(TYPE_CHAM=None,**args): # homologue dans macr_adap_mail import string # - if TYPE_CHAM[0:5] == "NOEU_" : return eval("cham_no_"+string.lower(TYPE_CHAM[5:])) - if TYPE_CHAM == "ELEM_G_DEPL_R" : return cham_elem_g_depl - if TYPE_CHAM[0:5] == "ELEM_" : return eval("cham_elem_"+string.lower(TYPE_CHAM[5:])) - if TYPE_CHAM == "ELNO_G_DEPL_R" : return cham_elem_g_depl - if TYPE_CHAM[0:5] == "ELNO_" : return eval("cham_elem_"+string.lower(TYPE_CHAM[5:])) - if TYPE_CHAM == "ELGA_G_DEPL_R" : return cham_elem_g_depl - if TYPE_CHAM[0:5] == "ELGA_" : return eval("cham_elem_"+string.lower(TYPE_CHAM[5:])) + if TYPE_CHAM[0:5] == "NOEU_" : return cham_no_sdaster + if TYPE_CHAM[0:2] == "EL" : return cham_elem raise AsException("type de concept resultat non prevu") LIRE_CHAMP=OPER(nom="LIRE_CHAMP",op= 192,sd_prod=lire_champ_prod, - fr="Lire un champ dans un fichier et le stocker dans un concept.", - reentrant='n', + fr="Lire un champ dans un fichier au format MED et le stocker dans un concept.", + reentrant='n',UIinfo={"groupe":("Résultats et champs",)}, MAILLAGE =SIMP(statut='o',typ=maillage_sdaster,), FORMAT =SIMP(statut='f',typ='TXM',defaut="MED",into=("MED",),), UNITE =SIMP(statut='f',typ='I',defaut= 81,), @@ -15551,7 +16003,7 @@ LIRE_CHAMP=OPER(nom="LIRE_CHAMP",op= 192,sd_prod=lire_champ_prod, ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 20/09/2004 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -15579,7 +16031,8 @@ def lire_fonction_prod(self,TYPE,**args): raise AsException("type de concept resultat non prevu") LIRE_FONCTION=MACRO(nom="LIRE_FONCTION",op=lire_fonction_ops,sd_prod=lire_fonction_prod, - fr="Lecture d une fonction ou d une nappe dans un fichier ", + fr="Lit les valeurs réelles dans un fichier de données représentant une fonction et" + +" crée un concept de type fonction ou nappe", reentrant='n', UIinfo={"groupes":("Fonction",)}, FORMAT =SIMP(statut='f',typ='TXM',into=("LIBRE",),defaut="LIBRE" ), @@ -15614,7 +16067,65 @@ LIRE_FONCTION=MACRO(nom="LIRE_FONCTION",op=lire_fonction_ops,sd_prod=lire_foncti INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 20/09/2004 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +LIRE_FORC_MISS=OPER(nom="LIRE_FORC_MISS",op= 179,sd_prod=vect_asse_gene, + fr="Création d un vecteur assemblé à partir de base modale", + reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + BASE =SIMP(statut='o',typ=base_modale ), + NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), + FREQ_EXTR =SIMP(statut='o',typ='R',max=1), + NOM_CMP =SIMP(statut='o',typ='TXM',into=("DX","DY","DZ") ), + NOM_CHAM =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE"),defaut="DEPL"), + UNITE_RESU_FORC =SIMP(statut='f',typ='I',defaut=30), +) ; + +#& MODIF COMMANDE DATE 08/11/2005 AUTEUR ACBHHCD G.DEVESA +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +LIRE_IMPE_MISS=OPER(nom="LIRE_IMPE_MISS",op= 164,sd_prod=matr_asse_gene_c, + fr="Création d une matrice assemblée à partir de base modale", + reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + BASE =SIMP(statut='o',typ=base_modale ), + NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), + FREQ_EXTR =SIMP(statut='o',typ='R',max=1), + UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30), +) ; + +#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -15635,8 +16146,8 @@ LIRE_FONCTION=MACRO(nom="LIRE_FONCTION",op=lire_fonction_ops,sd_prod=lire_foncti from Macro.lire_inte_spec_ops import lire_inte_spec_ops -LIRE_INTE_SPEC=MACRO(nom="LIRE_INTE_SPEC",op=lire_inte_spec_ops,sd_prod=tabl_intsp, - fr="Lecture sur un fichier externe de fonctions complexes pour créer une matrice interspectrale", +LIRE_INTE_SPEC=MACRO(nom="LIRE_INTE_SPEC",op=lire_inte_spec_ops,sd_prod=table_sdaster, + fr="Lecture sur un fichier externe de fonctions complexes pour créer une matrice interspectrale", reentrant='n', UIinfo={"groupes":("Fonction",)}, UNITE =SIMP(statut='o',typ='I' ), @@ -15651,7 +16162,7 @@ LIRE_INTE_SPEC=MACRO(nom="LIRE_INTE_SPEC",op=lire_inte_spec_ops,sd_prod=tabl_int TITRE =SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -15671,7 +16182,7 @@ LIRE_INTE_SPEC=MACRO(nom="LIRE_INTE_SPEC",op=lire_inte_spec_ops,sd_prod=tabl_int # ====================================================================== # RESPONSABLE VABHHTS J.PELLET LIRE_MAILLAGE=OPER(nom="LIRE_MAILLAGE",op= 1,sd_prod=maillage_sdaster, - fr="Lecture d'un fichier de maillage", + fr="Crée un maillage par lecture d'un fichier au format Aster ou Med", ang="Readings of a mesh file", reentrant='n', UIinfo={"groupes":("Maillage",)}, @@ -15709,7 +16220,7 @@ LIRE_MAILLAGE=OPER(nom="LIRE_MAILLAGE",op= 1,sd_prod=maillage_sdaster, INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), # ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -15733,7 +16244,7 @@ def lire_miss_3d_prod(TYPE_RESU,**args): 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", + fr="Restituer sur base physique une réponse harmonique ou transitoire issue de MISS3D", reentrant='n', UIinfo={"groupes":("Maillage",)}, MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ), @@ -15742,7 +16253,7 @@ LIRE_MISS_3D=OPER(nom="LIRE_MISS_3D",op= 163,sd_prod=lire_miss_3d_prod, TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="TRANS",into=("TRANS","HARMO") ), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -15761,7 +16272,7 @@ LIRE_MISS_3D=OPER(nom="LIRE_MISS_3D",op= 163,sd_prod=lire_miss_3d_prod, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== LIRE_PLEXUS=OPER(nom="LIRE_PLEXUS",op= 184,sd_prod=evol_char, - fr=" ", + fr="Lire le fichier de résultats au format IDEAS produit par le logiciel EUROPLEXUS", reentrant='n', UIinfo={"groupes":("Maillage",)}, regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),), @@ -15782,7 +16293,7 @@ LIRE_PLEXUS=OPER(nom="LIRE_PLEXUS",op= 184,sd_prod=evol_char, ), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 11/05/2005 AUTEUR MCOURTOI M.COURTOIS +#& MODIF COMMANDE DATE 03/10/2005 AUTEUR NICOLAS O.NICOLAS # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -15846,8 +16357,9 @@ def l_nom_cham_pas_elga(): return ( ) LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,reentrant='n', - UIinfo={"groupes":("Maillage",)}, - fr="Lecture de champs aux noeuds ou par éléments aux noeuds sur un fichier IDEAS ou EnSight", + UIinfo={"groupes":("Résultats et champs",)}, + fr="Lire dans un fichier, soit format IDEAS, soit au format ENSIGHT soit au format MED," + +" des champs et les stocker dans une SD résultat", # 0) mots clés généraux : @@ -15903,6 +16415,7 @@ LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,reentrant='n', POSI_ORDRE =SIMP(statut='o',typ='I',min=2,max=2), POSI_NUME_MODE =SIMP(statut='f',typ='I',min=2,max=2), POSI_MASS_GENE =SIMP(statut='f',typ='I',min=2,max=2), + POSI_AMOR_GENE =SIMP(statut='f',typ='I',min=2,max=2), POSI_INST =SIMP(statut='f',typ='I',min=2,max=2), POSI_FREQ =SIMP(statut='f',typ='I',min=2,max=2), NOM_CMP =SIMP(statut='o',typ='TXM',max='**'),), @@ -15953,7 +16466,7 @@ LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,reentrant='n', ), ), ) ; -#& MODIF COMMANDE DATE 16/06/2004 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 03/04/2006 AUTEUR MCOURTOI M.COURTOIS # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG @@ -15974,32 +16487,48 @@ LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,reentrant='n', from Macro.lire_table_ops import lire_table_ops -def lire_table_prod(self,TYPE_TABLE,**args): - if TYPE_TABLE == "TABLE" : return table_sdaster - 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=MACRO(nom="LIRE_TABLE",op=lire_table_ops,sd_prod=lire_table_prod, - fr="Lecture d un concept de type table", - UIinfo={"groupes":("Maillage",)}, +LIRE_TABLE=MACRO(nom="LIRE_TABLE",op=lire_table_ops,sd_prod=table_sdaster, + fr="Lecture d'un fichier contenant une table", + UIinfo={"groupes":("Table",)}, UNITE =SIMP(statut='o',typ='I' ), FORMAT =SIMP(statut='f',typ='TXM',into=("ASTER",),defaut="ASTER"), NUME_TABLE =SIMP(statut='f',typ='I',defaut=1), - 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'), + SEPARATEUR =SIMP(statut='f',typ='TXM',defaut=' '), PARA =SIMP(statut='f',typ='TXM',max='**'), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 22/02/2005 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 13/02/2006 AUTEUR DURAND C.DURAND +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# ====================================================================== + +MAC_MODES=OPER(nom="MAC_MODES",op= 141,sd_prod=table_sdaster, + fr="Normalisation de modes propres", + reentrant='n', + UIinfo={"groupes":("Résolution",)}, + BASE_1 =SIMP(statut='o',typ=(mode_meca,mode_flamb,base_modale) ), + BASE_2 =SIMP(statut='o',typ=(mode_meca,mode_flamb,base_modale) ), + MATR_ASSE =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c) ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; +#& MODIF COMMANDE DATE 02/06/2006 AUTEUR MCOURTOI M.COURTOIS # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -16019,312 +16548,433 @@ LIRE_TABLE=MACRO(nom="LIRE_TABLE",op=lire_table_ops,sd_prod=lire_table_prod, # ====================================================================== # RESPONSABLE GNICOLAS G.NICOLAS + from Macro.macr_adap_mail_ops import macr_adap_mail_ops def macr_adap_mail_prod(self,MAJ_CHAM,ADAPTATION,**args): - maillage_np1=ADAPTATION['MAILLAGE_NP1'] +# +# 0. Typage des structures produites +# + maillage_np1=args['MAILLAGE_NP1'] self.type_sdprod(maillage_np1,maillage_sdaster) +# + if ( args['MAILLAGE_NP1_ANNEXE'] is not None ) : + maillage_np1_annexe=args['MAILLAGE_NP1_ANNEXE'] + self.type_sdprod(maillage_np1_annexe,maillage_sdaster) +# if MAJ_CHAM == None:return None # Remarque : la liste qui suit doit etre conforme à son homologue de LIRE_CHAMP for ch in MAJ_CHAM: t=ch['TYPE_CHAM'] - if t[0:5] == "NOEU_":self.type_sdprod(ch['CHAM_MAJ'],eval("cham_no_"+string.lower(t[5:]))) - if t == "ELEM_G_DEPL_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_g_depl) - if t[0:5] == "ELEM_":self.type_sdprod(ch['CHAM_MAJ'],eval("cham_elem_"+string.lower(t[5:]))) - if t == "ELNO_G_DEPL_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_g_depl) - if t[0:5] == "ELNO_":self.type_sdprod(ch['CHAM_MAJ'],eval("cham_elem_"+string.lower(t[5:]))) - if t == "ELGA_G_DEPL_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_g_depl) - if t[0:5] == "ELGA_":self.type_sdprod(ch['CHAM_MAJ'],eval("cham_elem_"+string.lower(t[5:]))) + if t[0:5] == "NOEU_":self.type_sdprod(ch['CHAM_MAJ'],cham_no_sdaster) + if t[0:2] == "EL": self.type_sdprod(ch['CHAM_MAJ'],cham_elem) return None + MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL",op=macr_adap_mail_ops,sd_prod=macr_adap_mail_prod, fr="Adapter un maillage avec le logiciel HOMARD.", ang="Mesh adaptation with HOMARD software.", - docu="U7.03.01-b", + docu="U7.03.01-b",UIinfo={"groupe":("Maillage",)}, # # 1. Le niveau d'information # - INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)), + INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)), # # 2. Version de HOMARD # - VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V7_1", - into=("V7_1", "V7_N", "V7_N_PERSO"), - fr="Version de HOMARD", - ang="HOMARD release"), + VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V8_2", + into=("V8_2", "V8_N", "V8_N_PERSO"), + fr="Version de HOMARD", + ang="HOMARD release"), # -# 3. Langue des messages issus de HOMARD +# 3. Langue des messages produits par 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." ), + LANGUE = SIMP(statut='f',typ='TXM',defaut="FRANCAIS", + into=("FRANCAIS","FRENCH","ANGLAIS","ENGLISH",), + fr="Langue des messages produits par HOMARD.", + ang="Language for HOMARD messages." ), # -# 4. Gestion des éléments autres que des simplexes -# 0 : autres elements refuses -# 1 : raffinement sur les simplexes, mais autres acceptes -# 2 : tous (defaut) +# 4. Les maillages +# 4.1. Quel que soit le type de traitement, il faut donner : +# A. Le concept du maillage initial (entree) +# B. Le concept du maillage final (sortie) # - NON_SIMPLEXE = SIMP(statut='f',typ='I',defaut=2,into=(0,1,2), - fr="Type d'éléments acceptés.", - ang="Type of authorized elements." ), + MAILLAGE_N = SIMP(statut='o',typ=maillage_sdaster, + fr="Maillage avant adaptation", + ang="Mesh before adaptation" ), # -# 5. Le type de traitement : + MAILLAGE_NP1 = SIMP(statut='o',typ=CO, + fr="Maillage apres adaptation", + ang="Mesh after adaptation" ), # - ADAPTATION =FACT(statut='o', - fr="Type d'adaptation", - ang="Type of adaptation", +# 4.2. Eventuellement, on peut produire un maillage annexe +# Actuellement, c'est le maillage n+1, mais de degré différent. # -# 5.1. Deux choix d'adaptation exclusifs : + MAILLAGE_NP1_ANNEXE = SIMP(statut='f',typ=CO, + fr="Maillage annexe apres adaptation", + ang="Additional mesh after adaptation" ), # -# 5.1. -# A. Selon un indicateur d'erreur, avec trois variantes : -# . Raffinement et deraffinement -# . Raffinement seul -# . Deraffinement seul -# B. Uniforme, avec trois variantes : -# . Raffinement seul -# . Deraffinement seul -# . Rien : le maillage est le meme a la sortie et a l'entree +# 5. Le pilotage de l'adaptation, avec les variantes suivantes : +# . Raffinement et deraffinement, selon un champ d'indicateurs d'erreur +# . Raffinement seul, selon un champ d'indicateurs d'erreur +# . Deraffinement seul, selon un champ d'indicateurs d'erreur +# . Raffinement seul, selon des zones geometriques +# . Raffinement uniforme : toutes les mailles sont divisées +# . Deraffinement uniforme : toutes les mailles sont regroupées +# . Rien : le maillage est le meme a la sortie et a l'entree # - 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" ), + ADAPTATION = SIMP(statut='o',typ='TXM', + into=("RAFF_DERA","RAFFINEMENT","DERAFFINEMENT","RAFFINEMENT_ZONE", \ + "RAFFINEMENT_UNIFORME","DERAFFINEMENT_UNIFORME","RIEN"), + fr="Pilotage de l'adaptation : selon un indicateur d'erreur ou uniforme.", + ang="Adaptation control : among an error indicator or uniform" ), +# +# 6. Pour de l'adaptation libre, il faut un indicateur d'erreur # -# 5.2. Quel que soit le type de traitement, il faut donner : -# A. Le concept du maillage initial -# B. Le concept du maillage final + b_indicateur_d_erreur = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \ + (ADAPTATION == 'RAFFINEMENT') or \ + (ADAPTATION == 'DERAFFINEMENT') " , + fr="Pour une adaptation libre, choix de l'indicateur d'erreur ou d'une zone à raffiner", + ang="For free adaptation, selection of error indicator or zone", # - MAILLAGE_N = SIMP(statut='o',typ=maillage_sdaster, - fr="Maillage avant adaptation", - ang="Mesh before adaptation" ), - MAILLAGE_NP1 = SIMP(statut='o',typ=CO, - fr="Maillage apres adaptation", - ang="Mesh after adaptation" ), + regles=(UN_PARMI('CHAM_GD','RESULTAT_N')), # -# 5.3. Pour de l'adaptation libre, il faut l'indicateur d'erreur +# 6.1. Repérage de la zone à raffiner à l'aide d'un indicateur # +# 6.1.1. Sous forme de champ de grandeur # - b_indicateur_d_erreur =BLOC( condition = " LIBRE != None " , - fr="Choix de l'indicateur d'erreur", - ang="Selection of error indicator", + CHAM_GD = SIMP(statut='f',typ=cham_gd_sdaster, + fr="Champ de grandeur Code_Aster contenant l'indicateur d'erreur", + ang="Code_Aster champ de grandeur with error indicator" ), # -# 5.3.1. Le nom du concept resultat_sdaster +# 6.1.2. Sous forme de concept resultat_sdaster # - RESULTAT_N = SIMP(statut='o',typ=(evol_elas,evol_noli,evol_ther) , - fr="Concept resultat Code_Aster contenant l'indicateur d'erreur", - ang="Result with error indicator" ), + RESULTAT_N = SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther) , + fr="Concept resultat Code_Aster contenant l'indicateur d'erreur", + ang="Code_Aster result with error indicator" ), # -# 5.3.2. Le champ d'indicateur d'erreur + b_champ_indicateur = BLOC(condition="(RESULTAT_N != None)", + INDICATEUR = SIMP(statut='o',typ='TXM', + fr="Champ de l'indicateur d'erreur dans le résultat", + ang="Error indicator field in the result structure" ), + ), # - INDICATEUR = SIMP(statut='o',typ='TXM', - fr="Champ de l'indicateur d'erreur", - ang="Error indicator field" ), +# 6.1.3. La composante retenue # -# 5.3.3. La composante retenue + b_composante = BLOC(condition=" (RESULTAT_N != None) or (CHAM_GD != None) ", + fr="Choix de la composante pour l'indicateur", + ang="Component selection for error indicator", # - NOM_CMP_INDICA = SIMP(statut='o',typ='TXM', - fr="Composante retenue", - ang="Selected component" ), + NOM_CMP_INDICA = SIMP(statut='o',typ='TXM', + fr="Composante retenue pour l'indicateur d'erreur", + ang="Selected component for error indicator" ), # -# 5.3.4. Le paramètre temporel pour l'indicateur + ), # - regles=(EXCLUS('NUME_ORDRE','INST'),), +# 6.1.4. Le paramètre temporel pour l'indicateur # -# 5.3.4.1. Soit le numero d'ordre + b_parametre_temporel = BLOC(condition="(RESULTAT_N != None)", + fr="Choix éventuel du paramètre temporel pour l'indicateur", + ang="Time selection for error indicator (option)", # - NUME_ORDRE = SIMP(statut='f',typ='I', - fr="Numero d ordre", - ang="Rank" ), + regles=(EXCLUS('NUME_ORDRE','INST'),), # -# 5.3.4.2. Soit l'instant -# 5.3.4.2.1. Sa valeur +# 6.1.4.1. Soit le numero d'ordre # - INST = SIMP(statut='f',typ='R', - fr="Instant associé", - ang="Instant" ), + NUME_ORDRE = SIMP(statut='f',typ='I', + fr="Numero d ordre", + ang="Rank" ), # -# 5.3.4.2.2. La précision du choix de l'instant +# 6.1.4.2. Soit l'instant +# 6.1.4.2.1. Sa valeur # - b_precision =BLOC(condition="(INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3, - fr="Précision sur le choix de l'instant associé", - ang="Accuracy over instant choice" ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), - fr="Critère de précision sur le choix de l'instant associé", - ang="Accuracy criterium over instant choice" ),), + INST = SIMP(statut='f',typ='R', + fr="Instant associé", + ang="Instant" ), # - ) , +# 6.1.4.2.2. La précision du choix de l'instant # -# 5.4. Les criteres pour de l'adaptation libre : -# absolu, relatif, en proportion d'entite -# 5.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 : fraction entre 0 et 1", - ang="Relative threshold : ratio between 0 and 1" ), - CRIT_RAFF_PE = SIMP(statut='f',typ='R', - fr="Pourcentage d'éléments : fraction entre 0 et 1", - ang="Percentage of elements : ratio between 0 and 1" ), - ) , + b_precision = BLOC(condition="(INST != None)", + fr="Choix de la précision du choix de l'instant", + ang="Selection for instant choice", + PRECISION = SIMP(statut='f',typ='R',defaut=1.0E-3, + fr="Précision sur le choix de l'instant associé", + ang="Accuracy over instant choice" ), + CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), + fr="Critère de précision sur le choix de l'instant associé", + ang="Accuracy criterium over instant choice" ), + ), # -# 5.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 : fraction entre 0 et 1", - ang="Relative threshold : ratio between 0 and 1" ), - CRIT_DERA_PE = SIMP(statut='f',typ='R', - fr="Pourcentage d'éléments : fraction entre 0 et 1", - ang="Percentage of elements : ratio between 0 and 1" ), - ) , + ), # -# 5.5. Les niveaux extremes pour le maillage adapte -# 5.5.1. Pour le raffinement : + ) , # - b_niveau_maximum =BLOC ( condition = " ( LIBRE == 'RAFF_DERA' ) or ( LIBRE == 'RAFFINEMENT' ) or \ - ( UNIFORME == 'RAFFINEMENT' ) " , +# 7. Les criteres pour de l'adaptation libre avec un indicateur d'erreur : +# absolu, relatif, en proportion d'entite +# 7.1. Pour le raffinement : +# + b_critere_de_raffinement = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \ + (ADAPTATION == 'RAFFINEMENT') " , + fr="Critère de raffinement.", + ang="Refinement threshold.", +# + regles=(UN_PARMI ( 'CRIT_RAFF_ABS', 'CRIT_RAFF_REL', 'CRIT_RAFF_PE' ),), +# + CRIT_RAFF_ABS = SIMP(statut='f',typ='R', + fr="Critère absolu", + ang="Absolute threshold" ), + CRIT_RAFF_REL = SIMP(statut='f',typ='R', + fr="Critère relatif : fraction réelle entre 0. et 1.", + ang="Relative threshold : ratio between 0. and 1." ), + CRIT_RAFF_PE = SIMP(statut='f',typ='R', + fr="Pourcentage d'éléments : fraction réelle entre 0. et 1.", + ang="Percentage of elements : ratio between 0. and 1." ), + ) , +# +# 7.2. Pour le deraffinement : +# + b_critere_de_deraffinement = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \ + (ADAPTATION == 'DERAFFINEMENT') " , + fr="Critère de déraffinement.", + ang="Unrefinement threshold.", +# + regles=(UN_PARMI ( 'CRIT_DERA_ABS', 'CRIT_DERA_REL', 'CRIT_DERA_PE' ),), +# + CRIT_DERA_ABS = SIMP(statut='f',typ='R' , + fr="Critère absolu", + ang="Absolute threshold" ), + CRIT_DERA_REL = SIMP(statut='f',typ='R', + fr="Critère relatif : fraction réelle entre 0. et 1.", + ang="Relative threshold : ratio between 0. and 1." ), + CRIT_DERA_PE = SIMP(statut='f',typ='R', + fr="Pourcentage d'éléments : fraction réelle entre 0. et 1.", + ang="Percentage of elements : ratio between 0. and 1." ), + ) , +# +# 8. Pour de l'adaptation par zone, définitions des zones +# Remarque : on impose le 3D +# + b_zone = BLOC( condition = " (ADAPTATION == 'RAFFINEMENT_ZONE') " , + fr="Pour une adaptation selon une zone à raffiner", + ang="For adaptation among zone", + ZONE = FACT(statut='f',max='**', + fr="Définition de zones à raffiner.", + ang="Refined zone definition.", +# + regles=(AU_MOINS_UN('X_MINI','X_CENTRE'), + EXCLUS('X_MINI','X_CENTRE',), + PRESENT_PRESENT('X_MINI','X_MAXI','Y_MINI','Y_MAXI','Z_MINI','Z_MAXI'), + PRESENT_PRESENT('X_CENTRE','Y_CENTRE','Z_CENTRE','RAYON'),), +# +# 6.2.1. Une boite parallelepipedique +# + X_MINI = SIMP(statut='f',typ='R', + fr="Abscisse minimum de la boite", + ang="Minimum X for the box"), + X_MAXI = SIMP(statut='f',typ='R', + fr="Abscisse maximum de la boite", + ang="Maximum X for the box"), +# + Y_MINI = SIMP(statut='f',typ='R', + fr="Orodnnée minimum de la boite", + ang="Minimum Y for the box"), + Y_MAXI = SIMP(statut='f',typ='R', + fr="Abscisse maximum de la boite", + ang="Maximum Y for the box"), +# + Z_MINI = SIMP(statut='f',typ='R', + fr="Cote minimum de la boite", + ang="Minimum Z for the box"), + Z_MAXI = SIMP(statut='f',typ='R', + fr="Cote maximum de la boite", + ang="Maximum Z for the box"), +# +# 6.2.2. Une sphere +# + X_CENTRE = SIMP(statut='f',typ='R', + fr="Abscisse du centre de la sphere", + ang="X for the center of the sphere"), + Y_CENTRE = SIMP(statut='f',typ='R', + fr="Ordonnee du centre de la sphere", + ang="Y for the center of the sphere"), + Z_CENTRE = SIMP(statut='f',typ='R', + fr="Cote du centre de la sphere", + ang="Z for the center of the sphere"), + RAYON = SIMP(statut='f',typ='R', + fr="Rayon de la sphere", + ang="Radius of the sphere"), +# + ) , +# + ) , +# +# 9. Les niveaux extremes pour le maillage adapte +# 9.1. Pour le raffinement : +# + b_niveau_maximum = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \ + (ADAPTATION == 'RAFFINEMENT') or \ + (ADAPTATION == 'RAFFINEMENT_UNIFORME') or \ + (ADAPTATION == 'RAFFINEMENT_ZONE') " , fr="Niveau maximum de profondeur de raffinement", ang="Maximum level for refinement", - NIVE_MAX = SIMP(statut='f',typ='I' ), - ) , + NIVE_MAX = SIMP(statut='f',typ='I', + fr="Niveau maximum de profondeur de raffinement", + ang="Maximum level for refinement"), + ) , # -# 5.5.2. Pour le deraffinement : +# 9.2. Pour le deraffinement : # - b_niveau_minimum =BLOC ( condition = " ( LIBRE == 'RAFF_DERA' ) or ( LIBRE == 'DERAFFINEMENT' ) or \ - ( UNIFORME == 'DERAFFINEMENT' ) " , + b_niveau_minimum = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \ + (ADAPTATION == 'DERAFFINEMENT') or \ + (ADAPTATION == 'DERAFFINEMENT_UNIFORME') " , fr="Niveau minimum de profondeur de déraffinement", ang="Minimum level for unrefinement", - NIVE_MIN = SIMP(statut='f',typ='I' ), - ) , -# - ), + NIVE_MIN = SIMP(statut='f',typ='I', + fr="Niveau minimum de profondeur de déraffinement", + ang="Minimum level for unrefinement"), + ) , # -# 6. Suivi d'une frontiere +# 10. Suivi d'une frontiere # - MAILLAGE_FRONTIERE = SIMP(statut='f',typ=maillage_sdaster, + MAILLAGE_FRONTIERE = SIMP(statut='f',typ=maillage_sdaster, fr="Maillage de la frontiere à suivre", ang="Boundary mesh" ), # - b_frontiere =BLOC( condition = " MAILLAGE_FRONTIERE != None " , - fr="Groupes définissant la frontière", - ang="Groups which define the boundary", - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**' ), - ) , + b_frontiere = BLOC( condition = " MAILLAGE_FRONTIERE != None " , + fr="Information complémentaire sur la frontière", + ang="Further information about boundary", # -# 7. Mise à jour de champs sur le nouveau maillage + GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', + fr="Liste des groupes de mailles définissant la frontière", + ang="Mesh groups which define the boundary" ), # - MAJ_CHAM =FACT(statut='f',max='**', - fr="Mise à jour de champs sur le nouveau maillage.", - ang="Updating of fields over the new mesh.", + ) , # -# 7.1. Le nom du champ qui contiendra le resultat de la mise a jour +# 11. Mise à jour de champs sur le nouveau maillage # - CHAM_MAJ = SIMP(statut='o',typ=CO, - fr="Nom du champ qui contiendra le champ mis à jour", - ang="Name of the field for the updated field"), + MAJ_CHAM = FACT(statut='f',max='**', + fr="Mise à jour de champs sur le nouveau maillage.", + ang="Updating of fields over the new mesh.", # -# 7.2. Le type du champ qui contiendra le resultat de la mise a jour +# 11.1. Le nom du champ de grandeur qui contiendra le resultat de la mise a jour # - TYPE_CHAM = SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO(), - fr="Type du champ qui contiendra le champ mis à jour", - ang="Type of the field for the updated field" ), + CHAM_MAJ = SIMP(statut='o',typ=CO, + fr="Nom du champ de grandeur qui contiendra le champ mis à jour", + ang="Name of the field for the updated field"), # -# 7.3. Le nom du resultat du champ a interpoler +# 11.2. Le type du champ qui contiendra le resultat de la mise a jour # - 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" ), + TYPE_CHAM = SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO(), + fr="Type du champ qui contiendra le champ mis à jour", + ang="Type of the field for the updated field" ), # -# 7.4. Le nom du champ a interpoler +# 11.3. Le champ a interpoler # - NOM_CHAM = SIMP(statut='o',typ='TXM', - fr="Nom du champ à mettre à jour", - ang="Name of the field to be updated" ), + regles=(UN_PARMI('CHAM_GD','RESULTAT')), # -# 7.5. Le paramètre temporel pour le champ a interpoler +# 11.3.1. Sous forme de champ de grandeur # - regles=(EXCLUS('NUME_ORDRE','INST'),), + CHAM_GD = SIMP(statut='f',typ=cham_gd_sdaster, + fr="Champ de grandeur Code_Aster contenant le champ à mettre à jour", + ang="Champ de grandeur with field to be updated" ), # -# 7.5.1. Soit le numero d'ordre +# 11.3.2. Sous forme de champ dans un resultat # - NUME_ORDRE = SIMP(statut='f',typ='I', - fr="Numero d ordre du champ à mettre à jour", - ang="Rank of the field to be updated" ), + RESULTAT = SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther), + fr="Resultat contenant le champ à mettre à jour", + ang="Result with field to be updated" ), # -# 7.5.2. Soit l'instant -# 7.5.2.1. Sa valeur + b_nom_du_champ = BLOC(condition="(RESULTAT != None)", + fr="Choix éventuel du nom du champ à interpoler", + ang="Selection for the name of the field (option)", # - INST = SIMP(statut='f',typ='R', - fr="Instant associé", - ang="Instant" ), + NOM_CHAM = SIMP(statut='o',typ='TXM', + fr="Nom du champ à mettre à jour", + ang="Name of the field to be updated" ), # -# 7.5.2.2. La précision du choix de l'instant + ), # - b_precision =BLOC(condition="(INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3, - fr="Précision sur le choix de l'instant associé", - ang="Accuracy over instant choice" ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), - fr="Critère de précision sur le choix de l'instant associé", - ang="Accuracy criterium over instant choice" ),), - ), +# 11.4. Le paramètre temporel pour le champ a interpoler # -# 8. Les options d'analyse de maillage ; par defaut, on ne fait que les nombres -# 8.1. Nombre de noeuds et éléments + b_parametre_temporel = BLOC(condition="(RESULTAT != None)", + fr="Choix éventuel du paramètre temporel pour le champ à interpoler", + ang="Time selection for the field (option)", # - NOMBRE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), + regles=(EXCLUS('NUME_ORDRE','INST'),), +# +# 11.4.1. Soit le numero d'ordre +# + NUME_ORDRE = SIMP(statut='f',typ='I', + fr="Numero d ordre du champ à mettre à jour", + ang="Rank of the field to be updated" ), +# +# 11.4.2. Soit l'instant +# 11.4.2.1. Sa valeur +# + INST = SIMP(statut='f',typ='R', + fr="Instant associé", + ang="Instant" ), +# +# 11.4.2.2. La précision du choix de l'instant +# + b_precision = BLOC(condition="(INST != None)", + fr="Choix de la précision du choix de l'instant", + ang="Selection for instant choice", +# + PRECISION = SIMP(statut='f',typ='R',defaut=1.0E-3, + fr="Précision sur le choix de l'instant associé", + ang="Accuracy over instant choice" ), +# + CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), + fr="Critère de précision sur le choix de l'instant associé", + ang="Accuracy criterium over instant choice" ), +# + ), +# + ), + ), +# +# 12. Les options d'analyse de maillage ; par defaut, on ne fait que les nombres +# 12.1. Nombre de noeuds et éléments +# + NOMBRE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), fr="Nombre de noeuds et éléments du maillage", ang="Number of nodes and éléments in the mesh" ), # -# 8.2. Determination de la qualité des éléments du maillage +# 12.2. Determination de la qualité des éléments du maillage # - QUALITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), + QUALITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), fr="Qualité du maillage", ang="Mesh quality" ), # -# 8.3. Connexite du maillage +# 12.3. Connexite du maillage # - CONNEXITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), + CONNEXITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), fr="Connexité du maillage.", ang="Mesh connexity." ), # -# 8.4. Taille des sous-domaines du maillage +# 12.4. Taille des sous-domaines du maillage # - TAILLE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), + TAILLE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), fr="Tailles des sous-domaines du maillage.", ang="Sizes of mesh sub-domains." ), # -# 8.5. Controle de la non-interpenetration des éléments +# 12.5. Controle de la non-interpenetration des éléments # - INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), + 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 22/02/2005 AUTEUR DURAND C.DURAND +# 13. Gestion des éléments autres que ceux compatibles avec HOMARD +# "REFUSER" : ils sont refuses (defaut) +# "IGNORER" : ils sont ignorés +# + ELEMENTS_NON_HOMARD = SIMP(statut='f',typ='TXM',defaut="REFUSER",into=("REFUSER","IGNORER"), + fr="Acceptation d'éléments incompatibles avec HOMARD", + ang="Incompatible elements for HOMARD" ), +# +) ; +#& MODIF COMMANDE DATE 07/10/2005 AUTEUR CIBHHPD L.SALMONA # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -16354,7 +17004,7 @@ def macr_ascouf_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS,CHARGE,RESU return evol_noli MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC",op=macr_ascouf_calc_ops,sd_prod=macr_ascouf_calc_prod, - fr=" ", + fr="Réalise l'analyse thermomécanique du coude dont le maillage a été concu par MACR_ASCOUF_MAIL", reentrant='n', UIinfo={"groupes":("Outils métier",)}, regles=(UN_PARMI('COMP_INCR','COMP_ELAS'),), @@ -16413,12 +17063,23 @@ MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC",op=macr_ascouf_calc_ops,sd_prod=ma COMP_INCR =FACT(statut='f', RELATION =SIMP(statut='o',typ='TXM',into=("VMIS_ISOT_TRAC",) ), VMIS_ISOT_TRAC =SIMP(statut='c',typ='I',defaut= 2,into=( 2 ,) ), + RESI_INTE_RELA =SIMP(statut='f',typ='R' + ,defaut= 1.0E-6), + ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), + ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), + RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", + into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), ), COMP_ELAS =FACT(statut='f', RELATION =SIMP(statut='o',typ='TXM',into=("ELAS","ELAS_VMIS_TRAC") ), ELAS =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ), ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ), + RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6), + ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), + ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), + RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", + into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), ), SOLVEUR =FACT(statut='d', @@ -16449,11 +17110,6 @@ MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC",op=macr_ascouf_calc_ops,sd_prod=ma 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 ), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), ), NEWTON =FACT(statut='d', @@ -16529,7 +17185,7 @@ MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC",op=macr_ascouf_calc_ops,sd_prod=ma INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 17/08/2004 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -16550,8 +17206,8 @@ MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC",op=macr_ascouf_calc_ops,sd_prod=ma # RESPONSABLE F1BHHAJ J.ANGLES from Macro.macr_ascouf_mail_ops import macr_ascouf_mail_ops MACR_ASCOUF_MAIL=MACRO(nom="MACR_ASCOUF_MAIL",op=macr_ascouf_mail_ops,sd_prod=maillage_sdaster, - fr=" ",reentrant='n', - UIinfo={"groupes":("Outils métier",)}, + fr="Engendre le maillage d'un coude sain ou comportant une fissure ou une (ou plusieurs) sous-épaisseur(s)", + UIinfo={"groupes":("Outils métier",)},reentrant='n', regles=(EXCLUS('SOUS_EPAIS_COUDE','FISS_COUDE','SOUS_EPAIS_MULTI'),), @@ -16677,7 +17333,7 @@ MACR_ASCOUF_MAIL=MACRO(nom="MACR_ASCOUF_MAIL",op=macr_ascouf_mail_ops,sd_prod=ma INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 22/02/2005 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 07/10/2005 AUTEUR CIBHHPD L.SALMONA # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -16709,8 +17365,8 @@ def macr_aspic_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS_1,FOND_FISS_ return evol_noli MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC",op=macr_aspic_calc_ops,sd_prod=macr_aspic_calc_prod, - fr=" ",reentrant='n', - UIinfo={"groupes":("Outils métier",)}, + fr="Réalise un calcul prédéfini de piquages sains ou fissurés ainsi que les post-traitements associés ", + UIinfo={"groupes":("Outils métier",)},reentrant='n', regles=(UN_PARMI('COMP_INCR','COMP_ELAS'),), TYPE_MAILLAGE =SIMP(statut='o',typ='TXM', @@ -16782,12 +17438,22 @@ MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC",op=macr_aspic_calc_ops,sd_prod=macr_ COMP_INCR =FACT(statut='f', RELATION =SIMP(statut='o',typ='TXM',into=("VMIS_ISOT_TRAC",) ), VMIS_ISOT_TRAC =SIMP(statut='c',typ='I',defaut= 2,into=( 2 ,) ), + RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut=1.0E-6), + ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut=10), + ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut=0), + RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", + into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), ), COMP_ELAS =FACT(statut='f', RELATION =SIMP(statut='o',typ='TXM',into=("ELAS","ELAS_VMIS_TRAC") ), ELAS =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ), ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ), + RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6), + ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), + ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), + RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", + into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), ), THETA_3D =FACT(statut='f',max='**', @@ -16830,10 +17496,6 @@ MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC",op=macr_aspic_calc_ops,sd_prod=macr_ 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), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), ), NEWTON =FACT(statut='d', @@ -16894,7 +17556,7 @@ MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC",op=macr_aspic_calc_ops,sd_prod=macr_ TITRE =SIMP(statut='f',typ='TXM'), ) -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -16917,7 +17579,7 @@ MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC",op=macr_aspic_calc_ops,sd_prod=macr_ from Macro.macr_aspic_mail_ops import macr_aspic_mail_ops MACR_ASPIC_MAIL=MACRO(nom="MACR_ASPIC_MAIL",op= macr_aspic_mail_ops,sd_prod=maillage_sdaster,reentrant='n', - fr=" ", + fr="Engendre le maillage d'un piquage sain ou avec fissure (longue ou courte)", UIinfo={"groupes":("Outils métier",)}, EXEC_MAILLAGE =FACT(statut='o', @@ -16991,7 +17653,7 @@ MACR_ASPIC_MAIL=MACRO(nom="MACR_ASPIC_MAIL",op= macr_aspic_mail_ops,sd_prod=mail INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), ) ; -#& MODIF COMMANDE DATE 22/02/2005 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 07/10/2005 AUTEUR CIBHHPD L.SALMONA # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG @@ -17034,7 +17696,7 @@ def macr_cabri_calc_prod(self,MODELE_THER,MODELE_MECA,CHAM_MATER, MACR_CABRI_CALC=MACRO(nom="MACR_CABRI_CALC", op=macr_cabri_calc_ops, sd_prod=macr_cabri_calc_prod, - fr="Calcul d'une jonction boulonnée de tuyauterie", + fr="Calcul thermo-mécanique d'une jonction boulonnée de tuyauterie", reentrant='n', UIinfo={"groupes":("Outils métier",)}, MAILLAGE = SIMP(statut='o',typ=maillage_sdaster,), @@ -17131,6 +17793,8 @@ MACR_CABRI_CALC=MACRO(nom="MACR_CABRI_CALC", REAC_ITER =SIMP(statut='f',typ='I',defaut=0), EVOL_NOLI =SIMP(statut='f',typ=evol_noli), ), + RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", + into=("IMPLICITE",)), CONVERGENCE =FACT(statut='d', regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),), SIGM_REFE =SIMP(statut='f',typ='R'), @@ -17141,8 +17805,6 @@ MACR_CABRI_CALC=MACRO(nom="MACR_CABRI_CALC", 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), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", - into=("IMPLICITE",)), ), ); @@ -17237,7 +17899,7 @@ MACR_CABRI_MAIL=MACRO(nom="MACR_CABRI_MAIL", ), ); -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG @@ -17259,10 +17921,10 @@ MACR_CABRI_MAIL=MACRO(nom="MACR_CABRI_MAIL", from Macro.macr_cara_poutre_ops import macr_cara_poutre_ops -MACR_CARA_POUTRE=MACRO(nom="MACR_CARA_POUTRE",op=macr_cara_poutre_ops,sd_prod=tabl_cara_geom, +MACR_CARA_POUTRE=MACRO(nom="MACR_CARA_POUTRE",op=macr_cara_poutre_ops,sd_prod=table_sdaster, reentrant='n', UIinfo={"groupes":("Modélisation",)}, - fr="caractéristiques d'une section transversale de poutre à partir d'un maillage 2D", + fr="Calculer les caractéristiques d'une section transversale de poutre à partir d'un maillage 2D de la section", regles=(EXCLUS('SYME_X','GROUP_MA_BORD'), EXCLUS('SYME_Y','GROUP_MA_BORD'),), @@ -17298,7 +17960,7 @@ MACR_CARA_POUTRE=MACRO(nom="MACR_CARA_POUTRE",op=macr_cara_poutre_ops,sd_prod=ta fr="type de conditions aux limites sur le plancher supérieur" ), ), ) -#& MODIF COMMANDE DATE 22/02/2005 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG @@ -17328,7 +17990,7 @@ def macr_ecla_pg_prod(self,RESULTAT,MAILLAGE,RESU_INIT,**args): MACR_ECLA_PG=MACRO(nom="MACR_ECLA_PG",op=macr_ecla_pg_ops,sd_prod=macr_ecla_pg_prod, reentrant='n', UIinfo={"groupes":("Post traitements",)}, - fr="permettre la visualisation des champs aux points de Gauss d'une SD_RESULTAT.", + fr="Permettre la visualisation des champs aux points de Gauss d'une SD_RESULTAT sans lissage ni interpolation", # SD résultat ,modèle et champs à "éclater" : @@ -17360,7 +18022,7 @@ MACR_ECLA_PG=MACRO(nom="MACR_ECLA_PG",op=macr_ecla_pg_ops,sd_prod=macr_ecla_pg_p PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), ) -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -17379,7 +18041,7 @@ MACR_ECLA_PG=MACRO(nom="MACR_ECLA_PG",op=macr_ecla_pg_ops,sd_prod=macr_ecla_pg_p # 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", + fr="Définition d'un macro élément pour analyse modale ou harmonique par sous structuration dynamique", reentrant='n', UIinfo={"groupes":("Matrices/vecteurs",)}, regles=(EXCLUS('MATR_AMOR','AMOR_REDUIT' ),), @@ -17391,7 +18053,7 @@ MACR_ELEM_DYNA=OPER(nom="MACR_ELEM_DYNA",op= 81,sd_prod=macr_elem_dyna, OPTION =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","RITZ", "DIAG_MASS") ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -17411,7 +18073,7 @@ MACR_ELEM_DYNA=OPER(nom="MACR_ELEM_DYNA",op= 81,sd_prod=macr_elem_dyna, # ====================================================================== MACR_ELEM_STAT=OPER(nom="MACR_ELEM_STAT",op=86,sd_prod=macr_elem_stat,reentrant='f', UIinfo={"groupes":("Matrices/vecteurs",)}, - fr="Définition d un macro-élément pour l analyse statique par sous structuration", + 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', @@ -17439,7 +18101,7 @@ MACR_ELEM_STAT=OPER(nom="MACR_ELEM_STAT",op=86,sd_prod=macr_elem_stat,reentrant= INST =SIMP(statut='f',typ='R',defaut=0.E+0), ), ) ; -#& MODIF COMMANDE DATE 07/10/2004 AUTEUR GNICOLAS G.NICOLAS +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG @@ -17462,7 +18124,7 @@ MACR_ELEM_STAT=OPER(nom="MACR_ELEM_STAT",op=86,sd_prod=macr_elem_stat,reentrant= from Macro.macr_fiab_impr_ops import macr_fiab_impr_ops MACR_FIAB_IMPR=MACRO(nom="MACR_FIAB_IMPR",op=macr_fiab_impr_ops, - docu="U7.04.41", + docu="U7.04.41",UIinfo={"groupe":("Impression",)}, fr="Imprimer les valeurs à transmettre au logiciel de fiabilité.", ang="Print values for the fiability software", # @@ -17509,7 +18171,7 @@ MACR_FIAB_IMPR=MACRO(nom="MACR_FIAB_IMPR",op=macr_fiab_impr_ops, ), # ); -#& MODIF COMMANDE DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +#& MODIF COMMANDE DATE 04/10/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG @@ -17544,9 +18206,9 @@ def macr_fiabilite_prod ( self , **args ): #==== # MACR_FIABILITE = MACRO ( nom="MACR_FIABILITE",op=macr_fiabilite_ops, - docu="U7.03.31", + docu="U7.03.31",UIinfo={"groupe":("Post traitements",)}, sd_prod=macr_fiabilite_prod, - fr="Faire de la mécanique fiabiliste.", + fr="Calcule les probabiltés de dépassement de seuil (mécanique de fiabilité).", ang="Fiability mechanics.", # #==== @@ -17738,7 +18400,7 @@ MACR_FIABILITE = MACRO ( nom="MACR_FIABILITE",op=macr_fiabilite_ops, # # 6.2.6. ==> Les correlations entre les variables # - MATRICE = SIMP(statut="o",typ="R",max="**", + MATRICE = SIMP(statut="f",typ="R",max="**", fr="Matrice de corrélation entre les variables.", ang="Correlation matrix."), # @@ -17888,7 +18550,7 @@ MACR_FIABILITE = MACRO ( nom="MACR_FIABILITE",op=macr_fiabilite_ops, ), # ); -#& MODIF COMMANDE DATE 03/11/2004 AUTEUR MCOURTOI M.COURTOIS +#& MODIF COMMANDE DATE 22/05/2006 AUTEUR MCOURTOI M.COURTOIS # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -17911,88 +18573,90 @@ MACR_FIABILITE = MACRO ( nom="MACR_FIABILITE",op=macr_fiabilite_ops, from Macro.macr_adap_mail_ops import macr_adap_mail_ops MACR_INFO_MAIL=MACRO(nom="MACR_INFO_MAIL",op=macr_adap_mail_ops, - docu="U7.03.02-b", + docu="U7.03.02-b",UIinfo={"groupe":("Maillage",)}, fr="Donner des informations sur un maillage.", ang="To give information about a mesh.", # # 1. Le niveau d'information # - INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)), + INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)), # # 2. Version de HOMARD # - VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V7_1", - into=("V7_1", "V7_N", "V7_N_PERSO"), - fr="Version de HOMARD", - ang="HOMARD release"), + VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V8_2", + into=("V8_2", "V8_N", "V8_N_PERSO"), + fr="Version de HOMARD", + ang="HOMARD release"), # # 3. Langue des messages issus de HOMARD # - LANGUE = SIMP(statut='f',typ='TXM',defaut="FRANCAIS", - into=("FRANCAIS","FRENCH","ANGLAIS","ENGLISH",), - fr="Langue des messages issus de HOMARD.", - ang="Language for HOMARD messages." ), -# -# 4. Gestion des éléments autres que des simplexes -# 0 : autres elements refusés -# 1 : analyse exclusivement sur les simplexes, mais autres éléments acceptés -# 2 : tous (defaut) + 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." ), # - NON_SIMPLEXE = SIMP(statut='f',typ='I',defaut=2,into=(0,1,2), - fr="Acceptation d'éléments quad, hexa et penta", - ang="quad, hexa and penta elements allowed" ), +# 4. Le nom du maillage a analyser # -# 5. Le nom du maillage a analyser + MAILLAGE = SIMP(statut='o',typ=maillage_sdaster, + fr="Maillage à analyser.", + ang="Mesh to be checked." ), # - MAILLAGE = SIMP(statut='o',typ=maillage_sdaster, - fr="Maillage à analyser.", - ang="Mesh to be checked." ), +# 5. Suivi d'une frontiere # -# 6. Suivi d'une frontiere -# - MAILLAGE_FRONTIERE = SIMP(statut='f',typ=maillage_sdaster, + MAILLAGE_FRONTIERE = SIMP(statut='f',typ=maillage_sdaster, fr="Maillage de la frontiere à suivre", ang="Boundary mesh" ), # - b_frontiere =BLOC( condition = " MAILLAGE_FRONTIERE != None " , - fr="Groupes définissant la frontière", - ang="Groups which define the boundary", - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**' ), - ) , + b_frontiere = BLOC( condition = " MAILLAGE_FRONTIERE != None " , + fr="Information complémentaire sur la frontière", + ang="Further information about boundary", # -# 7. Les options ; par defaut, on ne fait que les nombres -# 7.1. Nombre de noeuds et elements + GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', + fr="Groupes de mailles définissant la frontière", + ang="Mesh groups which define the boundary" ), # - NOMBRE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), - fr="Nombre de noeuds et éléments du maillage", - ang="Number of nodes and elements in the mesh" ), + ) , # -# 7.2. Determination de la qualite des elements du maillage +# 6. Les options ; par defaut, on controle tout +# 6.1. Nombre de noeuds et elements # - QUALITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Qualité du maillage", - ang="Mesh quality" ), + NOMBRE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), + fr="Nombre de noeuds et éléments du maillage", + ang="Number of nodes and elements in the mesh" ), # -# 7.3. Connexite du maillage +# 6.2. Determination de la qualite des elements du maillage # - CONNEXITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Connexité du maillage.", - ang="Mesh connexity." ), + QUALITE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), + fr="Qualité du maillage", + ang="Mesh quality" ), # -# 7.4. Taille des sous-domaines du maillage +# 6.3. Connexite 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." ), + CONNEXITE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), + fr="Connexité du maillage.", + ang="Mesh connexity." ), # -# 7.5. Controle de la non-interpenetration des elements +# 6.4. Taille des sous-domaines du maillage # - INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Controle de la non interpénétration des éléments.", - ang="Overlapping checking." ), + TAILLE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), + fr="Tailles des sous-domaines du maillage.", + ang="Sizes of mesh sub-domains." ), +# +# 6.5. Controle de la non-interpenetration des elements # + INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), + fr="Controle de la non interpénétration des éléments.", + ang="Overlapping checking." ), +# +# 7. Gestion des éléments autres que ceux compatibles avec HOMARD +# "REFUSER" : ils sont refuses (defaut) +# "IGNORER" : ils sont ignorés +# + ELEMENTS_NON_HOMARD = SIMP(statut='f',typ='TXM',defaut="REFUSER",into=("REFUSER","IGNORER"), + fr="Acceptation d'éléments incompatibles avec HOMARD", + ang="Incompatible elements for HOMARD" ), ) ; -#& MODIF COMMANDE DATE 14/02/2005 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 09/05/2006 AUTEUR GALENNE E.GALENNE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG @@ -18016,7 +18680,8 @@ from Macro.macr_lign_coupe_ops import macr_lign_coupe_ops MACR_LIGN_COUPE=MACRO(nom="MACR_LIGN_COUPE",op=macr_lign_coupe_ops,sd_prod=table_sdaster, reentrant='n', UIinfo={"groupes":("Outils métier",)}, - fr="extraction d un résultat sur des lignes de coupes définies par 2 points ou un group_no", + fr="Extraction des valeurs d'un résultat dans une ou plusieurs tables sur des lignes de coupe définies" + +" par deux points et un intervalle", RESULTAT =SIMP(statut='o',typ=(evol_elas,evol_noli,evol_ther) ), # extraction des résultats b_meca =BLOC(condition = "AsType(RESULTAT) in (evol_elas,evol_noli)",fr="résultat mécanique", @@ -18027,17 +18692,23 @@ MACR_LIGN_COUPE=MACRO(nom="MACR_LIGN_COUPE",op=macr_lign_coupe_ops,sd_prod=table ), UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=25), MODELE =SIMP(statut='f',typ=modele_sdaster ), + GROUP_MA =SIMP(statut='f',typ=grma), + MAILLE =SIMP(statut='f',typ=ma,max='**'), + regles=(EXCLUS('GROUP_MA','MAILLE'),), LIGN_COUPE =FACT(statut='o',max='**', regles=(UN_PARMI('NB_POINTS','GROUP_NO'),), INTITULE =SIMP(statut='f',typ='TXM',), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),), + GROUP_NO =SIMP(statut='f',typ=grno), NB_POINTS =SIMP(statut='f',typ='I'), b_nbpts = BLOC(condition = "NB_POINTS != None", COOR_ORIG =SIMP(statut='o',typ='R',min=2,max=3), - COOR_EXTR =SIMP(statut='o',typ='R',min=2,max=3), ), + COOR_EXTR =SIMP(statut='o',typ='R',min=2,max=3), + VECT_Y =SIMP(statut='f',typ='R',min=2,max=3),), ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE + + +#& MODIF COMMANDE DATE 08/11/2005 AUTEUR ASSIRE A.ASSIRE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG @@ -18064,7 +18735,8 @@ def macr_recal_prod(self,**args ): MACR_RECAL = MACRO(nom="MACR_RECAL",op=macr_recal_ops, UIinfo={"groupes":("Résultats et champs",)}, sd_prod=macr_recal_prod, - fr="Réalise le recalage de modèles Aster", + fr="Réalise le recalage des calculs Aster sur des résultats expérimentaux" + +" ou sur d'autres résultats de calculs", UNITE_ESCL =SIMP(statut='o',typ='I'), RESU_EXP =SIMP(statut='o',typ=assd,max='**'), POIDS =SIMP(statut='f',typ=assd,max='**'), @@ -18076,9 +18748,11 @@ MACR_RECAL = MACRO(nom="MACR_RECAL",op=macr_recal_ops, PARA_DIFF_FINI =SIMP(statut='f',typ='R',defaut=0.001), GRAPHIQUE =FACT(statut='d', UNITE =SIMP(statut='f',typ='I',defaut=90), - INTERACTIF =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON")),) + FORMAT =SIMP(statut='f',typ='TXM',defaut='XMGRACE',into=("XMGRACE","GNUPLOT")), + INTERACTIF =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON")),), + INFO =SIMP(statut='f',typ='I',defaut=1,into=( 1, 2 ) ), ) ; -#& MODIF COMMANDE DATE 22/02/2005 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 04/04/2006 AUTEUR CIBHHLV L.VIVAN # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -18111,6 +18785,7 @@ def macro_elas_mult_prod(self,NUME_DDL,CAS_CHARGE,**args ): MACRO_ELAS_MULT=MACRO(nom="MACRO_ELAS_MULT",op=macro_elas_mult_ops,sd_prod=macro_elas_mult_prod,reentrant='f', UIinfo={"groupes":("Résolution",)}, + fr="Calculer les réponses statiques linéaires pour différents cas de charges ou modes de Fourier", regles=(UN_PARMI('CHAR_MECA_GLOBAL','CHAR_CINE_GLOBAL','LIAISON_DISCRET', ),), MODELE =SIMP(statut='o',typ=modele_sdaster), CHAM_MATER =SIMP(statut='f',typ=cham_mater), @@ -18133,15 +18808,16 @@ MACRO_ELAS_MULT=MACRO(nom="MACRO_ELAS_MULT",op=macro_elas_mult_ops,sd_prod=macro "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", + "INTE_ELNO_REAC","SIGM_NOZ1_ELGA","ERZ1_ELEM_SIGM","SIGM_NOZ2_ELGA", + "ERZ2_ELEM_SIGM","VNOR_ELEM_DEPL","ERRE_ELNO_ELEM","SIRE_ELNO_DEPL", + "ERRE_ELEM_SIGM","EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","EQUI_ELNO_EPSI", + "QIRE_ELEM_SIGM","QIRE_ELNO_ELEM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM", "EQUI_ELGA_EPSI","FORC_NODA","REAC_NODA","EPSI_NOEU_DEPL","SIGM_NOEU_DEPL", "EFGE_NOEU_DEPL","EQUI_NOEU_SIGM","EQUI_NOEU_EPSI","FLUX_NOEU_TEMP") ), NUME_COUCHE =SIMP(statut='f',typ='I',defaut=1), NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY")), SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'), - VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r), + VECT_ASSE =SIMP(statut='f',typ=cham_no_sdaster), ), SOLVEUR =FACT(statut='d', METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT") ), @@ -18161,7 +18837,7 @@ MACRO_ELAS_MULT=MACRO(nom="MACRO_ELAS_MULT",op=macro_elas_mult_ops,sd_prod=macro INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2)), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 22/02/2005 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -18188,12 +18864,14 @@ def macro_matr_ajou_prod(self,MATR_AMOR_AJOU,MATR_MASS_AJOU,MATR_RIGI_AJOU,FORC_ self.type_sdprod(MATR_RIGI_AJOU,matr_asse_gene_r) if FORC_AJOU != None: for m in FORC_AJOU: - self.type_sdprod(m['VECTEUR'],vect_asse_gene_r) + self.type_sdprod(m['VECTEUR'],vect_asse_gene) return None MACRO_MATR_AJOU=MACRO(nom="MACRO_MATR_AJOU",op=macro_matr_ajou_ops,sd_prod=macro_matr_ajou_prod, UIinfo={"groupes":("Matrices/vecteurs",)}, + fr="Calculer de facon plus condensée qu'avec CALC_MATR_AJOU des matrices de masse, d'amortissement" + +" ou de rigidité ajoutés", regles=(AU_MOINS_UN('MODE_MECA','DEPL_IMPO','MODELE_GENE'), AU_MOINS_UN('MATR_MASS_AJOU','MATR_AMOR_AJOU','MATR_RIGI_AJOU'), EXCLUS('MODE_MECA','DEPL_IMPO','MODELE_GENE'), @@ -18225,7 +18903,7 @@ MACRO_MATR_AJOU=MACRO(nom="MACRO_MATR_AJOU",op=macro_matr_ajou_ops,sd_prod=macro 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), + DEPL_IMPO =SIMP(statut='f',typ=cham_no_sdaster), MODELE_GENE =SIMP(statut='f',typ=modele_gene), NUME_DDL_GENE =SIMP(statut='f',typ=nume_ddl_gene), DIST_REFE =SIMP(statut='f',typ='R',defaut= 1.0E-2), @@ -18265,7 +18943,7 @@ MACRO_MATR_AJOU=MACRO(nom="MACRO_MATR_AJOU",op=macro_matr_ajou_ops,sd_prod=macro 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 01/04/2005 AUTEUR VABHHTS J.PELLET +#& MODIF COMMANDE DATE 16/05/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -18314,7 +18992,7 @@ def macro_matr_asse_prod(self,NUME_DDL,MATR_ASSE,**args): MACRO_MATR_ASSE=MACRO(nom="MACRO_MATR_ASSE",op=macro_matr_asse_ops, UIinfo={"groupes":("Matrices/vecteurs",)}, sd_prod=macro_matr_asse_prod, - fr="Calcul des matrices assemblées (matr_asse_gd) par exemple de rigidité, de masse ", + fr="Calcul des matrices assemblées (rigidité, masse, amortissement,...) ", MODELE =SIMP(statut='o',typ=modele_sdaster), CHAM_MATER =SIMP(statut='f',typ=cham_mater), INST =SIMP(statut='f',typ='R',defaut=0.), @@ -18344,7 +19022,7 @@ MACRO_MATR_ASSE=MACRO(nom="MACRO_MATR_ASSE",op=macro_matr_asse_ops, ), b_rigi_geom = BLOC( condition = "OPTION=='RIGI_GEOM'", - SIEF_ELGA =SIMP(statut='o',typ=cham_elem_sief_r), + SIEF_ELGA =SIMP(statut='o',typ=cham_elem), MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0), ), @@ -18362,7 +19040,7 @@ MACRO_MATR_ASSE=MACRO(nom="MACRO_MATR_ASSE",op=macro_matr_asse_ops, TITRE =SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), ) ; -#& MODIF COMMANDE DATE 03/11/2004 AUTEUR ACBHHCD G.DEVESA +#& MODIF COMMANDE DATE 20/03/2006 AUTEUR ACBHHCD G.DEVESA # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -18383,7 +19061,8 @@ MACRO_MATR_ASSE=MACRO(nom="MACRO_MATR_ASSE",op=macro_matr_asse_ops, 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=" ", +MACRO_MISS_3D=MACRO(nom="MACRO_MISS_3D",op=macro_miss_3d_ops, + fr="Préparation des données puis exécution du logiciel MISS3D", UIinfo={"groupes":("Matrices/vecteurs",)}, OPTION =FACT(statut='o', regles=(UN_PARMI('TOUT','MODULE'),), @@ -18396,9 +19075,37 @@ MACRO_MISS_3D=MACRO(nom="MACRO_MISS_3D",op=macro_miss_3d_ops,fr=" ", UNITE_IMPR_ASTER=SIMP(statut='f',typ='I',defaut=25), UNITE_OPTI_MISS =SIMP(statut='f',typ='I',defaut=26), UNITE_MODELE_SOL=SIMP(statut='f',typ='I',defaut=27), - UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30), + UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30), + UNITE_RESU_FORC =SIMP(statut='f',typ='I',defaut=0), + PARAMETRE =FACT(statut='f', + regles=(PRESENT_PRESENT('FREQ_MIN','FREQ_MAX','FREQ_PAS'), + PRESENT_PRESENT('CONTR_NB','CONTR_LISTE'), + PRESENT_PRESENT('LFREQ_NB','LFREQ_LISTE'), + PRESENT_PRESENT('OFFSET_MAX','OFFSET_NB'), + PRESENT_PRESENT('SPEC_MAX','SPEC_NB'),), + FREQ_MIN =SIMP(statut='f',typ='R'), + FREQ_MAX =SIMP(statut='f',typ='R'), + FREQ_PAS =SIMP(statut='f',typ='R'), + Z0 =SIMP(statut='f',typ='R'), + SURF =SIMP(statut='f',typ='TXM',into=("OUI","NON",),defaut="NON"), + RFIC =SIMP(statut='f',typ='R'), + FICH_RESU_IMPE =SIMP(statut='f',typ='TXM'), + FICH_RESU_FORC =SIMP(statut='f',typ='TXM'), + DREF =SIMP(statut='f',typ='R'), + ALGO =SIMP(statut='f',typ='TXM',into=("DEPL","REGU")), + OFFSET_MAX =SIMP(statut='f',typ='R'), + OFFSET_NB =SIMP(statut='f',typ='I'), + SPEC_MAX =SIMP(statut='f',typ='R'), + SPEC_NB =SIMP(statut='f',typ='I'), + ISSF =SIMP(statut='f',typ='TXM',into=("OUI","NON",),defaut="NON"), + FICH_POST_TRAI =SIMP(statut='f',typ='TXM'), + CONTR_NB =SIMP(statut='f',typ='I'), + CONTR_LISTE =SIMP(statut='f',typ='R',max='**'), + LFREQ_NB =SIMP(statut='f',typ='I'), + LFREQ_LISTE =SIMP(statut='f',typ='R',max='**'), + ), ) ; -#& MODIF COMMANDE DATE 22/02/2005 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -18420,7 +19127,7 @@ MACRO_MISS_3D=MACRO(nom="MACRO_MISS_3D",op=macro_miss_3d_ops,fr=" ", from Macro.macro_mode_meca_ops import macro_mode_meca_ops MACRO_MODE_MECA=MACRO(nom="MACRO_MODE_MECA",op=macro_mode_meca_ops,sd_prod=mode_meca, - reentrant='n', + reentrant='n',fr="Lancer une succession de calculs de modes propres réels", UIinfo={"groupes":("Résolution",)}, MATR_A =SIMP(statut='o',typ=matr_asse_depl_r ), MATR_B =SIMP(statut='o',typ=matr_asse_depl_r ), @@ -18471,7 +19178,7 @@ MACRO_MODE_MECA=MACRO(nom="MACRO_MODE_MECA",op=macro_mode_meca_ops,sd_prod=mode_ STURM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), ), NORM_MODE =FACT(statut='o',max='**', - MASS_INER =SIMP(statut='o',typ=tabl_mass_iner ), + MASS_INER =SIMP(statut='o',typ=table_sdaster), NORME =SIMP(statut='f',typ='TXM',defaut="TRAN_ROTA", into=("MASS_GENE","RIGI_GENE","EUCL", "EUCL_TRAN","TRAN","TRAN_ROTA") ), @@ -18489,7 +19196,7 @@ MACRO_MODE_MECA=MACRO(nom="MACRO_MODE_MECA",op=macro_mode_meca_ops,sd_prod=mode_ into=("MASS_EFFE_UN","MASS_GENE",) ), ), ) ; -#& MODIF COMMANDE DATE 22/02/2005 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -18516,30 +19223,33 @@ def macro_proj_base_prod(self,MATR_ASSE_GENE,VECT_ASSE_GENE,PROFIL,**args ): self.type_sdprod(m['MATRICE'],matr_asse_gene_r) if VECT_ASSE_GENE != None: for v in VECT_ASSE_GENE: - self.type_sdprod(v['VECTEUR'],vect_asse_gene_r) + self.type_sdprod(v['VECTEUR'],vect_asse_gene) return None MACRO_PROJ_BASE=MACRO(nom="MACRO_PROJ_BASE",op=macro_proj_base_ops, + regles=(AU_MOINS_UN('MATR_ASSE_GENE','VECT_ASSE_GENE')), UIinfo={"groupes":("Matrices/vecteurs",)}, sd_prod=macro_proj_base_prod, - fr="Projection des matrices et/ou vecteurs assemblés sur une base de vecteurs", + fr="Projection des matrices et/ou vecteurs assemblés sur une base (modale ou de RITZ)", BASE =SIMP(statut='o',typ=(mode_meca,mode_stat,base_modale,mode_gene) ), NB_VECT =SIMP(statut='f',typ='I',defaut= 9999), PROFIL =SIMP(statut='f',typ='TXM',defaut="DIAG",into=("PLEIN","DIAG") ), MATR_ASSE_GENE =FACT(statut='f',max='**', MATRICE =SIMP(statut='o',typ=CO,), + regles=(UN_PARMI('MATR_ASSE','MATR_ASSE_GENE',),), MATR_ASSE =SIMP(statut='f',typ=matr_asse_depl_r), MATR_ASSE_GENE =SIMP(statut='f',typ=matr_asse_gene_r), ), VECT_ASSE_GENE =FACT(statut='f',max='**', VECTEUR =SIMP(statut='o',typ=CO,), + regles=(UN_PARMI('VECT_ASSE','VECT_ASSE_GENE',),), TYPE_VECT =SIMP(statut='f',typ='TXM',defaut="FORC"), - VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r), - VECT_ASSE_GENE =SIMP(statut='f',typ=vect_asse_gene_r), + VECT_ASSE =SIMP(statut='f',typ=cham_no_sdaster), + VECT_ASSE_GENE =SIMP(statut='f',typ=vect_asse_gene), ), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -18559,12 +19269,12 @@ MACRO_PROJ_BASE=MACRO(nom="MACRO_PROJ_BASE",op=macro_proj_base_ops, # ====================================================================== MAJ_CATA=PROC(nom="MAJ_CATA",op=20, UIinfo={"groupes":("Gestion du travail",)}, - fr="Compilation des catalogues de commandes et d éléments", + fr="Compilation des catalogues de commandes et d'éléments", ELEMENT =FACT(statut='f',), ) ; -#& MODIF COMMANDE DATE 01/04/2005 AUTEUR VABHHTS J.PELLET +#& MODIF COMMANDE DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -18584,10 +19294,11 @@ MAJ_CATA=PROC(nom="MAJ_CATA",op=20, # ====================================================================== # RESPONSABLE VABHHTS J.PELLET MECA_STATIQUE=OPER(nom="MECA_STATIQUE",op=46,sd_prod=evol_elas, - fr="Analyse mécanique statique linéaire",reentrant='f', + fr="Résoudre un problème de mécanique statique linéaire",reentrant='f', UIinfo={"groupes":("Résolution",)}, - regles=(EXCLUS("INST","LIST_INST"), - AU_MOINS_UN('CHAM_MATER','CARA_ELEM',), ), + regles=(EXCLUS("INST","LIST_INST"), + AU_MOINS_UN('CHAM_MATER','CARA_ELEM',), + CONCEPT_SENSIBLE('ENSEMBLE'),), MODELE =SIMP(statut='o',typ=modele_sdaster), CHAM_MATER =SIMP(statut='f',typ=cham_mater, fr="le CHAM_MATER est nécessaire, sauf si le modèle ne contient que des éléments discrets (modélisations DIS_XXX)", @@ -18621,12 +19332,15 @@ MECA_STATIQUE=OPER(nom="MECA_STATIQUE",op=46,sd_prod=evol_elas, NMAX_ITER =SIMP(statut='f',typ='I',defaut=0,val_min=0), TYPE_REORTHO_DD =SIMP(statut='f',typ='TXM',defaut="GSM",into=("SANS","GS","GSM","IGSM") ), NB_REORTHO_DD =SIMP(statut='f',typ='I',defaut=0,val_min=0), + NB_REORTHO_INST =SIMP(statut='f',typ='I',defaut=0,val_min=0), PRE_COND =SIMP(statut='f',typ='TXM',defaut="LUMPE",into=("LUMPE","SANS") ), SCALING =SIMP(statut='f',typ='TXM',defaut="MULT",into=("SANS","MULT") ), VERIF_SDFETI =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), TEST_CONTINU =SIMP(statut='f',typ='R',defaut=1.E-8,val_min=0.), - INFO_FETI =SIMP(statut='f',typ='TXM',defaut='FFFFFFFFF'), - STOCKAGE_GI =SIMP(statut='f',typ='TXM',defaut="CAL",into=("OUI","NON","CAL") ), + INFO_FETI =SIMP(statut='f',typ='TXM',defaut='FFFFFFFFFFFFFFFFFFFFFFFF'), + STOCKAGE_GI =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","CAL") ), + NB_SD_PROC0 =SIMP(statut='f',typ='I',defaut=0,val_min=0), + ACCELERATION_SM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), ), b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", @@ -18723,7 +19437,7 @@ MEMO_NOM_SENSI=PROC(nom="MEMO_NOM_SENSI",op=129, ang="Name of the one fonction"), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -18742,7 +19456,8 @@ MEMO_NOM_SENSI=PROC(nom="MEMO_NOM_SENSI",op=129, # 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", + fr="Calcul des modes propres d'une structure à répétitivité cyclique à partir" + +" d'une base de modes propres réels", reentrant='n', UIinfo={"groupes":("Résolution",)}, BASE_MODALE =SIMP(statut='o',typ=base_modale ), @@ -18777,7 +19492,7 @@ MODE_ITER_CYCL=OPER(nom="MODE_ITER_CYCL",op= 80,sd_prod=mode_cycl, ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; -#& MODIF COMMANDE DATE 20/10/2004 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -18804,9 +19519,10 @@ def mode_iter_inv_prod(MATR_A,MATR_C,TYPE_RESU,**args ): 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", + ,fr="Calcul des modes propres par itérations inverses ; valeurs propres et modes réels ou complexes", reentrant='n', UIinfo={"groupes":("Résolution",)}, + regles=(CONCEPT_SENSIBLE('ENSEMBLE'),), MATR_A =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ), MATR_B =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ), MATR_C =SIMP(statut='f',typ=matr_asse_depl_r ), @@ -18871,7 +19587,7 @@ MODE_ITER_INV=OPER(nom="MODE_ITER_INV",op= 44,sd_prod=mode_iter_inv_prod INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), TITRE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), ) ; -#& MODIF COMMANDE DATE 21/03/2005 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -18899,9 +19615,11 @@ def mode_iter_simult_prod(MATR_A,MATR_C,TYPE_RESU,**args ): 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", + fr="Calcul des modes propres par itérations simultanées ; valeurs propres et" + +" modes propres réels ou complexes", reentrant='n', UIinfo={"groupes":("Résolution",)}, + regles=(CONCEPT_SENSIBLE('ENSEMBLE'),), MATR_A =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_gene_r,matr_asse_pres_r ) ), MATR_B =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ), MATR_C =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ), @@ -19011,7 +19729,7 @@ MODE_ITER_SIMULT=OPER(nom="MODE_ITER_SIMULT",op= 45,sd_prod=mode_iter_simult_pr INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -19035,7 +19753,7 @@ def mode_stat_prod(MODE_STAT,FORCE_NODALE,PSEUDO_MODE,**args): 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", + fr="Calcul de modes statiques pour un déplacement, une force ou une accélération unitaire imposé", reentrant='n', UIinfo={"groupes":("Résolution",)}, MATR_RIGI =SIMP(statut='o',typ=matr_asse_depl_r ), @@ -19080,7 +19798,7 @@ MODE_STATIQUE=OPER(nom="MODE_STATIQUE",op= 93,sd_prod=mode_stat_prod, TITRE =SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -19100,6 +19818,7 @@ MODE_STATIQUE=OPER(nom="MODE_STATIQUE",op= 93,sd_prod=mode_stat_prod, # ====================================================================== MODI_BASE_MODALE=OPER(nom="MODI_BASE_MODALE",op= 149,sd_prod=mode_meca, reentrant='f', + fr="Définir la base modale d'une structure sous écoulement", UIinfo={"groupes":("Matrices/vecteurs",)}, # la commande modi_base _modale : reentrant = f ou o regles=(EXCLUS('AMOR_UNIF','AMOR_REDUIT', ),), @@ -19112,7 +19831,7 @@ MODI_BASE_MODALE=OPER(nom="MODI_BASE_MODALE",op= 149,sd_prod=mode_meca, INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -19132,7 +19851,8 @@ MODI_BASE_MODALE=OPER(nom="MODI_BASE_MODALE",op= 149,sd_prod=mode_meca, # ====================================================================== # RESPONSABLE G8BHHXD X.DESROCHES MODI_MAILLAGE=OPER(nom="MODI_MAILLAGE",op= 154,sd_prod=maillage_sdaster, - fr="Modification de la connectivité de groupes de mailles 2D ou 3D affectées à la modélisation de contact", + fr="Effectuer des modifications sur un maillage existant: réorienter des mailles servant," + +" à l'application d'une pression, à la modélisation du contact,...", reentrant='o', UIinfo={"groupes":("Maillage",)}, regles=(AU_MOINS_UN('ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', @@ -19171,7 +19891,7 @@ MODI_MAILLAGE=OPER(nom="MODI_MAILLAGE",op= 154,sd_prod=maillage_sdaster, DEFORME =FACT(statut='f', OPTION =SIMP(statut='o',typ='TXM',into=("TRAN","TRAN_APPUI") ), - DEPL =SIMP(statut='o',typ=cham_no_depl_r ), + DEPL =SIMP(statut='o',typ=cham_no_sdaster ), b_deform =BLOC(condition = "OPTION=='TRAN_APPUI'", GROUP_NO_APPUI = SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**' ), GROUP_NO_STRU = SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**' ),), @@ -19258,7 +19978,7 @@ MODI_MAILLAGE=OPER(nom="MODI_MAILLAGE",op= 154,sd_prod=maillage_sdaster, ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; -#& MODIF COMMANDE DATE 05/07/2004 AUTEUR GENIAUT S.GENIAUT +#& MODIF COMMANDE DATE 06/07/2005 AUTEUR GENIAUT S.GENIAUT # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG @@ -19283,10 +20003,11 @@ MODI_MODELE_XFEM=OPER(nom="MODI_MODELE_XFEM",op= 113,sd_prod=modele_sdaster,docu MODELE_IN =SIMP(statut='o',typ=modele_sdaster,min=01,max=01,), FISSURE =SIMP(statut='o',typ=fiss_xfem,min=01,max=01,), + CRITERE =SIMP(statut='f',typ='R',defaut=1.1E-4), INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,)), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -19305,13 +20026,13 @@ MODI_MODELE_XFEM=OPER(nom="MODI_MODELE_XFEM",op= 113,sd_prod=modele_sdaster,docu # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== MODI_OBSTACLE=OPER(nom="MODI_OBSTACLE",op=182,sd_prod=obstacle_sdaster, - fr=" ",reentrant='f', + fr="Calculer les obstacles dans les systèmes guidage-tube après usure",reentrant='f', UIinfo={"groupes":("Modélisation",)}, regles=(PRESENT_ABSENT('R_MOBILE','CRAYON'), PRESENT_PRESENT('V_USUR_TUBE','V_USUR_OBST'),), 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), + TABL_USURE =SIMP(statut='f',typ=table_sdaster), INST =SIMP(statut='f',typ='R'), OBSTACLE =SIMP(statut='f',typ=obstacle_sdaster), GUIDE =SIMP(statut='o',typ=obstacle_sdaster), @@ -19320,7 +20041,7 @@ MODI_OBSTACLE=OPER(nom="MODI_OBSTACLE",op=182,sd_prod=obstacle_sdaster, PERCEMENT =SIMP(statut='f',typ='R',defaut=1), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 12/09/2005 AUTEUR CIBHHLV L.VIVAN # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -19353,7 +20074,7 @@ def modi_repere_prod(RESULTAT,**args): MODI_REPERE=OPER(nom="MODI_REPERE",op=191,sd_prod=modi_repere_prod,reentrant='n', UIinfo={"groupes":("Résultats et champs",)}, - fr="Impression des resultats dans un repere cylindrique", + fr="Calcule des résultats dans le repère cylindrique", RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,mode_meca, evol_noli,mult_elas, evol_ther,base_modale,mode_flamb) ), @@ -19400,9 +20121,10 @@ MODI_REPERE=OPER(nom="MODI_REPERE",op=191,sd_prod=modi_repere_prod,reentrant='n' ORIGINE =SIMP(statut='f',typ='R',min=2,max=3), AXE_Z =SIMP(statut='f',typ='R',min=3,max=3), ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), ) ; -#& MODIF COMMANDE DATE 11/08/2004 AUTEUR A3BHHAE H.ANDRIAMBOLOLONA +#& MODIF COMMANDE DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -19427,10 +20149,12 @@ def norm_mode_prod(MODE,**args ): 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", + fr="Normer des modes propres en fonction d'un critère choisi par l'utilisateur", reentrant='f', UIinfo={"groupes":("Résolution",)}, - regles=(UN_PARMI('NORME','NOEUD','AVEC_CMP','SANS_CMP'),), + regles=(UN_PARMI('NORME','NOEUD','AVEC_CMP','SANS_CMP'), + CONCEPT_SENSIBLE('SEPARE'), + DERIVABLE('MODE'),), 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") ), @@ -19440,7 +20164,7 @@ NORM_MODE=OPER(nom="NORM_MODE",op= 37,sd_prod=norm_mode_prod, ), AVEC_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), SANS_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - MASS_INER =SIMP(statut='f',typ=tabl_mass_iner ), + MASS_INER =SIMP(statut='f',typ=table_sdaster), MODE_SIGNE =FACT(statut='f',fr="Imposer un signe sur une des composantes des modes", NOEUD =SIMP(statut='o',typ=no,fr="Noeud ou sera imposé le signe"), NOM_CMP =SIMP(statut='o',typ='TXM',fr="Composante du noeud ou sera imposé le signe" ), @@ -19498,7 +20222,7 @@ NUME_DDL=OPER(nom="NUME_DDL",op=11,sd_prod=nume_ddl_sdaster,reentrant='n', ), INFO =SIMP(statut='f',typ='I',into=(1,2)), ) ; -#& MODIF COMMANDE DATE 18/04/2005 AUTEUR NICOLAS O.NICOLAS +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -19517,7 +20241,7 @@ NUME_DDL=OPER(nom="NUME_DDL",op=11,sd_prod=nume_ddl_sdaster,reentrant='n', # 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", + fr="Etablissement de la numérotation des ddl d'un modèle établi en coordonnées généralisées", reentrant='n', UIinfo={"groupes":("Matrices/vecteurs",)}, regles=UN_PARMI('MODELE_GENE','BASE'), @@ -19532,7 +20256,7 @@ NUME_DDL_GENE=OPER(nom="NUME_DDL_GENE",op= 127,sd_prod=nume_ddl_gene, NB_VECT =SIMP(statut='f',typ='I',defaut= 9999 ), ), ) ; -#& MODIF COMMANDE DATE 09/05/2005 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG @@ -19552,13 +20276,13 @@ NUME_DDL_GENE=OPER(nom="NUME_DDL_GENE",op= 127,sd_prod=nume_ddl_gene, # ====================================================================== POST_CHAM_XFEM=OPER(nom="POST_CHAM_XFEM",op= 196,sd_prod=resultat_sdaster, reentrant='n',UIinfo={"groupes":("Post traitements",)}, - fr="expression des champs DEPL et SIEF_ELGA sur le maillage fissuré", + fr="Calcul des champs DEPL et SIEF_ELGA sur le maillage fissuré", MAILLAGE = SIMP(statut='o',typ=maillage_sdaster), MODELE = SIMP(statut='o',typ=modele_sdaster,), RESULTAT = SIMP(statut='o',typ=resultat_sdaster), NOM_CHAM = SIMP(statut='o',typ='TXM',into=("DEPL","SIEF_ELGA"),) ); -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -19576,12 +20300,12 @@ POST_CHAM_XFEM=OPER(nom="POST_CHAM_XFEM",op= 196,sd_prod=resultat_sdaster, # 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, +POST_DYNA_ALEA=OPER(nom="POST_DYNA_ALEA",op= 132,sd_prod=table_sdaster, fr="Traitements statistiques de résultats de type interspectre et impression sur fichiers", reentrant='n', UIinfo={"groupes":("Post traitements",)}, regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I','OPTION'),), - INTE_SPEC =SIMP(statut='o',typ=tabl_intsp ), + INTE_SPEC =SIMP(statut='o',typ=table_sdaster), 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='**' ), @@ -19629,7 +20353,7 @@ POST_DYNA_ALEA=OPER(nom="POST_DYNA_ALEA",op= 132,sd_prod=tabl_post_alea, TITRE =SIMP(statut='f',typ='TXM',max='**' ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -19647,8 +20371,8 @@ POST_DYNA_ALEA=OPER(nom="POST_DYNA_ALEA",op= 132,sd_prod=tabl_post_alea, # 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", +POST_DYNA_MODA_T=OPER(nom="POST_DYNA_MODA_T",op= 130,sd_prod=table_sdaster, + fr="Post-traiter les résultats en coordonnées généralisées produit par DYNA_TRAN_MODAL", reentrant='n', UIinfo={"groupes":("Post traitements",)}, regles=(UN_PARMI('CHOC','RELA_EFFO_DEPL', ),), @@ -19671,7 +20395,7 @@ POST_DYNA_MODA_T=OPER(nom="POST_DYNA_MODA_T",op= 130,sd_prod=tabl_post_dyna, INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), TITRE =SIMP(statut='f',typ='TXM',max='**' ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 16/05/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -19690,34 +20414,14 @@ POST_DYNA_MODA_T=OPER(nom="POST_DYNA_MODA_T",op= 130,sd_prod=tabl_post_dyna, # 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_sdaster non prevu") - -POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=post_elem_prod,reentrant='f', +POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n', UIinfo={"groupes":("Post traitements",)}, fr="Calcul de quantités globales (masse, inerties, énergie, ...) sur tout ou partie du modèle", regles=(UN_PARMI('MASS_INER', 'ENER_POT', 'ENER_CIN','TRAV_EXT', 'WEIBULL', 'RICE_TRACEY', 'CARA_GEOM','CHAR_LIMITE', 'CARA_POUTRE', 'INDIC_ENER', 'INDIC_SEUIL', - 'AIRE_INTERNE','ENER_ELAS','ENER_TOTALE'), + 'AIRE_INTERNE','ENER_ELAS','ENER_TOTALE','INTEGRALE'), ), MASS_INER = FACT(statut='f',max='**', @@ -19740,7 +20444,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=post_elem_prod,reentrant='f', 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) ), + CHAM_GD = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ), RESULTAT = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_noli,mult_elas, fourier_elas,dyna_trans) ), PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), @@ -19776,7 +20480,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=post_elem_prod,reentrant='f', 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) ), + CHAM_GD = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ), RESULTAT = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_ther,evol_noli,dyna_trans,mult_elas) ), PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), @@ -19814,7 +20518,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=post_elem_prod,reentrant='f', 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) ), + CHAM_GD = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ), RESULTAT = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_ther,evol_noli,dyna_trans) ), PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), @@ -19882,6 +20586,28 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=post_elem_prod,reentrant='f', LIST_INST = SIMP(statut='f',typ=listr8_sdaster), ), + INTEGRALE = FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), + TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), + MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + NOM_CHAM = SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()), + NOM_CMP = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'), + ), + b_integrale = BLOC(condition = "( INTEGRALE != None )", + fr="calcul de la moyenne d'une composante", + regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), + MODELE = SIMP(statut='f',typ=modele_sdaster), + RESULTAT = SIMP(statut='o',typ=(evol_noli,evol_ther,evol_elas) ), + PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), + CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), + TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), + INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST = SIMP(statut='f',typ=listr8_sdaster), + ), + WEIBULL = FACT(statut='f',max='**', regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), @@ -19904,7 +20630,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=post_elem_prod,reentrant='f', 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) ), + CHAM_GD = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ), RESULTAT = SIMP(statut='f',typ=(evol_noli) ), PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), @@ -19936,7 +20662,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=post_elem_prod,reentrant='f', 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) ), + CHAM_GD = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ), RESULTAT = SIMP(statut='f',typ=(evol_noli) ), PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), @@ -20037,7 +20763,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=post_elem_prod,reentrant='f', TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), GROUP_MA_INTE = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - CARA_GEOM = SIMP(statut='f',typ=tabl_cara_geom), + CARA_GEOM = SIMP(statut='o',typ=table_sdaster), RT = SIMP(statut='f',typ='R'), LAPL_PHI = SIMP(statut='f',typ=evol_ther), LAPL_PHI_Y = SIMP(statut='f',typ=evol_ther), @@ -20077,7 +20803,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=post_elem_prod,reentrant='f', INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -20095,16 +20821,16 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=post_elem_prod,reentrant='f', # 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,reentrant='n', +POST_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=table_sdaster,reentrant='n', UIinfo={"groupes":("Post traitements",)}, - fr="Calcul du dommage subi par une structure soumise à unesollicitation de type aléatoire", + fr="Calculer le dommage de fatigue subi par une structure soumise à une sollicitation de type aléatoire", regles=(ENSEMBLE('MOMENT_SPEC_0','MOMENT_SPEC_2'), PRESENT_PRESENT( 'MOMENT_SPEC_4','MOMENT_SPEC_0'), UN_PARMI('TABL_POST_ALEA','MOMENT_SPEC_0'), ), MOMENT_SPEC_0 =SIMP(statut='f',typ='R'), MOMENT_SPEC_2 =SIMP(statut='f',typ='R'), MOMENT_SPEC_4 =SIMP(statut='f',typ='R'), - TABL_POST_ALEA =SIMP(statut='f',typ=tabl_post_alea), + TABL_POST_ALEA =SIMP(statut='f',typ=table_sdaster), COMPTAGE =SIMP(statut='o',typ='TXM',into=("PIC","NIVEAU")), DUREE =SIMP(statut='f',typ='R',defaut= 1.), CORR_KE =SIMP(statut='f',typ='TXM',into=("RCCM",)), @@ -20112,7 +20838,7 @@ POST_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=tabl_post_f_alea,reentra MATER =SIMP(statut='o',typ=mater_sdaster), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS +#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -20130,9 +20856,9 @@ POST_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=tabl_post_f_alea,reentra # 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,reentrant='n', +POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=table_sdaster,reentrant='n', UIinfo={"groupes":("Post traitements",)}, - fr="Calcul du dommage subi par une structure soumise à une histoire de chargement", + fr="Calculer en un point, le dommage de fatigue subi par une structure soumise à une histoire de chargement", CHARGEMENT = SIMP(statut='o',typ='TXM',into=("UNIAXIAL","PERIODIQUE","QUELCONQUE")), @@ -20190,7 +20916,7 @@ POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=tabl_post_fatig,reentrant='n INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 01/02/2005 AUTEUR GALENNE E.GALENNE +#& MODIF COMMANDE DATE 09/05/2006 AUTEUR GALENNE E.GALENNE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -20209,9 +20935,10 @@ POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=tabl_post_fatig,reentrant='n # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== # RESPONSABLE GALENNE E.GALENNE - -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", +from Macro.post_k1_k2_k3_ops import post_k1_k2_k3_ops +POST_K1_K2_K3=MACRO(nom="POST_K1_K2_K3",op=post_k1_k2_k3_ops,sd_prod=table_sdaster, + fr="Calcul des facteurs d'intensité de contraintes en 2D et en 3D par extrapolation des sauts de déplacements" + +" sur les lèvres de la fissure", reentrant='n', UIinfo={"groupes":("Post traitements",)}, @@ -20224,6 +20951,8 @@ POST_K1_K2_K3=OPER(nom="POST_K1_K2_K3",op=188,sd_prod=tabl_post_k, FOND_FISS =SIMP(statut='f',typ=fond_fiss), b_fond_fiss =BLOC (condition="(FOND_FISS!= None)", MAILLAGE = SIMP(statut='o',typ=maillage_sdaster), + TYPE_MAILLAGE = SIMP(statut='f',typ='TXM',into=("LIBRE","REGLE"),defaut="REGLE"), + NB_NOEUD_COUPE= SIMP(statut='f',typ='I' ,defaut=5 ), NOEUD = SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), SANS_NOEUD = SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), @@ -20234,9 +20963,9 @@ POST_K1_K2_K3=OPER(nom="POST_K1_K2_K3",op=188,sd_prod=tabl_post_k, 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, + TABL_DEPL_SUP =SIMP(statut='f',typ=table_sdaster, fr="Table issue de post_releve_t sur les noeuds de la lèvre supérieure"), - TABL_DEPL_INF =SIMP(statut='f',typ=tabl_post_rele, + TABL_DEPL_INF =SIMP(statut='f',typ=table_sdaster, fr="Table issue de post_releve_t sur les noeuds de la lèvre inférieure"), ABSC_CURV_MAXI=SIMP(statut='f',typ='R', fr="distance maximum à partir du fond de fissure à utiliser pour le calcul"), @@ -20256,7 +20985,7 @@ POST_K1_K2_K3=OPER(nom="POST_K1_K2_K3",op=188,sd_prod=tabl_post_k, 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 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG @@ -20277,8 +21006,8 @@ POST_K1_K2_K3=OPER(nom="POST_K1_K2_K3",op=188,sd_prod=tabl_post_k, # # ====================================================================== # -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", +POST_K_BETA=OPER(nom="POST_K_BETA",op=198,sd_prod=table_sdaster, + fr="Calcul des facteurs d'intensité de contraintes par la méthode K_BETA", reentrant='n', UIinfo={"groupes":("Post traitements",)}, MAILLAGE = SIMP(statut='o',typ=maillage_sdaster), @@ -20292,14 +21021,14 @@ POST_K_BETA=OPER(nom="POST_K_BETA",op=198,sd_prod=tabl_post_beta, into=("CIRC","LONGI"),), ), K1D = FACT(statut='o',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)), + TABL_MECA_REV = SIMP(statut='o',typ=(table_sdaster)), + TABL_MECA_MDB = SIMP(statut='o',typ=(table_sdaster)), + TABL_THER = SIMP(statut='o',typ=(table_sdaster)), INTITULE = SIMP(statut='o',typ='TXM' ), ), TITRE = SIMP(statut='f',typ='TXM',max='**'), ); -#& MODIF COMMANDE DATE 09/05/2005 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG @@ -20319,11 +21048,11 @@ POST_K_BETA=OPER(nom="POST_K_BETA",op=198,sd_prod=tabl_post_beta, # ====================================================================== POST_MAIL_XFEM=OPER(nom="POST_MAIL_XFEM",op= 187,sd_prod=maillage_sdaster, reentrant='n',UIinfo={"groupes":("Maillage",)}, - fr="maillage fissuré pour le post-traitement des éléments XFEM", + fr="Crée un maillage se conformant à la fissure pour le post-traitement des éléments XFEM", MODELE = SIMP(statut='o',typ=modele_sdaster), TITRE = SIMP(statut='f',typ='TXM',max='**'), ); -#& MODIF COMMANDE DATE 21/03/2005 AUTEUR CIBHHLV L.VIVAN +#& MODIF COMMANDE DATE 13/03/2006 AUTEUR CIBHHLV L.VIVAN # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -20341,7 +21070,7 @@ POST_MAIL_XFEM=OPER(nom="POST_MAIL_XFEM",op= 187,sd_prod=maillage_sdaster, # 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, +POST_RCCM=OPER(nom="POST_RCCM",op= 165,sd_prod=table_sdaster, fr="Vérification des critères de niveau 0 et certains critères de niveau A du RCC-M-B3200 (Edition 1991)", reentrant='n', UIinfo={"groupes":("Post traitements",)}, @@ -20384,32 +21113,80 @@ POST_RCCM=OPER(nom="POST_RCCM",op= 165,sd_prod=tabl_post_rccm, TYPE_KE =SIMP(statut='f',typ='TXM',defaut="KE_MECA",into=("KE_MECA","KE_MIXTE"), fr="Ke meca seul ou partition mecanique + thermique" ), CHAR_MECA =FACT(statut='o',max='**',fr="Chargements mécaniques", + regles=(UN_PARMI('MX','MX_TUBU'),), NUME_CHAR =SIMP(statut='o',typ='I',fr="numéro du chargement" ), NOM_CHAR =SIMP(statut='f',typ='TXM',fr="nom du chargement" ), TYPE_CHAR =SIMP(statut='f',typ='TXM',fr="nature du chargement",into=( "SEISME","AUTRE"),defaut="AUTRE",), - FX =SIMP(statut='f',typ='R',fr="effort suivant x", ), - FY =SIMP(statut='f',typ='R',fr="effort suivant y", ), - FZ =SIMP(statut='f',typ='R',fr="effort suivant z", ), - MX =SIMP(statut='o',typ='R',fr="moment suivant x", ), - MY =SIMP(statut='o',typ='R',fr="moment suivant y", ), - MZ =SIMP(statut='o',typ='R',fr="moment suivant z", ), + MX =SIMP(statut='f',typ='R',fr="moment suivant x", ), + MX_TUBU =SIMP(statut='f',typ='R',fr="moment suivant x, tubulure", ), + b_1_tenseur =BLOC( condition = "MX != None", + FX =SIMP(statut='f',typ='R',fr="effort suivant x", ), + FY =SIMP(statut='f',typ='R',fr="effort suivant y", ), + FZ =SIMP(statut='f',typ='R',fr="effort suivant z", ), + MY =SIMP(statut='o',typ='R',fr="moment suivant y", ), + MZ =SIMP(statut='o',typ='R',fr="moment suivant z", ), + ), + b_2_tenseurs =BLOC( condition = "MX_TUBU != None", + FX_TUBU =SIMP(statut='f',typ='R',fr="effort suivant x, tubulure", ), + FY_TUBU =SIMP(statut='f',typ='R',fr="effort suivant y, tubulure", ), + FZ_TUBU =SIMP(statut='f',typ='R',fr="effort suivant z, tubulure", ), + MY_TUBU =SIMP(statut='o',typ='R',fr="moment suivant y, tubulure", ), + MZ_TUBU =SIMP(statut='o',typ='R',fr="moment suivant z, tubulure", ), + FX_CORP =SIMP(statut='f',typ='R',fr="effort suivant x, corps du piquage", ), + FY_CORP =SIMP(statut='f',typ='R',fr="effort suivant y, corps du piquage", ), + FZ_CORP =SIMP(statut='f',typ='R',fr="effort suivant z, corps du piquage", ), + MX_CORP =SIMP(statut='o',typ='R',fr="moment suivant x, corps du piquage", ), + MY_CORP =SIMP(statut='o',typ='R',fr="moment suivant y, corps du piquage", ), + MZ_CORP =SIMP(statut='o',typ='R',fr="moment suivant z, corps du piquage", ), + ), + ), RESU_MECA_UNIT =FACT(statut='o',fr="resultats mécaniques unitaires", - TABL_FX =SIMP(statut='f',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire FX"), - TABL_FY =SIMP(statut='f',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire FY"), - TABL_FZ =SIMP(statut='f',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire FZ"), - TABL_MX =SIMP(statut='o',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire MX"), - TABL_MY =SIMP(statut='o',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire MY"), - TABL_MZ =SIMP(statut='o',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire MZ"), + regles=(UN_PARMI('TABL_MX','TABL_MX_TUBU'),), + TABL_MX =SIMP(statut='f',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire MX"), + TABL_MX_TUBU =SIMP(statut='f',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire MX_TUBU"), + b_1_tenseur =BLOC( condition = "TABL_MX != None", + TABL_FX =SIMP(statut='f',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire FX"), + TABL_FY =SIMP(statut='f',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire FY"), + TABL_FZ =SIMP(statut='f',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire FZ"), + TABL_MY =SIMP(statut='o',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire MY"), + TABL_MZ =SIMP(statut='o',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire MZ"), + ), + b_2_tenseurs =BLOC( condition = "TABL_MX_TUBU != None", + TABL_FX_TUBU =SIMP(statut='f',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire FX_TUBU"), + TABL_FY_TUBU =SIMP(statut='f',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire FY_TUBU"), + TABL_FZ_TUBU =SIMP(statut='f',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire FZ_TUBU"), + TABL_MY_TUBU =SIMP(statut='o',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire MY_TUBU"), + TABL_MZ_TUBU =SIMP(statut='o',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire MZ_TUBU"), + TABL_FX_CORP =SIMP(statut='f',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire FX_CORP"), + TABL_FY_CORP =SIMP(statut='f',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire FY_CORP"), + TABL_FZ_CORP =SIMP(statut='f',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire FZ_CORP"), + TABL_MX_CORP =SIMP(statut='o',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire MX_CORP"), + TABL_MY_CORP =SIMP(statut='o',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire MY_CORP"), + TABL_MZ_CORP =SIMP(statut='o',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire MZ_CORP"), + ), TABL_PRES =SIMP(statut='o',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire de pression"), + fr="table relevé des contraintes pour chargement unitaire de pression"), ), + RESU_THER =FACT(statut='f',max='**',fr="resultats thermiques", NUME_RESU_THER =SIMP(statut='o',typ='I',fr="numéro de la table de résultat thermique" ), TABL_RESU_THER =SIMP(statut='o',typ=table_sdaster, @@ -20521,7 +21298,7 @@ POST_RCCM=OPER(nom="POST_RCCM",op= 165,sd_prod=tabl_post_rccm, ), ), ) ; -#& MODIF COMMANDE DATE 07/10/2004 AUTEUR GNICOLAS G.NICOLAS +#& MODIF COMMANDE DATE 16/05/2006 AUTEUR REZETTE C.REZETTE # ====================================================================== # CONFIGURATION MANAGEMENT OF EDF VERSION # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -20540,47 +21317,36 @@ POST_RCCM=OPER(nom="POST_RCCM",op= 165,sd_prod=tabl_post_rccm, # 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,reentrant='f', +POST_RELEVE_T=OPER(nom="POST_RELEVE_T",op=51,sd_prod=table_sdaster,reentrant='f', + fr="Extraire des valeurs de composantes de champs de grandeurs pour y effectuer des calculs (moyenne,invariants,..)" + +" ou pour les exprimer dans d'autres repères", UIinfo={"groupes":("Post traitements",)}, + ACTION =FACT(statut='o',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'), - ENSEMBLE('MOMENT','POINT'), - PRESENT_PRESENT('MOMENT','RESULTANTE'), - PRESENT_ABSENT('TOUT_CMP','TRAC_DIR','TRAC_NOR'), - EXCLUS('TRAC_DIR','TRAC_NOR'), - PRESENT_PRESENT('ORIGINE','AXE_Z'),), - INTITULE =SIMP(statut='o',typ='TXM'), - CHEMIN =SIMP(statut='f',typ=(courbe_sdaster,surface_sdaster) ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - 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,cham_no_facy_r)), + regles=(UN_PARMI('RESULTAT','CHAM_GD'),), + + OPERATION =SIMP(statut='o',typ='TXM',into=("EXTRACTION","MOYENNE","EXTREMA"),validators=NoRepeat(),max=2), + INTITULE =SIMP(statut='o',typ='TXM'), + + CHAM_GD =SIMP(statut='f',typ=(cham_no_sdaster, + cham_elem,),), RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_ther,evol_noli,dyna_trans, mode_meca,mode_flamb,mode_acou,base_modale,mode_stat, mult_elas,fourier_elas,dyna_harmo,acou_harmo)), + b_sensibilite =BLOC(condition="RESULTAT != None", fr="Définition des paramètres de sensibilité", ang="Definition of sensitivity parameters", + regles=(CONCEPT_SENSIBLE("SEPARE"), REUSE_SENSIBLE(), + DERIVABLE('RESULTAT'),), SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"),), + 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'), ), + regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','NUME_MODE','LIST_MODE', + 'INST','LIST_INST','FREQ','LIST_FREQ','NOEUD_CMP','NOM_CAS'), ), NOM_CHAM =SIMP(statut='o',typ='TXM' ), TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), @@ -20596,64 +21362,70 @@ POST_RELEVE_T=OPER(nom="POST_RELEVE_T",op=51,sd_prod=tabl_post_rele,reentrant='f 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", + b_extrema =BLOC(condition="OPERATION == 'EXTREMA'", + fr="recherche de MIN MAX", + regles=(EXCLUS('TOUT_CMP','NOM_CMP'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",)), + NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), + ), + + b_autre =BLOC(condition="OPERATION != 'EXTREMA'", + fr="extraction et moyenne", + regles=(AU_MOINS_UN('CHEMIN','GROUP_NO','NOEUD'), + EXCLUS('CHEMIN','GROUP_NO'), + EXCLUS('CHEMIN','NOEUD'), + PRESENT_ABSENT('CHEMIN','GROUP_MA','MAILLE'), + UN_PARMI('TOUT_CMP','NOM_CMP','INVARIANT','ELEM_PRINCIPAUX','RESULTANTE'), + PRESENT_PRESENT('TRAC_DIR','DIRECTION'), + ENSEMBLE('MOMENT','POINT'), + PRESENT_PRESENT('MOMENT','RESULTANTE'), + PRESENT_ABSENT('TOUT_CMP','TRAC_DIR','TRAC_NOR'), + EXCLUS('TRAC_DIR','TRAC_NOR'), + PRESENT_PRESENT('ORIGINE','AXE_Z'),), + + CHEMIN =SIMP(statut='f',typ=(courbe_sdaster,surface_sdaster) ), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + + TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",)), + NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), + INVARIANT =SIMP(statut='f',typ='TXM',into=("OUI",)), + ELEM_PRINCIPAUX =SIMP(statut='f',typ='TXM',into=("OUI",) ), + RESULTANTE =SIMP(statut='f',typ='TXM',max='**'), + + MOMENT =SIMP(statut='f',typ='TXM',max='**'), + POINT =SIMP(statut='f',typ='R',max='**'), + + REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL", into=("GLOBAL","LOCAL","POLAIRE","UTILISATEUR","CYLINDRIQUE"),), - ANGL_NAUT =SIMP(statut='f',typ='R',min=3,max=3), - ORIGINE =SIMP(statut='f',typ='R',min=3,max=3), - AXE_Z =SIMP(statut='f',typ='R',min=3,max=3), + 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_NOR =SIMP(statut='f',typ='TXM',into=("OUI",)), + TRAC_DIR =SIMP(statut='f',typ='TXM',into=("OUI",)), + DIRECTION =SIMP(statut='f',typ='R',max='**'), - VECT_Y =SIMP(statut='f',typ='R',max='**'), - MOYE_NOEUD =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - OPERATION =SIMP(statut='o',typ='TXM',into=("EXTRACTION","MOYENNE"),validators=NoRepeat(),max=2), + VECT_Y =SIMP(statut='f',typ='R',max='**'), + MOYE_NOEUD =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), + ), + + FORMAT_C =SIMP(statut='f',typ='TXM',defaut="MODULE",into=("MODULE","REEL","IMAG")), + ), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POST_SIMPLIFIE=OPER(nom="POST_SIMPLIFIE",op=185,sd_prod=tabl_post_simpli, - fr=" ",reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - MATER =SIMP(statut='o',typ=(mater_sdaster) ), - DEF_EQUI =FACT(statut='f', - METHODE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),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 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -20671,15 +21443,15 @@ POST_SIMPLIFIE=OPER(nom="POST_SIMPLIFIE",op=185,sd_prod=tabl_post_simpli, # 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,reentrant='f', +POST_USURE=OPER(nom="POST_USURE",op=153,sd_prod=table_sdaster,reentrant='f', UIinfo={"groupes":("Post traitements",)}, - fr="Calcul des volumes d'usure et des profondeurs d'usure", + fr="Calcul des volumes d'usure et des profondeurs d'usure d'après la puissance d'usure", regles=(UN_PARMI('TUBE_NEUF','RESU_GENE','PUIS_USURE'), PRESENT_PRESENT('RESU_GENE','NOEUD','LOI_USURE'), PRESENT_PRESENT('PUIS_USURE','LOI_USURE'),), TUBE_NEUF =SIMP(statut='f',typ='TXM',into=("OUI",) ), ETAT_INIT =FACT(statut='f', - TABL_USURE =SIMP(statut='f',typ=tabl_post_usur), + TABL_USURE =SIMP(statut='f',typ=table_sdaster), INST_INIT =SIMP(statut='f',typ='R'), ), RESU_GENE =SIMP(statut='f',typ=tran_gene), @@ -20754,7 +21526,7 @@ POST_USURE=OPER(nom="POST_USURE",op=153,sd_prod=tabl_post_usur,reentrant='f', USURE_OBST =SIMP(statut='f',typ='TXM',into=("OUI",)), ), b_tube_neuf =BLOC(condition = "TUBE_NEUF == 'OUI'", - TABL_USURE =SIMP(statut='o',typ=tabl_post_usur), + TABL_USURE =SIMP(statut='o',typ=table_sdaster), INST =SIMP(statut='f',typ='R'), ), CONTACT =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO", @@ -20772,7 +21544,7 @@ POST_USURE=OPER(nom="POST_USURE",op=153,sd_prod=tabl_post_usur,reentrant='f', INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), TITRE =SIMP(statut='f',typ='TXM',max='**' ), ) ; -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -20792,7 +21564,8 @@ POST_USURE=OPER(nom="POST_USURE",op=153,sd_prod=tabl_post_usur,reentrant='f', # ====================================================================== POST_ZAC=OPER(nom="POST_ZAC",op= 175,sd_prod=mult_elas,reentrant='n', UIinfo={"groupes":("Post traitements",)}, - fr="Donne l'état adapté ou accommodé d'une structure sous chargement cyclique élastique affine ou non", + fr="Déterminer l'état adapté ou accommodé par la méthode de Zarka-Casier d'une structure sous" + +" chargement cyclique élastique affine ou non", MODELE =SIMP(statut='o',typ=modele_sdaster), CHAM_MATER =SIMP(statut='o',typ=cham_mater), EXCIT =FACT(statut='o',max='**', @@ -20816,7 +21589,7 @@ POST_ZAC=OPER(nom="POST_ZAC",op= 175,sd_prod=mult_elas,reentrant='n', CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), ) ; -#& MODIF COMMANDE DATE 22/03/2005 AUTEUR D6BHHJP J.P.LEFEBVRE +#& MODIF COMMANDE DATE 16/01/2006 AUTEUR D6BHHJP J.P.LEFEBVRE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -20834,7 +21607,8 @@ POST_ZAC=OPER(nom="POST_ZAC",op= 175,sd_prod=mult_elas,reentrant='n', # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -POURSUITE=MACRO(nom="POURSUITE",op=ops.build_poursuite,repetable='n',fr="Poursuite d une étude", +POURSUITE=MACRO(nom="POURSUITE",op=ops.build_poursuite,repetable='n', + fr="Poursuite d'une étude à partir de la sauvegarde au format JEVEUX ou HDF de sa base globale", sd_prod = ops.POURSUITE, UIinfo={"groupes":("Gestion du travail",)}, op_init = ops.POURSUITE_context,fichier_ini = 1, @@ -20842,8 +21616,10 @@ POURSUITE=MACRO(nom="POURSUITE",op=ops.build_poursuite,repetable='n',fr="Poursui typ='TXM',defaut="NON",into=("OUI","NON",) ), PAR_LOT =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM', into=("OUI","NON"),defaut="OUI"), - BASE =FACT(fr="définition des parmètres associés aux bases JEVEUX", - statut='f',min=1,max=3, + IMPR_MACRO =SIMP(fr="affichage des sous-commandes produites par les macros dans le fichier mess", + statut='f',typ='TXM',into=("OUI","NON"),defaut="NON"), + BASE =FACT(fr="définition des paramètres associés aux bases JEVEUX", + statut='f',min=1,max=2, FICHIER =SIMP(fr="nom de la base",statut='o',typ='TXM'), TITRE =SIMP(statut='f',typ='TXM'), CAS =SIMP(statut='f',typ='TXM'), @@ -20860,6 +21636,9 @@ POURSUITE=MACRO(nom="POURSUITE",op=ops.build_poursuite,repetable='n',fr="Poursui TITRE =SIMP(statut='f',typ='TXM'), UNITE =SIMP(statut='f',typ='I'), ), + ERREUR =FACT(fr="comportement en cas d'erreur",statut='f',min=1,max=1, + ERREUR_F =SIMP(statut='f',typ='TXM',into=('ABORT','EXCEPTION'),defaut='ABORT'), + ), DEBUG =FACT(fr="option de déboggage reservée aux développeurs", statut='f',min=1,max=1, JXVERI =SIMP(fr="vérifie l intégrité de la segmentation mémoire", @@ -20867,7 +21646,7 @@ POURSUITE=MACRO(nom="POURSUITE",op=ops.build_poursuite,repetable='n',fr="Poursui JEVEUX =SIMP(fr="force les déchargement sur disque", statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'), ENVIMA =SIMP(fr="imprime les valeurs définies dans ENVIMA", - statut='f',typ='TXM',into=('TES',)), + statut='f',typ='TXM',into=('TEST',)), ), MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=1,max=1, GESTION =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'), @@ -20889,7 +21668,7 @@ POURSUITE=MACRO(nom="POURSUITE",op=ops.build_poursuite,repetable='n',fr="Poursui UNITE =SIMP(statut='f',typ='I',defaut=15), ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -20909,11 +21688,11 @@ POURSUITE=MACRO(nom="POURSUITE",op=ops.build_poursuite,repetable='n',fr="Poursui # ====================================================================== PRE_GIBI=PROC(nom="PRE_GIBI",op=49, UIinfo={"groupes":("Gestion du travail",)}, - fr="Conversion d un fichier de maillage GIBI", + fr="Conversion d'un fichier de maillage GIBI au format Aster", UNITE_GIBI =SIMP(statut='f',typ='I',defaut=19), UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=20), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -20934,11 +21713,11 @@ PRE_GIBI=PROC(nom="PRE_GIBI",op=49, PRE_GMSH=PROC(nom="PRE_GMSH",op=47, UIinfo={"groupes":("Gestion du travail",)}, - fr="Conversion d un fichier universel GMSH au format Aster", + fr="Conversion d'un fichier de maillage GMSH au format Aster", UNITE_GMSH =SIMP(statut='f',typ='I',defaut=19), UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=20), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -20958,12 +21737,12 @@ PRE_GMSH=PROC(nom="PRE_GMSH",op=47, # ====================================================================== PRE_IDEAS=PROC(nom="PRE_IDEAS",op=47, UIinfo={"groupes":("Gestion du travail",)}, - fr="Conversion d un fichier universel IDEAS-SUPERTAB au format Aster", + fr="Conversion d'un fichier universel IDEAS-SUPERTAB au format Aster", UNITE_IDEAS =SIMP(statut='f',typ='I',defaut=19), UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=20), CREA_GROUP_COUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -20981,22 +21760,16 @@ PRE_IDEAS=PROC(nom="PRE_IDEAS",op=47, # 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", +PROD_MATR_CHAM=OPER(nom="PROD_MATR_CHAM",op= 156,sd_prod=cham_no_sdaster, + fr="Effectuer le produit d'une matrice par un vecteur", reentrant='n', UIinfo={"groupes":("Résultats et champs",)}, MATR_ASSE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,matr_asse_pres_c ) ), - CHAM_NO =SIMP(statut='o',typ=(cham_no_depl_r,cham_no_depl_c,cham_no_temp_r,cham_no_pres_c ) ), + CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 21/03/2005 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -21020,36 +21793,33 @@ def proj_champ_prod(RESULTAT=None,CHAM_NO_REFE=None,**args ): if AsType(RESULTAT) == evol_elas : return evol_elas if AsType(RESULTAT) == evol_noli : return evol_noli if AsType(RESULTAT) == evol_char : return evol_char + if AsType(RESULTAT) == dyna_trans : return dyna_trans if AsType(RESULTAT) == mode_meca : return mode_meca if AsType(RESULTAT) == mode_stat_depl : return mode_stat_depl if AsType(RESULTAT) == base_modale : return base_modale - 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 + if CHAM_NO_REFE != None : return cham_no_sdaster raise AsException("type de concept resultat non prevu") PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,reentrant='f', UIinfo={"groupes":("Résultats et champs",)}, - fr="Projection d'un champ aux noeuds sur les noeuds d'un autre maillage", + fr="Projeter les champs aux noeuds d'une SD résultat de type evol_xxx sur un autre maillage", # METHODE =SIMP(statut='f',typ='TXM',defaut="ELEM", into=("NUAGE_DEG_0","NUAGE_DEG_1","ELEM",) ), b_nuage =BLOC(condition="(METHODE=='NUAGE_DEG_1') or (METHODE=='NUAGE_DEG_0')", fr="Lissage d'un nuage de points", - CHAM_NO =SIMP(statut='o',typ=(cham_no_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)), + CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster), + CHAM_NO_REFE =SIMP(statut='o',typ=cham_no_sdaster), ), b_elem =BLOC(condition="METHODE=='ELEM'", fr="Utilisation des fonctions de forme du maillage initial", regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','LIST_INST','LIST_FREQ','LIST_ORDRE'), - EXCLUS('TOUT_CHAM','NOM_CHAM',), ), - RESULTAT =SIMP(statut='o',typ=(evol_ther,evol_elas,evol_noli,evol_char,mode_meca,mode_stat_depl,base_modale) ), + EXCLUS('TOUT_CHAM','NOM_CHAM',), + CONCEPT_SENSIBLE('SEPARE'), + REUSE_SENSIBLE(), + DERIVABLE('RESULTAT'),), + RESULTAT =SIMP(statut='o',typ=(evol_ther,evol_elas,evol_noli,dyna_trans,evol_char, + mode_meca,mode_stat_depl,base_modale) ), SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', fr="Liste des paramètres de sensibilité.", ang="List of sensitivity parameters",), @@ -21059,6 +21829,11 @@ PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,reentrant='f', TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",) ), NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), +# POUR IMPOSER LA NUMEROTATION DES DDLS : +# ------------------------------------------------------------------ + NUME_DDL =SIMP(statut='f',typ=(nume_ddl_sdaster) ), + + TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ), LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), @@ -21068,15 +21843,19 @@ PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,reentrant='f', LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ), NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), + + CAS_FIGURE =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",) ), DISTANCE_MAX =SIMP(statut='f',typ='R', fr="Distance maximale entre le noeud et l'élément le plus proche, lorsque le noeud n'est dans aucun élément."), + ALARME =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + TYPE_CHAM =SIMP(statut='f',typ='TXM',into=("NOEU",), fr="Pour forcer le type des champs projetés. NOEU -> cham_no"), - b_modele_gene =BLOC(condition = "AsType(RESULTAT) == mode_meca", - RIGI_MECA =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_gene_r,matr_asse_pres_r ) ), - MASS_MECA =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ), - AMOR_MECA =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ), - ), + + PROL_ZERO =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON", + fr="Si le résultat est un mode_xxx ou une base_xxx, on peut prolonger" + +" les champs par zéro la ou la projection ne donne pas de valeurs."), + ), VIS_A_VIS =FACT(statut='f',max='**', @@ -21092,12 +21871,13 @@ PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,reentrant='f', MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + CAS_FIGURE =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",) ), ), TITRE =SIMP(statut='f',typ='TXM',max='**' ), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -21123,7 +21903,7 @@ def matr_asse_gene_prod(MATR_ASSE,MATR_ASSE_GENE,**args): 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)", + fr="Projection d'une matrice assemblée sur une base (modale ou de RITZ)", reentrant='n', UIinfo={"groupes":("Matrices/vecteurs",)}, regles=(UN_PARMI('MATR_ASSE','MATR_ASSE_GENE'),), @@ -21133,7 +21913,7 @@ PROJ_MATR_BASE=OPER(nom="PROJ_MATR_BASE",op= 71,sd_prod=matr_asse_gene_prod, MATR_ASSE_GENE =SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_gene_c) ), ) ; -#& MODIF COMMANDE DATE 15/02/2005 AUTEUR NICOLAS O.NICOLAS +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -21164,7 +21944,7 @@ PROJ_MESU_MODAL=OPER(nom="PROJ_MESU_MODAL",op= 193, sd_prod=proj_mesu_modal_prod, reentrant='n', UIinfo={"groupes":("Résultats et champs",)}, - fr="Calcul de coordonnees generalisees de mesure experimentale relatives a une base de projection", + fr="Calcul des coordonnees généralisees de mesure experimentale relatives a une base de projection", MODELE_CALCUL =FACT(statut='o', MODELE =SIMP(statut='o',typ=(modele_sdaster) ), @@ -21194,7 +21974,7 @@ PROJ_MESU_MODAL=OPER(nom="PROJ_MESU_MODAL",op= 193, ), ); -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -21212,15 +21992,15 @@ PROJ_MESU_MODAL=OPER(nom="PROJ_MESU_MODAL",op= 193, # 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,reentrant='n', +PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=table_sdaster,reentrant='n', UIinfo={"groupes":("Matrices/vecteurs",)}, - fr="Projection d un ou plusieurs spectres de turbulenc sur un ensemble de bases modales ", + fr="Projecter un ou plusieurs spectres de turbulence sur une (ou plusieurs) base(s) modale(s) ", regles=(UN_PARMI('BASE_ELAS_FLUI','MODE_MECA','CHAM_NO'), ENSEMBLE('FREQ_INIT','FREQ_FIN','NB_POIN'),), SPEC_TURB =SIMP(statut='o',typ=spectre_sdaster,validators=NoRepeat(),max='**' ), BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu_sdaster ), MODE_MECA =SIMP(statut='f',typ=mode_meca ), - CHAM_NO =SIMP(statut='f',typ=cham_no_depl_r ), + CHAM_NO =SIMP(statut='f',typ=cham_no_sdaster), FREQ_INIT =SIMP(statut='f',typ='R',val_min=0.E+0 ), FREQ_FIN =SIMP(statut='f',typ='R',val_min=0.E+0 ), NB_POIN =SIMP(statut='f',typ='I' ), @@ -21233,7 +22013,7 @@ PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=tabl_intsp,reentrant='n ORIG_AXE =SIMP(statut='f',typ='R',min=3,max=3 ), TITRE =SIMP(statut='f',typ='TXM',max='**' ), ) ; -#& MODIF COMMANDE DATE 22/02/2005 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -21251,25 +22031,56 @@ PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=tabl_intsp,reentrant='n # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -def vect_asse_gene_prod(VECT_ASSE,VECT_ASSE_GENE,**args): - if AsType(VECT_ASSE) == cham_no_depl_r : return vect_asse_gene_r - if AsType(VECT_ASSE_GENE) == vect_asse_gene_r : return vect_asse_gene_r - if AsType(VECT_ASSE) == cham_no_depl_c : return vect_asse_gene_c - if AsType(VECT_ASSE_GENE) == vect_asse_gene_c : return vect_asse_gene_c - raise AsException("type de concept resultat non prevu") -PROJ_VECT_BASE=OPER(nom="PROJ_VECT_BASE",op= 72,sd_prod=vect_asse_gene_prod, - fr="Projection d un vecteur assemblé sur une base (modale ou de RITZ)", +PROJ_VECT_BASE=OPER(nom="PROJ_VECT_BASE",op= 72,sd_prod=vect_asse_gene, + fr="Projection d'un vecteur assemblé sur une base (modale ou de RITZ)", reentrant='n', UIinfo={"groupes":("Matrices/vecteurs",)}, regles=(UN_PARMI('VECT_ASSE','VECT_ASSE_GENE'),), BASE =SIMP(statut='o',typ=(mode_meca,base_modale,mode_gene,mode_stat ) ), NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), TYPE_VECT =SIMP(statut='f',typ='TXM',defaut="FORC"), - VECT_ASSE =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_depl_c) ), - VECT_ASSE_GENE =SIMP(statut='f',typ=(vect_asse_gene_r,vect_asse_gene_c) ), + VECT_ASSE =SIMP(statut='f',typ=cham_no_sdaster), + VECT_ASSE_GENE =SIMP(statut='f',typ=vect_asse_gene ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 09/05/2006 AUTEUR MASSIN P.MASSIN +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +PROPA_XFEM=OPER(nom="PROPA_XFEM",op=10,sd_prod=fiss_xfem,reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + fr="Propagation de fissure avec X-FEM", + + MODELE =SIMP(statut='o',typ=modele_sdaster), + + TABLE =SIMP(statut='o',typ=table_sdaster), + + LOI_PROPA =FACT(statut='o',max=01, + LOI =SIMP(statut='o',typ='TXM',into=("PARIS",),defaut="PARIS"), + b_paris =BLOC( condition = "LOI=='PARIS'", + C =SIMP(statut='o',typ='R',), + M =SIMP(statut='o',typ='R',),), + ), + GROUP_MA_ENRI =SIMP(statut='o',typ=grma,max=01), + + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -21287,8 +22098,8 @@ PROJ_VECT_BASE=OPER(nom="PROJ_VECT_BASE",op= 72,sd_prod=vect_asse_gene_prod, # 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=" ",reentrant='n', +RECA_WEIBULL=OPER(nom="RECA_WEIBULL",op= 197,sd_prod=table_sdaster, + fr="Recaler les paramètres du modèle de WEIBULL sur des données expérimentales",reentrant='n', UIinfo={"groupes":("Post traitements",)}, LIST_PARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=2,into=("SIGM_REFE","M",) ), RESU =FACT(statut='o',max='**', @@ -21315,7 +22126,7 @@ RECA_WEIBULL=OPER(nom="RECA_WEIBULL",op= 197,sd_prod=tabl_reca_weib, ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ), ) ; -#& MODIF COMMANDE DATE 16/06/2004 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 16/05/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -21337,7 +22148,8 @@ RECA_WEIBULL=OPER(nom="RECA_WEIBULL",op= 197,sd_prod=tabl_reca_weib, 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 + if AsType(RESULTAT) == dyna_harmo : return fonction_c + if AsType(RESU_GENE) == harm_gene : return fonction_c # On ne sait pas interpreter les deux conditions suivantes if TABLE != None : if TYPE_RESU != None : @@ -21353,34 +22165,48 @@ def recu_fonction_prod(RESULTAT=None,TABLE=None,OBSTACLE=None, 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", - reentrant='n', + fr="Extraire sous forme d'une fonction, l'évolution d'une grandeur en fonction d'une autre", + reentrant='f', UIinfo={"groupes":("Fonction",)}, regles=(UN_PARMI('CHAM_GD','RESULTAT','RESU_GENE','TABLE','BASE_ELAS_FLUI','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_GD =SIMP(statut='f',typ=(cham_no_sdaster, + cham_elem,),), RESULTAT =SIMP(statut='f',typ=(evol_elas,dyna_trans,evol_noli,evol_ther,dyna_harmo ) ), - RESU_GENE =SIMP(statut='f',typ=tran_gene), -# concept table à créer + RESU_GENE =SIMP(statut='f',typ=(tran_gene, mode_gene, harm_gene)), TABLE =SIMP(statut='f',typ=table_sdaster), BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu_sdaster), OBSTACLE =SIMP(statut='f',typ=obstacle_sdaster), - 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_sdaster,formule)), - 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_sdaster ), - INTITULE =SIMP(statut='f',typ='TXM' ), +# ======= SENSIBILITE ================================================= + b_sensibilite =BLOC(condition="RESULTAT != None", + fr="Définition des paramètres de sensibilité", + ang="Definition of sensitivity parameters", + regles=(CONCEPT_SENSIBLE('SEPARE'), REUSE_SENSIBLE(), + DERIVABLE('RESULTAT'),), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des paramètres de sensibilité.", + ang="List of sensitivity parameters"),), +# ======= ACCES A LA SD RESULTAT ================================================= + b_acces = BLOC ( condition = "(RESULTAT != None) or (RESU_GENE != None)", + fr="acces a une SD résultat", +# on ne peut pas mettre de regles, le défaut TOUT_ORDRE est pris en compte dans le fortran + TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster ), + TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), + FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), + NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + b_prec = BLOC ( condition = "(INST != None) or (LIST_INST != None) or (FREQ != None) or (LIST_FREQ != None)", + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + INTERP_NUME =SIMP(statut='f',typ='TXM',into=("NON","LIN") ), + ), ), +# ======= BASE_ELAS_FLUI ================================================= b_base_elas_flui = BLOC ( condition = "BASE_ELAS_FLUI != None", fr="Récupération de la fonction à partir d un concept melasflu", regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE'),), @@ -21390,9 +22216,12 @@ RECU_FONCTION=OPER(nom="RECU_FONCTION",op=90,sd_prod=recu_fonction_prod, 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'),), + +# ======= TABLE ================================================= + b_table = BLOC ( condition = "TABLE != None", + fr="Récupération de la fonction à partir d un concept table", + regles=(UN_PARMI('PARA_X','NOM_PARA_TABL'), + PRESENT_PRESENT('PARA_X','PARA_Y'),), PARA_X =SIMP(statut='f',typ='TXM', fr="1ère colonne de la table qui définit la fonction à récupérer", ), PARA_Y =SIMP(statut='f',typ='TXM', @@ -21419,118 +22248,115 @@ RECU_FONCTION=OPER(nom="RECU_FONCTION",op=90,sd_prod=recu_fonction_prod, PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), ), ), -# RESULTAT + +# ======= 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'),), + regles=(UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),), NOM_CHAM =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()), NOM_PARA_RESU =SIMP(statut='f',typ='TXM' ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster ), - TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), - b_prec = BLOC ( condition = "(INST != None) or (LIST_INST != None) or (FREQ != None) or (LIST_FREQ != None)", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - INTERP_NUME =SIMP(statut='f',typ='TXM',into=("NON","LIN") ), - ), - 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',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster ), - TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), - b_prec = BLOC ( condition = "(INST != None) or (LIST_INST != None) or (FREQ != None) or (LIST_FREQ != None)", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - INTERP_NUME =SIMP(statut='f',typ='TXM',into=("NON","LIN") ), - ), - 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' ), - + b_cham = BLOC ( condition = "NOM_CHAM != None", + regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD'), + PRESENT_ABSENT('POINT','NOEUD','GROUP_NO'), + PRESENT_ABSENT('SOUS_POINT','NOEUD','GROUP_NO'), + EXCLUS('GROUP_MA','MAILLE'), + EXCLUS('GROUP_NO','NOEUD'),), + NOM_CMP =SIMP(statut='o',typ='TXM' ), MAILLE =SIMP(statut='f',typ=ma), GROUP_MA =SIMP(statut='f',typ=grma), NOEUD =SIMP(statut='f',typ=no), GROUP_NO =SIMP(statut='f',typ=grno), POINT =SIMP(statut='f',typ='I' ), SOUS_POINT =SIMP(statut='f',typ='I' ), + ), + ), + +# ======= RESU_GENE ================================================= + b_tran_gene = BLOC ( condition = "AsType(RESU_GENE) == tran_gene", + fr="Récupération d'une fonction à partir d un concept TRAN_GENE", + regles=(UN_PARMI('NOM_CHAM','NOEUD_CHOC','GROUP_NO_CHOC'),), + NOM_CHAM =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE","PTEM") ), NOEUD_CHOC =SIMP(statut='f',typ=no), GROUP_NO_CHOC =SIMP(statut='f',typ=grno), + b_cham = BLOC ( condition = "(NOM_CHAM=='DEPL') or (NOM_CHAM=='VITE') or (NOM_CHAM=='ACCE')", + regles=(UN_PARMI('GROUP_NO','NOEUD'), + EXCLUS('MULT_APPUI','CORR_STAT'),), + NOM_CMP =SIMP(statut='o',typ='TXM' ), + NOEUD =SIMP(statut='f',typ=no), + GROUP_NO =SIMP(statut='f',typ=grno), + MULT_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), + CORR_STAT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + ACCE_MONO_APPUI =SIMP(statut='f',typ=(fonction_sdaster,formule)), + ), + b_choc = BLOC ( condition = "(NOEUD_CHOC != None) or (GROUP_NO_CHOC != None)", + regles=(PRESENT_PRESENT('SOUS_STRUC','INTITULE'),), + PARA_X =SIMP(statut='o',typ='TXM', + into=("INST","FN","FT1","FT2","VN","VT1","VT2","DXLOC","DYLOC","DZLOC") ), + PARA_Y =SIMP(statut='o',typ='TXM', + into=("INST","FN","FT1","FT2","VN","VT1","VT2","DXLOC","DYLOC","DZLOC") ), + LIST_PARA =SIMP(statut='f',typ=listr8_sdaster ), + INTITULE =SIMP(statut='f',typ='TXM' ), + SOUS_STRUC =SIMP(statut='f',typ='TXM' ), + ), + ), + b_harm_gene = BLOC ( condition = "AsType(RESU_GENE)==harm_gene", + fr="Récupération d'une fonction à partir d un concept HARM_GENE", + regles=(UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),), + NOM_CHAM =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()), + NOM_PARA_RESU =SIMP(statut='f',typ='TXM' ), + b_cham = BLOC ( condition = "NOM_CHAM != None", + regles=(UN_PARMI('NUME_CMP_GENE','NOM_CMP'),), + NUME_CMP_GENE =SIMP(statut='f',typ='I' ), + NOM_CMP =SIMP(statut='f',typ='TXM' ), + b_cmp = BLOC ( condition = "NOM_CMP != None", + regles=(UN_PARMI('NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no), + GROUP_NO =SIMP(statut='f',typ=grno), + ), + ), + ), + b_mode_gene = BLOC ( condition = "AsType(RESU_GENE)==mode_gene", + fr="Récupération d'une fonction à partir d un concept MODE_GENE", + regles=(UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),), + NOM_CHAM =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()), + NOM_PARA_RESU =SIMP(statut='f',typ='TXM' ), + b_cham = BLOC ( condition = "NOM_CHAM != None", + regles=(UN_PARMI('NUME_CMP_GENE','NOM_CMP'),), + NUME_CMP_GENE =SIMP(statut='f',typ='I' ), + NOM_CMP =SIMP(statut='f',typ='TXM' ), + b_cmp = BLOC ( condition = "NOM_CMP != None", + regles=(UN_PARMI('NOEUD','GROUP_NO'), + UN_PARMI('SQUELETTE','SOUS_STRUC'),), + NOEUD =SIMP(statut='f',typ=no), + GROUP_NO =SIMP(statut='f',typ=grno), + SQUELETTE =SIMP(statut='f',typ=squelette ), + SOUS_STRUC =SIMP(statut='f',typ='TXM' ), + ), ), ), -# CHAM_GD - b_cham_gd = BLOC ( condition = "(CHAM_GD != None)", fr="Opérandes en cas de CHAM_GD", - - regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD','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' ), +# ======= CHAM_GD ================================================= + b_cham_gd = BLOC ( condition = "(CHAM_GD != None)", fr="Opérandes en cas de CHAM_GD", + regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD'), + PRESENT_ABSENT('POINT','NOEUD','GROUP_NO'), + PRESENT_ABSENT('SOUS_POINT','NOEUD','GROUP_NO'), + EXCLUS('GROUP_MA','MAILLE'), + EXCLUS('GROUP_NO','NOEUD'),), + NOM_CMP =SIMP(statut='o',typ='TXM' ), MAILLE =SIMP(statut='f',typ=ma), GROUP_MA =SIMP(statut='f',typ=grma), NOEUD =SIMP(statut='f',typ=no), GROUP_NO =SIMP(statut='f',typ=grno), POINT =SIMP(statut='f',typ='I' ), SOUS_POINT =SIMP(statut='f',typ='I' ), - NOEUD_CHOC =SIMP(statut='f',typ=no), - GROUP_NO_CHOC =SIMP(statut='f',typ=grno), ), + +# ======= OBSTACLE ================================================= b_obstacle = BLOC ( condition = "OBSTACLE != None", fr="Choix du repère", REPERE =SIMP(statut='f',typ='TXM',into=("POLAIRE","GLOBAL") ), ), -### + +# ======= SURCHARGE DES ATTRIBUTS ================================================= NOM_PARA =SIMP(statut='f',typ='TXM', into=C_PARA_FONCTION() ), NOM_RESU =SIMP(statut='f',typ='TXM' ), INTERPOL =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ), @@ -21540,7 +22366,7 @@ RECU_FONCTION=OPER(nom="RECU_FONCTION",op=90,sd_prod=recu_fonction_prod, TITRE =SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), ) ; -#& MODIF COMMANDE DATE 22/02/2005 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -21558,9 +22384,10 @@ RECU_FONCTION=OPER(nom="RECU_FONCTION",op=90,sd_prod=recu_fonction_prod, # 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_r,reentrant='n', +RECU_GENE=OPER(nom="RECU_GENE",op= 76,sd_prod=vect_asse_gene,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", + fr="Extraire d'un champ de grandeur (déplacements, vitesses ou accélérations) à partir de résultats" + +" en coordonnées généralisées", RESU_GENE =SIMP(statut='o',typ=tran_gene ), INST =SIMP(statut='o',typ='R' ), NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE") ), @@ -21568,7 +22395,7 @@ RECU_GENE=OPER(nom="RECU_GENE",op= 76,sd_prod=vect_asse_gene_r,reentrant='n', CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF" ,into=("ABSOLU","RELATIF") ), PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -21588,15 +22415,16 @@ RECU_GENE=OPER(nom="RECU_GENE",op= 76,sd_prod=vect_asse_gene_r,reentrant='n', # ====================================================================== # RESPONSABLE VABHHTS J.PELLET RECU_TABLE=OPER(nom="RECU_TABLE",op= 174,sd_prod=table_sdaster, - fr=" ",reentrant='n', - UIinfo={"groupes":("Résultats et champs",)}, + fr="Récupérer dans une table les valeurs d'un paramètre d'une SD Résultat ou d'extraire une table contenue" + +" dans une autre SD pour celles qui le permettent", + UIinfo={"groupes":("Résultats et champs",)},reentrant='n', CO =SIMP(statut='o',typ=assd), regles=(UN_PARMI('NOM_TABLE','NOM_PARA')), NOM_TABLE =SIMP(statut='f',typ='TXM' ), NOM_PARA =SIMP(statut='f',typ='TXM',max='**'), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -21614,26 +22442,21 @@ RECU_TABLE=OPER(nom="RECU_TABLE",op= 174,sd_prod=table_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -def 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é", +RESO_GRAD=OPER(nom="RESO_GRAD",op= 84,sd_prod=cham_no_sdaster, + fr="Résolution d'un système linéaire par la méthode du gradient conjugué préconditionné", reentrant='f', UIinfo={"groupes":("Résolution",)}, MATR_ASSE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ), - CHAM_NO =SIMP(statut='o',typ=(cham_no_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 ) ), + CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster), + CHAM_CINE =SIMP(statut='f',typ=cham_no_sdaster), MATR_FACT =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ), NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), REPRISE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), RESI_RELA =SIMP(statut='f',typ='R',defaut= 1E-6 ), INFO =SIMP(statut='f',typ='I',into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 01/04/2005 AUTEUR VABHHTS J.PELLET +#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -21652,29 +22475,20 @@ RESO_GRAD=OPER(nom="RESO_GRAD",op= 84,sd_prod=reso_grad_prod, # 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é", +RESO_LDLT=OPER(nom="RESO_LDLT",op=15,sd_prod=cham_no_sdaster,reentrant='f', + fr="Résoudre par méthode directe un système d'équations linéaires préalablement factorisé par FACT_LDLT", UIinfo={"groupes":("Résolution",)}, MATR_FACT =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r, matr_asse_temp_c,matr_asse_pres_r,matr_asse_pres_c) ), - CHAM_NO =SIMP(statut='o',typ=(cham_no_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) ), + CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster), + CHAM_CINE =SIMP(statut='f',typ=cham_no_sdaster), # RESI_RELA : précision utilisée si SOLVEUR=MUMPS RESI_RELA =SIMP(statut='f',typ='R',defaut=1.e-6), TITRE =SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS +#& MODIF COMMANDE DATE 20/03/2006 AUTEUR ACBHHCD G.DEVESA # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -21693,34 +22507,47 @@ RESO_LDLT=OPER(nom="RESO_LDLT",op=15,sd_prod=reso_ldlt_prod,reentrant='f', # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== # RESPONSABLE BOYERE E.BOYERE -def rest_base_phys_prod(RESU_GENE,RESULTAT,**args ): +def rest_base_phys_prod(RESU_GENE,RESU_PHYS,RESULTAT,**args ): if AsType(RESU_GENE) == tran_gene : return dyna_trans if AsType(RESU_GENE) == mode_gene : return mode_meca if AsType(RESU_GENE) == mode_cycl : return mode_meca if AsType(RESU_GENE) == harm_gene : return dyna_harmo - if AsType(RESULTAT) == mode_meca : return mode_meca + if AsType(RESU_PHYS) == evol_noli : return dyna_trans + if AsType(RESULTAT) == evol_elas : return evol_elas + if AsType(RESULTAT) == evol_noli : return evol_noli + if AsType(RESULTAT) == evol_char : return evol_char + if AsType(RESULTAT) == dyna_trans : return dyna_trans + if AsType(RESULTAT) == mode_meca : return mode_meca + if AsType(RESULTAT) == mode_stat_depl : return mode_stat_depl + if AsType(RESULTAT) == base_modale : return base_modale raise AsException("type de concept resultat non prevu") REST_BASE_PHYS=OPER(nom="REST_BASE_PHYS",op= 75,sd_prod=rest_base_phys_prod, fr="Restituer dans la base physique des résultats en coordonnées généralisées", reentrant='n', UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(UN_PARMI('RESU_GENE','RESULTAT'), + regles=(UN_PARMI('RESU_GENE','RESU_PHYS','RESULTAT'), EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','TOUT_INST'), EXCLUS('TOUT_INST','NUME_ORDRE','INST','LIST_INST','TOUT_ORDRE'), # Doc U à revoir EXCLUS('MULT_APPUI','CORR_STAT'), EXCLUS('MULT_APPUI','NOEUD','GROUP_NO'), EXCLUS('CORR_STAT','NOEUD','GROUP_NO'), - EXCLUS('NOEUD','GROUP_NO'), + EXCLUS('NOEUD','GROUP_NO'), + PRESENT_PRESENT('RESU_PHYS','BASE_MODALE'), 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 ), + RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,dyna_trans,evol_char, + mode_meca,mode_stat_depl,base_modale) ), + RESU_GENE =SIMP(statut='f',typ=(tran_gene,mode_gene,mode_cycl,harm_gene) ), + RESU_PHYS =SIMP(statut='f',typ=evol_noli ), + BASE_MODALE =SIMP(statut='f',typ=(base_modale,mode_meca) ), + NUME_DDL =SIMP(statut='f',typ=nume_ddl_sdaster ), MODE_MECA =SIMP(statut='f',typ=mode_meca ), TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ), + NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ), TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ), INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), @@ -21741,12 +22568,19 @@ REST_BASE_PHYS=OPER(nom="REST_BASE_PHYS",op= 75,sd_prod=rest_base_phys_prod, ACCE_MONO_APPUI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), DIRECTION =SIMP(statut='f',typ='R',min=3,max=3 ), + CYCLIQUE =FACT(statut='f',max='**', + NB_SECTEUR =SIMP(statut='f',typ='I',validators=NoRepeat(),max=1 ), + NUME_DIAMETRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max=1 ), + RESULTAT2 =SIMP(statut='f',typ=(evol_elas,evol_noli,dyna_trans,evol_char, + mode_meca,mode_stat_depl,base_modale) ), + ), + SQUELETTE =SIMP(statut='f',typ=squelette ), SOUS_STRUC =SIMP(statut='f',typ='TXM' ), SECTEUR =SIMP(statut='f',typ='I',defaut= 1 ), TITRE =SIMP(statut='f',typ='TXM',max='**' ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -21764,15 +22598,16 @@ REST_BASE_PHYS=OPER(nom="REST_BASE_PHYS",op= 75,sd_prod=rest_base_phys_prod, # 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, +REST_SPEC_PHYS=OPER(nom="REST_SPEC_PHYS",op= 148,sd_prod=table_sdaster, reentrant='n', + fr="Calculer la réponse d'une structure dans la base physique", UIinfo={"groupes":("Matrices/vecteurs",)}, regles=(AU_MOINS_UN('BASE_ELAS_FLUI','MODE_MECA'),), BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu_sdaster ), MODE_MECA =SIMP(statut='f',typ=mode_meca ), BANDE =SIMP(statut='f',typ='R',min=2,validators=NoRepeat(),max=2 ), NUME_ORDRE =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**' ), - INTE_SPEC_GENE =SIMP(statut='o',typ=tabl_intsp ), + INTE_SPEC_GENE =SIMP(statut='o',typ=table_sdaster), NOEUD =SIMP(statut='o',typ=no ,max='**'), MAILLE =SIMP(statut='f',typ=ma ,max='**'), NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), @@ -21789,7 +22624,7 @@ REST_SPEC_PHYS=OPER(nom="REST_SPEC_PHYS",op= 148,sd_prod=tabl_intsp, into=("DIAG_TOUT","DIAG_DIAG","TOUT_TOUT","TOUT_DIAG") ), TITRE =SIMP(statut='f',typ='TXM',max='**' ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 15/05/2006 AUTEUR ASSIRE A.ASSIRE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG @@ -21814,12 +22649,16 @@ STANLEY=MACRO(nom="STANLEY",op=stanley_ops,sd_prod=None, reentrant='n', UIinfo={"groupes":("Outils métier",)}, fr="Outil de post-traitement interactif Stanley ", - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther) ), + RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther,mode_meca,mode_stat,dyna_harmo,dyna_trans) ), MODELE =SIMP(statut='f',typ=modele_sdaster), CHAM_MATER =SIMP(statut='f',typ=cham_mater), CARA_ELEM =SIMP(statut='f',typ=cara_elem), + DISPLAY =SIMP(statut='f',typ='TXM'), + UNITE_VALIDATION=SIMP(statut='c',typ='I',val_min=10,val_max=90, + fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit les md5"), + ) ; -#& MODIF COMMANDE DATE 01/04/2005 AUTEUR VABHHTS J.PELLET +#& MODIF COMMANDE DATE 16/05/2006 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -21837,12 +22676,14 @@ STANLEY=MACRO(nom="STANLEY",op=stanley_ops,sd_prod=None, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PBADEL P.BADEL +# RESPONSABLE MABBAS M.ABBAS STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli, - fr="Analyse mécanique statique non linéaire", + fr="Calcul de l'évolution mécanique ou thermo-hydro-mécanique couplée, en quasi-statique," + +" d'une structure en non linéaire", reentrant='f', UIinfo={"groupes":("Résolution",)}, - regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS'),), + regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS'), + CONCEPT_SENSIBLE('ENSEMBLE'),), MODELE =SIMP(statut='o',typ=modele_sdaster), CHAM_MATER =SIMP(statut='o',typ=cham_mater), CARA_ELEM =SIMP(statut='f',typ=cara_elem), @@ -21858,19 +22699,20 @@ STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli, TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',), ), - VARI_COMM =FACT(statut='f', - regles=(AU_MOINS_UN('IRRA','CORROSION'),), - IRRA =SIMP(statut='f',typ=evol_varc), - CORROSION =SIMP(statut='f',typ=carte_corr_r), - ), COMP_INCR =C_COMP_INCR(), COMP_ELAS =FACT(statut='f',max='**', + RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6), + ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), + ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), + RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", + into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), RELATION =SIMP(statut='o',typ='TXM',defaut="ELAS", into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC", - "ELAS_POUTRE_GR","CABLE")), + "ELAS_POUTRE_GR","CABLE","ELAS_HYPER")), ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut=1,into=(1,)), ELAS_VMIS_LINE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), + ELAS_HYPER =SIMP(statut='c',typ='I',defaut=1,into=(1,)), ELAS_POUTRE_GR =SIMP(statut='c',typ='I',defaut=3,into=(3,)), CABLE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ), @@ -21887,10 +22729,10 @@ STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli, 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), + DEPL =SIMP(statut='f',typ=cham_no_sdaster), + SIGM =SIMP(statut='f',typ=(cham_elem,carte_sdaster)), + VARI =SIMP(statut='f',typ=cham_elem), + VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_sdaster), EVOL_NOLI =SIMP(statut='f',typ=evol_noli), NUME_ORDRE =SIMP(statut='f',typ='I'), INST =SIMP(statut='f',typ='R'), @@ -21907,10 +22749,10 @@ STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli, 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), + DEPL =SIMP(statut='f',typ=cham_no_sdaster), + SIGM =SIMP(statut='f',typ=(cham_elem,carte_sdaster)), + VARI =SIMP(statut='f',typ=cham_elem), + VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_sdaster), EVOL_NOLI =SIMP(statut='f',typ=evol_noli), NUME_ORDRE =SIMP(statut='f',typ='I'), INST =SIMP(statut='f',typ='R'), @@ -21986,17 +22828,10 @@ STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli, ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25), ARRET =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - RESI_INTE_RELA =SIMP(statut='f',typ='R' - ,defaut= 1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", - into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), ), - PARM_THETA =SIMP(statut='f',typ='R' - ,defaut= 1. ), + PARM_THETA =SIMP(statut='f',typ='R',defaut= 1. ), SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ), + METHODE=SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","FETI") ), b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), ), @@ -22020,6 +22855,23 @@ STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli, PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=20,), RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.,), ), + b_feti =BLOC(condition = "METHODE == 'FETI' ",fr="Paramètres de la méthode FETI 1", + PARTITION =SIMP(statut='o',typ=sd_feti_sdaster), + RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), + RESI_RELA =SIMP(statut='f',typ='R',defaut=1.E-6,val_min=0.), + NMAX_ITER =SIMP(statut='f',typ='I',defaut=0,val_min=0), + TYPE_REORTHO_DD =SIMP(statut='f',typ='TXM',defaut="GSM",into=("SANS","GS","GSM","IGSM") ), + NB_REORTHO_DD =SIMP(statut='f',typ='I',defaut=0,val_min=0), + NB_REORTHO_INST =SIMP(statut='f',typ='I',defaut=0,val_min=0), + PRE_COND =SIMP(statut='f',typ='TXM',defaut="LUMPE",into=("LUMPE","SANS") ), + SCALING =SIMP(statut='f',typ='TXM',defaut="MULT",into=("SANS","MULT") ), + VERIF_SDFETI =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + TEST_CONTINU =SIMP(statut='f',typ='R',defaut=1.E-8,val_min=0.), + INFO_FETI =SIMP(statut='f',typ='TXM',defaut='FFFFFFFFFFFFFFFFFFFFFFFF'), + STOCKAGE_GI =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","CAL") ), + NB_SD_PROC0 =SIMP(statut='f',typ='I',defaut=0,val_min=0), + ACCELERATION_SM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), ), ARCHIVAGE =FACT(statut='f', @@ -22039,7 +22891,7 @@ STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli, regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'), PRESENT_PRESENT('MAILLE','POINT'),), NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","VITE","ACCE","SIEF_ELGA", - "VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU")), + "VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU","VALE_CONT")), NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ), LIST_ARCH =SIMP(statut='f',typ=listis_sdaster), LIST_INST =SIMP(statut='f',typ=listr8_sdaster), @@ -22052,6 +22904,56 @@ STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli, MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), POINT =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'), ), + + SUIVI_DDL = FACT(statut='f',max=4, + regles=(UN_PARMI('NOEUD','MAILLE'), + PRESENT_PRESENT('MAILLE','POINT'),), + NUME_SUIVI =SIMP(statut='o',typ='I' ,min=1,max=4), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1, + into=("DEPL","VITE","ACCE","SIEF_ELGA", + "VARI_ELGA","FORC_NODA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU",)), + NOM_CMP =SIMP(statut='o',typ='TXM',max=1 ), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=1), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max=1), + POINT =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max=1), + ), + + AFFICHAGE = FACT(statut='f',max=16, + + UNITE = SIMP(statut='f',typ='I',val_min=1), + + LONG_R = SIMP(statut='f',typ='I',defaut=12,val_min=1,val_max=12), + PREC_R = SIMP(statut='f',typ='I',defaut=5, val_min=1,val_max=8), + LONG_I = SIMP(statut='f',typ='I',defaut=6, val_min=1,val_max=12), + + NOM_COLONNE = SIMP(statut='o',typ='TXM',defaut="STANDARD", + into=("STANDARD","MINIMUM", + "ITER_NEWT", + "INCR_TPS", + "RESI_RELA","RELA_NOEU", + "RESI_MAXI","MAXI_NOEU", + "RESI_REFE","REFE_NOEU", + "RELI_ITER","RELI_COEF", + "PILO_PARA", + "LAGR_ECAR","LAGR_INCR","LAGR_ITER", + "MATR_ASSE", + "ITER_DEBO", + "CTCD_ITER","CTCD_INFO","CTCD_GEOM","CTCD_NOEU", + "CTCC_GEOM","CTCC_FROT","CTCC_CONT", + "SUIV_1","SUIV_2","SUIV_3","SUIV_4","ITER_FETI", + ), + ), + b_residu = BLOC(condition = " NOM_COLONNE == 'RESI_RELA' or \ + NOM_COLONNE == 'RESI_MAXI' or\ + NOM_COLONNE == 'RESI_REFE' or\ + NOM_COLONNE == 'CTCD_GEOM' or\ + NOM_COLONNE == 'STANDARD' ", + INFO_RESIDU = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), + ), + ), + + + CRIT_FLAMB =FACT(statut='f',min=1,max=1, NB_FREQ =SIMP(statut='f',typ='I',max=1,defaut=3), CHAR_CRIT =SIMP(statut='f',typ='R',min=2,max=2,defaut=(-10.0,10), @@ -22095,8 +22997,9 @@ STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli, ), INFO =SIMP(statut='f',typ='I',into=(1,2) ), TITRE =SIMP(statut='f',typ='TXM',max='**' ), - ) ; -#& MODIF COMMANDE DATE 05/10/2004 AUTEUR CIBHHLV L.VIVAN + ) + +#& MODIF COMMANDE DATE 22/05/2006 AUTEUR MCOURTOI M.COURTOIS # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG @@ -22121,11 +23024,10 @@ from Macro.test_fichier_ops import test_fichier_ops TEST_FICHIER=MACRO(nom="TEST_FICHIER", op=test_fichier_ops, UIinfo={"groupes":("Impression",)}, - - UNITE =SIMP(statut='f',typ='I',defaut=8), + fr="Tester la non régression de fichiers produits par des commandes aster", FICHIER =SIMP(statut='o',typ='TXM',validators=LongStr(1,255)), - NB_CHIFFRE =SIMP(statut='f',typ='I',defaut=6), - EPSILON =SIMP(statut='f',typ='R',defaut=1.E-14), + NB_CHIFFRE =SIMP(statut='o',typ='I',), # defaut=6 pas de defaut, il faut + EPSILON =SIMP(statut='o',typ='R',), # defaut=1.E-12 se poser la question ! EXPR_IGNORE =SIMP(statut='f',typ='TXM',max='**', fr="Liste d'expressions régulières permettant d'ignorer certaines lignes"), VALE_K =SIMP(statut='o',typ='TXM' ), @@ -22138,7 +23040,7 @@ TEST_FICHIER=MACRO(nom="TEST_FICHIER", op=test_fichier_ops, INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), ) -#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN +#& MODIF COMMANDE DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -22157,18 +23059,23 @@ TEST_FICHIER=MACRO(nom="TEST_FICHIER", op=test_fichier_ops, # 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", +TEST_FONCTION=PROC(nom="TEST_FONCTION",op= 135, + fr="Extraction d'une valeur numérique ou d'un attribut de fonction pour comparaison à une valeur de référence", UIinfo={"groupes":("Impression",)}, - UNITE =SIMP(statut='f',typ='I',defaut=8), TEST_NOOK =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), VALEUR =FACT(statut='f',max='**', fr="Tester la valeur d une fonction ou d une nappe", - regles=(UN_PARMI('VALE_REFE','VALE_REFE_C', ),), + regles=(UN_PARMI('VALE_REFE','VALE_REFE_C',), + DERIVABLE('FONCTION'),), FONCTION =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster,formule) ), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom), + fr="Paramètre de sensibilité.", + ang="Sensitivity parameter"), NOM_PARA =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2), VALE_PARA =SIMP(statut='o',typ='R' ,validators=NoRepeat(),max=2), VALE_REFE =SIMP(statut='f',typ='R' ), VALE_REFE_C =SIMP(statut='f',typ='C' ), + VALE_ABS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), CRITERE =SIMP(statut='f',typ='TXM',fr="Critère de comparaison avec la solution de référence", defaut="RELATIF",into=("RELATIF","ABSOLU") ), PRECISION =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence", @@ -22198,7 +23105,7 @@ TEST_FONCTION=PROC(nom="TEST_FONCTION",op= 135,fr="Extraction d une valeur num TABL_INTSP =FACT(statut='f',max='**', fr="Tester la valeur d une fonction contenue dans une table interspectrale", regles=(UN_PARMI('NUME_ORDRE_I','NOEUD_I'),), - INTE_SPEC =SIMP(statut='o',typ=tabl_intsp ), + INTE_SPEC =SIMP(statut='o',typ=table_sdaster), 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", @@ -22223,7 +23130,7 @@ TEST_FONCTION=PROC(nom="TEST_FONCTION",op= 135,fr="Extraction d une valeur num ), ), ) ; -#& MODIF COMMANDE DATE 09/05/2005 AUTEUR CIBHHLV L.VIVAN +#& MODIF COMMANDE DATE 16/05/2006 AUTEUR REZETTE C.REZETTE # RESPONSABLE VABHHTS J.PELLET # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -22246,9 +23153,8 @@ TEST_FONCTION=PROC(nom="TEST_FONCTION",op= 135,fr="Extraction d une valeur num # ====================================================================== TEST_RESU=PROC(nom="TEST_RESU",op=23, UIinfo={"groupes":("Impression",)}, - fr="Extraction d une valeur et comparaison à une valeur de référence", + fr="Extraction d'une valeur d'une structure de donnée et comparaison à une valeur de référence", regles=(AU_MOINS_UN('CHAM_NO','CHAM_ELEM','RESU','GENE','OBJET')), - UNITE =SIMP(statut='f',typ='I',defaut=8), CHAM_NO =FACT(statut='f',max='**', regles=(UN_PARMI('NOEUD','GROUP_NO','TYPE_TEST'), @@ -22264,6 +23170,7 @@ TEST_RESU=PROC(nom="TEST_RESU",op=23, VALE =SIMP(statut='f',typ='R'), VALE_I =SIMP(statut='f',typ='I'), VALE_C =SIMP(statut='f',typ='C'), + VALE_ABS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", @@ -22278,7 +23185,7 @@ TEST_RESU=PROC(nom="TEST_RESU",op=23, 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_sdaster), + CHAM_GD =SIMP(statut='o',typ=cham_elem), MAILLE =SIMP(statut='f',typ=ma), POINT =SIMP(statut='f',typ='I' ), SOUS_POINT =SIMP(statut='f',typ='I'), @@ -22289,6 +23196,7 @@ TEST_RESU=PROC(nom="TEST_RESU",op=23, VALE =SIMP(statut='f',typ='R' ), VALE_I =SIMP(statut='f',typ='I' ), VALE_C =SIMP(statut='f',typ='C' ), + VALE_ABS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", @@ -22305,7 +23213,8 @@ TEST_RESU=PROC(nom="TEST_RESU",op=23, PRESENT_PRESENT('NOEUD','NOM_CMP'), PRESENT_PRESENT('GROUP_NO','NOM_CMP'), PRESENT_PRESENT('POINT','NOM_CMP'), - UN_PARMI('VALE','VALE_I','VALE_C') ,), + UN_PARMI('VALE','VALE_I','VALE_C'), + DERIVABLE('RESULTAT'),), RESULTAT =SIMP(statut='o',typ=resultat_sdaster), SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom), fr="Paramètre de sensibilité.", @@ -22329,6 +23238,7 @@ TEST_RESU=PROC(nom="TEST_RESU",op=23, VALE =SIMP(statut='f',typ='R'), VALE_I =SIMP(statut='f',typ='I'), VALE_C =SIMP(statut='f',typ='C'), + VALE_ABS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), CRITERE =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),max=2), PRECISION =SIMP(statut='f',typ='R',max=2), REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", @@ -22338,8 +23248,8 @@ TEST_RESU=PROC(nom="TEST_RESU",op=23, GENE =FACT(statut='f',max='**', regles=(UN_PARMI('VALE','VALE_I','VALE_C') ,), - RESU_GENE =SIMP(statut='o',typ=(vect_asse_gene_r, tran_gene, mode_gene, harm_gene)), - b_vect_asse =BLOC(condition = "AsType(RESU_GENE) == vect_asse_gene_r", + RESU_GENE =SIMP(statut='o',typ=(vect_asse_gene, tran_gene, mode_gene, harm_gene)), + b_vect_asse =BLOC(condition = "AsType(RESU_GENE) == vect_asse_gene", NUME_CMP_GENE =SIMP(statut='o',typ='I'), ), b_mode =BLOC(condition = "(AsType(RESU_GENE) == harm_gene) or (AsType(RESU_GENE) == mode_gene)", @@ -22363,6 +23273,7 @@ TEST_RESU=PROC(nom="TEST_RESU",op=23, VALE =SIMP(statut='f',typ='R'), VALE_I =SIMP(statut='f',typ='I'), VALE_C =SIMP(statut='f',typ='C'), + VALE_ABS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), CRITERE =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),max=2), PRECISION =SIMP(statut='f',typ='R',max=2), REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", @@ -22380,6 +23291,7 @@ TEST_RESU=PROC(nom="TEST_RESU",op=23, VALE =SIMP(statut='f',typ='R'), VALE_I =SIMP(statut='f',typ='I'), VALE_C =SIMP(statut='f',typ='C'), + VALE_ABS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", @@ -22387,7 +23299,7 @@ TEST_RESU=PROC(nom="TEST_RESU",op=23, VERSION =SIMP(statut='f',typ='TXM' ), ), ) ; -#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN +#& MODIF COMMANDE DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -22408,8 +23320,9 @@ TEST_RESU=PROC(nom="TEST_RESU",op=23, # RESPONSABLE VABHHTS J.PELLET TEST_TABLE=PROC(nom="TEST_TABLE",op= 177, UIinfo={"groupes":("Impression",)}, - regles=(UN_PARMI('VALE','VALE_I','VALE_C', ),), - UNITE =SIMP(statut='f',typ='I',defaut=8), + fr="Tester une cellule ou une colonne d'une table", + regles=(UN_PARMI('VALE','VALE_I','VALE_C', ), + DERIVABLE('TABLE'),), # concept table_sdaster à tester TABLE =SIMP(statut='o',typ=table_sdaster), @@ -22436,6 +23349,7 @@ TEST_TABLE=PROC(nom="TEST_TABLE",op= 177, VALE =SIMP(statut='f',typ='R' ), VALE_I =SIMP(statut='f',typ='I' ), VALE_C =SIMP(statut='f',typ='C' ), + VALE_ABS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), PRECISION =SIMP(statut='f',typ='R',defaut= 1.2E-3 ), REFERENCE =SIMP(statut='f',typ='TXM', @@ -22445,7 +23359,7 @@ TEST_TABLE=PROC(nom="TEST_TABLE",op= 177, INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), ), ) ; -#& MODIF COMMANDE DATE 01/04/2005 AUTEUR VABHHTS J.PELLET +#& MODIF COMMANDE DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -22465,7 +23379,8 @@ TEST_TABLE=PROC(nom="TEST_TABLE",op= 177, # ====================================================================== THER_LINEAIRE=OPER(nom="THER_LINEAIRE",op=25,sd_prod=evol_ther,reentrant='f', UIinfo={"groupes":("Résolution",)}, - fr="Analyse thermique linéaire stationnaire ou transitoire", + fr="Résoudre un problème thermique linéaire stationnaire ou transitoire", + regles=(CONCEPT_SENSIBLE('ENSEMBLE'),), MODELE =SIMP(statut='o',typ=modele_sdaster), CHAM_MATER =SIMP(statut='o',typ=cham_mater), CARA_ELEM =SIMP(statut='f',typ=cara_elem), @@ -22482,7 +23397,7 @@ THER_LINEAIRE=OPER(nom="THER_LINEAIRE",op=25,sd_prod=evol_ther,reentrant='f', regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),), STATIONNAIRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), EVOL_THER =SIMP(statut='f',typ=evol_ther), - CHAM_NO =SIMP(statut='f',typ=cham_no_temp_r), + CHAM_NO =SIMP(statut='f',typ=cham_no_sdaster), VALE =SIMP(statut='f',typ='R'), NUME_INIT =SIMP(statut='f',typ='I'), ), @@ -22537,7 +23452,7 @@ THER_LINEAIRE=OPER(nom="THER_LINEAIRE",op=25,sd_prod=evol_ther,reentrant='f', TITRE =SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',into=(1,2)), ) ; -#& MODIF COMMANDE DATE 01/04/2005 AUTEUR VABHHTS J.PELLET +#& MODIF COMMANDE DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -22557,7 +23472,9 @@ THER_LINEAIRE=OPER(nom="THER_LINEAIRE",op=25,sd_prod=evol_ther,reentrant='f', # ====================================================================== THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,reentrant='f', UIinfo={"groupes":("Résolution",)}, - fr="Analyse thermique non linéaire stationnaire ou transitoire" , + fr="Résoudre un problème thermique non linéaire (conditions limites ou comportement matériau)" + +" stationnaire ou transitoire" , + regles=(CONCEPT_SENSIBLE('ENSEMBLE'),), MODELE =SIMP(statut='o',typ=(modele_sdaster) ), CHAM_MATER =SIMP(statut='o',typ=(cham_mater) ), CARA_ELEM =SIMP(statut='c',typ=(cara_elem) ), @@ -22570,7 +23487,7 @@ THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,reentrant='f', "SECH_BAZANT", "SECH_NAPPE" ) ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), + regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), @@ -22589,7 +23506,7 @@ THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,reentrant='f', regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),), STATIONNAIRE =SIMP(statut='f',typ='TXM',into=("OUI",)), EVOL_THER =SIMP(statut='f',typ=evol_ther), - CHAM_NO =SIMP(statut='f',typ=cham_no_temp_r), + CHAM_NO =SIMP(statut='f',typ=cham_no_sdaster), VALE =SIMP(statut='f',typ='R'), NUME_INIT =SIMP(statut='f',typ='I'), ), @@ -22651,7 +23568,7 @@ THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,reentrant='f', INFO =SIMP(statut='f',typ='I',into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -22670,7 +23587,8 @@ THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,reentrant='f', # 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", + fr="Résoudre un problème thermique non linéaire (conditions limites ou comportement matériau)" + +" stationnaire avec chargement mobile", reentrant='n', UIinfo={"groupes":("Résolution",)}, MODELE =SIMP(statut='o',typ=modele_sdaster ), diff --git a/Aster/Cata/cataSTA8/ops.py b/Aster/Cata/cataSTA8/ops.py index 110eb96a..088e9561 100644 --- a/Aster/Cata/cataSTA8/ops.py +++ b/Aster/Cata/cataSTA8/ops.py @@ -1,4 +1,4 @@ -#@ MODIF ops Cata DATE 17/05/2005 AUTEUR DURAND C.DURAND +#@ MODIF ops Cata DATE 08/11/2005 AUTEUR D6BHHJP J.P.LEFEBVRE # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -38,7 +38,7 @@ try: except: pass -def DEBUT(self,PAR_LOT,CODE,**args): +def DEBUT(self,PAR_LOT,IMPR_MACRO,CODE,DEBUG,**args): """ Fonction sdprod de la macro DEBUT """ @@ -46,6 +46,10 @@ def DEBUT(self,PAR_LOT,CODE,**args): if self.jdc is not self.parent : raise Accas.AsException("La commande DEBUT ne peut exister qu'au niveau jdc") + self.jdc.impr_macro=IMPR_MACRO + self.jdc.jxveri=0 + if DEBUG!=None : + if DEBUG['JXVERI']=='OUI' : self.jdc.jxveri=1 self.jdc.set_par_lot(PAR_LOT) if CODE!=None : self.jdc.fico=CODE['NOM'] @@ -72,7 +76,7 @@ def build_debut(self,**args): self.definition.op=None return ier -def POURSUITE(self,PAR_LOT,CODE,**args): +def POURSUITE(self,PAR_LOT,IMPR_MACRO,CODE,DEBUG,**args): """ Fonction sdprod de la macro POURSUITE """ @@ -80,7 +84,11 @@ def POURSUITE(self,PAR_LOT,CODE,**args): if self.jdc is not self.parent : raise Accas.AsException("La commande POURSUITE ne peut exister qu'au niveau jdc") + self.jdc.impr_macro=IMPR_MACRO self.jdc.set_par_lot(PAR_LOT) + self.jdc.jxveri=0 + if DEBUG!=None : + if DEBUG['JXVERI']=='OUI' : self.jdc.jxveri=1 if CODE!=None : self.jdc.fico=CODE['NOM'] else: @@ -102,7 +110,7 @@ def POURSUITE(self,PAR_LOT,CODE,**args): self.definition.op=None # On demande la numerotation de la commande POURSUITE avec l'incrément # lonuti pour qu'elle soit numérotée à la suite des commandes existantes. - self.set_icmd(lonuti) +####CD self.set_icmd(lonuti) pos=0 d={} while pos+80 < len(concepts)+1: @@ -205,6 +213,7 @@ def build_poursuite(self,**args): # Pour POURSUITE on ne modifie pas la valeur initialisee dans ops.POURSUITE # Il n y a pas besoin d executer self.codex.poursu (c'est deja fait dans # la fonction sdprod de la commande (ops.POURSUITE)) + self.set_icmd(1) self.jdc.UserError=self.codex.error return 0 @@ -433,7 +442,7 @@ def build_DEFI_FICHIER(self,**args): Fonction ops de la macro DEFI_FICHIER """ ier=0 - self.set_icmd(None) + self.set_icmd(1) icmd=0 ier=self.codex.opsexe(self,icmd,-1,26) return ier diff --git a/Aster/Cata/cataSTA81/Macro/__init__.py b/Aster/Cata/cataSTA81/Macro/__init__.py deleted file mode 100644 index 4aebb58b..00000000 --- a/Aster/Cata/cataSTA81/Macro/__init__.py +++ /dev/null @@ -1,21 +0,0 @@ -#@ MODIF __init__ Macro DATE 20/09/2004 AUTEUR DURAND C.DURAND -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# -# -# ====================================================================== diff --git a/Aster/Cata/cataSTA81/Macro/calc_fonction_ops.py b/Aster/Cata/cataSTA81/Macro/calc_fonction_ops.py deleted file mode 100644 index 4169d1a6..00000000 --- a/Aster/Cata/cataSTA81/Macro/calc_fonction_ops.py +++ /dev/null @@ -1,328 +0,0 @@ -#@ MODIF calc_fonction_ops Macro DATE 19/09/2005 AUTEUR DURAND C.DURAND -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - -def tocomplex(arg): - if arg[0]=='RI' : return complex(arg[1],arg[2]) - if arg[0]=='MP' : return complex(arg[1]*cos(arg[2]),arg[1]*sin(arg[2])) - -def calc_fonction_ops(self,FFT,DERIVE,INTEGRE,LISS_ENVELOP, - SPEC_OSCI,ABS,COMB,COMB_C,COMPOSE,EXTRACTION, - ENVELOPPE,ASSE,CORR_ACCE,PUISSANCE,INVERSE, - NOM_PARA,NOM_RESU,INTERPOL,PROL_DROITE, - PROL_GAUCHE,NOM_PARA_FONC,INTERPOL_FONC,PROL_DROITE_FONC, - PROL_GAUCHE_FONC,**args): - """ - Ecriture de la macro CALC_FONCTION - """ - ier=0 - import types - import string - import copy - from math import pi - from Utilitai.t_fonction import t_fonction,t_fonction_c,t_nappe - from Utilitai import liss_enveloppe - from Accas import _F - from Cata.cata import nappe_sdaster,fonction_sdaster,fonction_c - from Utilitai.Utmess import UTMESS - from Numeric import alltrue,less,array,reshape,cos,sin,exp,sqrt - from Numeric import choose,zeros,Float - import aster_fonctions - EnumType = (types.ListType,types.TupleType) - - ### On importe les definitions des commandes a utiliser dans la macro - DEFI_FONCTION = self.get_cmd('DEFI_FONCTION') - DEFI_NAPPE = self.get_cmd('DEFI_NAPPE') - - ### Comptage commandes + déclaration concept sortant - self.set_icmd(1) - self.DeclareOut('C_out',self.sd) - - ### type de traitement - ### - if (INTEGRE != None): - __ff=INTEGRE['FONCTION'].convert() - if INTEGRE['METHODE']=='TRAPEZE' : __ex=__ff.trapeze(INTEGRE['COEF']) - if INTEGRE['METHODE']=='SIMPSON' : __ex=__ff.simpson(INTEGRE['COEF']) - ### - if (DERIVE != None): - __ff=DERIVE['FONCTION'].convert() - __ex=__ff.derive() - ### - if (INVERSE != None): - __ff=INVERSE['FONCTION'].convert() - __ex=__ff.inverse() - ### - if (ABS != None): - __ff=ABS['FONCTION'].convert() - __ex=__ff.abs() - ### - if (COMPOSE != None): - __ff=COMPOSE['FONC_RESU'].convert() - __fg=COMPOSE['FONC_PARA'].convert() - __ex=__ff[__fg] - ### - if (ASSE != None): - __f0=ASSE['FONCTION'][0].convert() - __f1=ASSE['FONCTION'][1].convert() - __ex=__f0.cat(__f1,ASSE['SURCHARGE']) - ### - if (COMB != None): - list_fonc=[] - if isinstance(self.sd,nappe_sdaster): - for mcfact in COMB : - list_fonc.append(mcfact['FONCTION'].convert()) - list_fonch=[] - for f in list_fonc : - __ex=f - for g in list_fonc : - __ex=__ex.homo_support(g) - list_fonch.append(__ex) - list_fonc=list_fonch - elif isinstance(self.sd,fonction_sdaster): - for mcfact in COMB : - __ex=mcfact['FONCTION'].convert() - list_fonc.append(__ex) - - __ex=list_fonc[0] - __ex=__ex*COMB[0]['COEF'] - i=1 - for item in list_fonc[1:] : - item=item*COMB[i]['COEF'] - __ex=__ex+item - i=i+1 - ### - if (COMB_C != None): - list_fonc=[] - if isinstance(self.sd,nappe_sdaster): - for mcfact in COMB_C : - list_fonc.append(mcfact['FONCTION'].convert()) - list_fonch=[] - for f in list_fonc : - __ex=f - for g in list_fonc : - __ex=__ex.homo_support(g) - list_fonch.appen(__ex) - list_fonc=list_fonch - elif isinstance(self.sd,fonction_sdaster) or isinstance(self.sd,fonction_c): - for mcfact in COMB_C : - __ex=mcfact['FONCTION'].convert(arg='complex') - list_fonc.append(__ex) - - __ex=list_fonc[0] - if COMB_C[0]['COEF_R']!=None: __ex=__ex*complex(COMB_C[0]['COEF_R']) - if COMB_C[0]['COEF_C']!=None: - if type(COMB_C[0]['COEF_C']) in EnumType : __ex=__ex*tocomplex(COMB_C[0]['COEF_C']) - else : __ex=__ex*COMB_C[0]['COEF_C'] - i=1 - for item in list_fonc[1:] : - if COMB_C[i]['COEF_R']!=None: coef=complex(COMB_C[i]['COEF_R']) - if COMB_C[i]['COEF_C']!=None: - if type(COMB_C[i]['COEF_C']) in EnumType : coef=tocomplex(COMB_C[i]['COEF_C']) - else : coef=COMB_C[i]['COEF_C'] - item=item*coef - __ex=__ex+item - i=i+1 - ### mot clé LIST_PARA uniquement présent si COMB ou COMB_C - if (COMB != None) or (COMB_C != None) : - if (args['LIST_PARA'] != None) : - __ex=__ex.evalfonc(args['LIST_PARA'].Valeurs()) - ### - if (PUISSANCE != None): - __ff=PUISSANCE['FONCTION'].convert() - __ex=__ff - for i in range(PUISSANCE['EXPOSANT']-1) : __ex=__ex*__ff - ### - if (EXTRACTION != None): - if EXTRACTION['PARTIE']=='REEL' : __ex=EXTRACTION['FONCTION'].convert(arg='real') - if EXTRACTION['PARTIE']=='IMAG' : __ex=EXTRACTION['FONCTION'].convert(arg='imag') - if EXTRACTION['PARTIE']=='MODULE' : __ex=EXTRACTION['FONCTION'].convert(arg='modul') - if EXTRACTION['PARTIE']=='PHASE' : __ex=EXTRACTION['FONCTION'].convert(arg='phase') - ### - if (ENVELOPPE != None): - list_fonc=[] - l_env=ENVELOPPE['FONCTION'] - if type(l_env) not in EnumType : l_env=(l_env,) - if isinstance(self.sd,nappe_sdaster): - for f in l_env : list_fonc.append(f.convert()) - list_fonch=[] - for f in list_fonc : - __ff=f - for g in list_fonc : - __ff=__ff.homo_support(g) - list_fonch.append(__ff) - list_fonc=list_fonch - vale_para=list_fonc[0].vale_para - para =list_fonc[0].para - l_fonc_f =[] - for i in range(len(vale_para)): - __ff=list_fonc[0].l_fonc[i] - if ENVELOPPE['CRITERE']=='SUP' : - for f in list_fonc[1:] : __ff=__ff.sup(f.l_fonc[i]) - if ENVELOPPE['CRITERE']=='INF' : - for f in list_fonc[1:] : __ff=__ff.inf(f.l_fonc[i]) - l_fonc_f.append(__ff) - __ex=t_nappe(vale_para,l_fonc_f,para) - elif isinstance(self.sd,fonction_sdaster): - for f in l_env : list_fonc.append(f.convert()) - __ex=list_fonc[0] - if ENVELOPPE['CRITERE']=='SUP' : - for f in list_fonc[1:] : __ex=__ex.sup(f) - if ENVELOPPE['CRITERE']=='INF' : - for f in list_fonc[1:] : __ex=__ex.inf(f) - ### - if (CORR_ACCE != None): - __ex=CORR_ACCE['FONCTION'].convert() - para=copy.copy(__ex.para) - # suppression de la tendance de l accelero - __ex=__ex.suppr_tend() - # calcul de la vitesse - __ex=__ex.trapeze(0.) - # calcul de la tendance de la vitesse : y = a1*x +a0 - __ex=__ex.suppr_tend() - if CORR_ACCE['CORR_DEPL']=='OUI': - # suppression de la tendance deplacement - # calcul du deplacement : integration - __ex=__ex.trapeze(0.) - # calcul de la tendance du déplacement : y = a1*x +a0 - __ex=__ex.suppr_tend() - # regeneration de la vitesse : derivation - __ex=__ex.derive() - # regeneration de l accelero : derivation - __ex=__ex.derive() - __ex.para=para - ### - if (FFT != None): - if isinstance(self.sd,fonction_c): - __ff=FFT['FONCTION'].convert() - __ex=__ff.fft(FFT['METHODE']) - if isinstance(self.sd,fonction_sdaster): - __ff=FFT['FONCTION'].convert(arg='complex') - __ex=__ff.fft(FFT['METHODE'],FFT['SYME']) - ### - if (SPEC_OSCI != None): - if SPEC_OSCI['AMOR_REDUIT']==None : - l_amor=[0.02,0.05,0.1] - UTMESS('I','CALC_FONCTION',' : génération par défaut de 3 amortissements :'+str(l_amor)) - else : - if type(SPEC_OSCI['AMOR_REDUIT']) not in EnumType : - l_amor=[SPEC_OSCI['AMOR_REDUIT'],] - else : l_amor= SPEC_OSCI['AMOR_REDUIT'] - if SPEC_OSCI['FREQ']==None and SPEC_OSCI['LIST_FREQ']==None: - l_freq=[] - for i in range(56) : l_freq.append( 0.2+0.050*i) - for i in range( 8) : l_freq.append( 3.0+0.075*i) - for i in range(14) : l_freq.append( 3.6+0.100*i) - for i in range(24) : l_freq.append( 5.0+0.125*i) - for i in range(28) : l_freq.append( 8.0+0.250*i) - for i in range( 6) : l_freq.append(15.0+0.500*i) - for i in range( 4) : l_freq.append(18.0+1.000*i) - for i in range(10) : l_freq.append(22.0+1.500*i) - texte=[] - for i in range(len(l_freq)/5) : - texte.append(' %f %f %f %f %f' %tuple(l_freq[i*5:i*5+5])) - UTMESS('I','CALC_FONCTION',' : génération par défaut de 150 fréquences :\n'+'\n'.join(texte)) - elif SPEC_OSCI['LIST_FREQ']!=None: - l_freq=SPEC_OSCI['LIST_FREQ'].Valeurs() - elif SPEC_OSCI['FREQ']!=None: - if type(SPEC_OSCI['FREQ']) not in EnumType: - l_freq=[SPEC_OSCI['FREQ'],] - else : l_freq= SPEC_OSCI['FREQ'] - if abs(SPEC_OSCI['NORME'])<1.E-10 : - UTMESS('S','CALC_FONCTION',' : SPEC_OSCI, la norme ne peut etre nulle') - if SPEC_OSCI['NATURE_FONC']!='ACCE' : - UTMESS('S','CALC_FONCTION',' : SPEC_OSCI, le type de la fonction doit etre ACCE') - if SPEC_OSCI['METHODE']!='NIGAM' : - UTMESS('S','CALC_FONCTION',' : SPEC_OSCI, seule la méthode NIGAM est codée') - eps=1.e-6 - for amor in l_amor : - if amor>(1-eps) : - UTMESS('S','CALC_FONCTION',' : SPEC_OSCI, la méthode choisie '\ - 'suppose des amortissements sous-critiques, amor<1.') - - __ff=SPEC_OSCI['FONCTION'].convert() - - # appel à SPEC_OSCI - spectr = aster_fonctions.SPEC_OSCI(__ff.vale_x, __ff.vale_y, l_freq, l_amor) - - # construction de la nappe - vale_para = l_amor - para = { 'INTERPOL' : ['LIN','LOG'], - 'NOM_PARA_FONC' : 'FREQ', - 'NOM_PARA' : 'AMOR', - 'PROL_DROITE' : 'EXCLU', - 'PROL_GAUCHE' : 'EXCLU', - 'NOM_RESU' : SPEC_OSCI['NATURE'] } - para_fonc = { 'INTERPOL' : ['LOG','LOG'], - 'NOM_PARA' : 'FREQ', - 'PROL_DROITE' : 'CONSTANT', - 'PROL_GAUCHE' : 'EXCLU', - 'NOM_RESU' : SPEC_OSCI['NATURE'] } - if SPEC_OSCI['NATURE']=='DEPL' : ideb = 0 - elif SPEC_OSCI['NATURE']=='VITE' : ideb = 1 - else : ideb = 2 - l_fonc = [] - for iamor in range(len(l_amor)) : - l_fonc.append(t_fonction(l_freq,spectr[iamor,ideb,:]/SPEC_OSCI['NORME'],para_fonc)) - __ex=t_nappe(vale_para,l_fonc,para) - ### - if (LISS_ENVELOP!= None): - __ff=LISS_ENVELOP['NAPPE'].convert() - sp_nappe=liss_enveloppe.nappe(listFreq=__ff.l_fonc[0].vale_x, listeTable=[f.vale_y for f in __ff.l_fonc], listAmor=__ff.vale_para, entete="") - sp_lisse=liss_enveloppe.lissage(nappe=sp_nappe,fmin=LISS_ENVELOP['FREQ_MIN'],fmax=LISS_ENVELOP['FREQ_MAX'],elarg=LISS_ENVELOP['ELARG'],tole_liss=LISS_ENVELOP['TOLE_LISS']) - para_fonc=__ff.l_fonc[0].para - l_fonc=[] - for val in sp_lisse.listTable : - l_fonc.append(t_fonction(sp_lisse.listFreq,val,para_fonc)) - __ex=t_nappe(vale_para=sp_lisse.listAmor,l_fonc=l_fonc,para=__ff.para) - - ### creation de la fonction produite par appel à DEFI_FONCTION - ### on récupère les paramètres issus du calcul de __ex - ### et on les surcharge par ceux imposés par l'utilisateur - - if isinstance(__ex,t_fonction) or isinstance(__ex,t_fonction_c): - para=__ex.para - if NOM_PARA !=None : para['NOM_PARA'] =NOM_PARA - if NOM_RESU !=None : para['NOM_RESU'] =NOM_RESU - if PROL_DROITE!=None : para['PROL_DROITE']=PROL_DROITE - if PROL_GAUCHE!=None : para['PROL_GAUCHE']=PROL_GAUCHE - if INTERPOL !=None : para['INTERPOL'] =INTERPOL - if isinstance(__ex,t_fonction_c): para['VALE_C'] = __ex.tabul() - elif isinstance(__ex,t_fonction) : para['VALE'] = __ex.tabul() - C_out=DEFI_FONCTION(**para) - elif isinstance(__ex,t_nappe): - def_fonc=[] - for f in __ex.l_fonc : - para=f.para - def_fonc.append(_F(VALE =f.tabul(), - INTERPOL =f.para['INTERPOL'], - PROL_DROITE=f.para['PROL_DROITE'], - PROL_GAUCHE=f.para['PROL_GAUCHE'],) - ) - para=__ex.para - if NOM_PARA !=None : para['NOM_PARA'] =NOM_PARA - if NOM_RESU !=None : para['NOM_RESU'] =NOM_RESU - if PROL_DROITE !=None : para['PROL_DROITE']=PROL_DROITE - if PROL_GAUCHE !=None : para['PROL_GAUCHE']=PROL_GAUCHE - if NOM_PARA_FONC !=None : para['NOM_PARA_FONC'] =INTERPOL - if INTERPOL_FONC !=None : para['INTERPOL'] =INTERPOL - C_out=DEFI_NAPPE(PARA=__ex.vale_para.tolist(),DEFI_FONCTION=def_fonc,**para) - return ier - diff --git a/Aster/Cata/cataSTA81/Macro/calc_precont_ops.py b/Aster/Cata/cataSTA81/Macro/calc_precont_ops.py deleted file mode 100644 index 68ddb810..00000000 --- a/Aster/Cata/cataSTA81/Macro/calc_precont_ops.py +++ /dev/null @@ -1,467 +0,0 @@ -#@ MODIF calc_precont_ops Macro DATE 05/09/2005 AUTEUR DURAND C.DURAND -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - -# RESPONSABLE ASSIRE A.ASSIRE - -def calc_precont_ops(self,reuse,MODELE,CHAM_MATER,CARA_ELEM,EXCIT, - CABLE_BP,CABLE_BP_INACTIF, - COMP_INCR,ETAT_INIT,NEWTON,RECH_LINEAIRE, - CONVERGENCE,INCREMENT,SOLVEUR,SOLV_NON_LOCAL, - LAGR_NON_LOCAL,PARM_THETA,INFO,TITRE,**args): - - - """ - Ecriture de la macro CALC_PRECONT - """ - import copy - import aster - import string - import types - from Accas import _F - from Noyau.N_utils import AsType - from Utilitai.Utmess import UTMESS - ier=0 - - # On importe les definitions des commandes a utiliser dans la macro - AFFE_MODELE = self.get_cmd('AFFE_MODELE') - CREA_CHAMP = self.get_cmd('CREA_CHAMP') - AFFE_CHAR_MECA = self.get_cmd('AFFE_CHAR_MECA') - DEFI_LIST_REEL = self.get_cmd('DEFI_LIST_REEL') - STAT_NON_LINE = self.get_cmd('STAT_NON_LINE') - CALC_NO = self.get_cmd('CALC_NO') - CREA_CHAMP = self.get_cmd('CREA_CHAMP') - DEFI_FONCTION = self.get_cmd('DEFI_FONCTION') - RECU_TABLE = self.get_cmd('RECU_TABLE') - DEFI_MATERIAU = self.get_cmd('DEFI_MATERIAU') - AFFE_MATERIAU = self.get_cmd('AFFE_MATERIAU') - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # Le concept sortant (de type evol_noli) est nomme RES dans - # le contexte de la macro - - self.DeclareOut('RES',self.sd) - - # ------------------------------------------------------------- - # 1. CREATION DES MOTS-CLES ET CONCEPTS POUR LES STAT_NON_LINE - # ------------------------------------------------------------ - - - # 1.1 Recuperation de la liste d'instants, de l'instant initial et final - # Creation de la nouvelle liste d'instants - # ---------------------------------------------------------- - - dIncrement=INCREMENT[0].cree_dict_valeurs(INCREMENT[0].mc_liste) - - __prec = dIncrement['PRECISION'] - __L0 = dIncrement['LIST_INST'] - __L1 = __L0.Valeurs() - - # Traitement de l'etat initial - if ETAT_INIT: - dEtatInit=ETAT_INIT[0].cree_dict_valeurs(ETAT_INIT[0].mc_liste) - for i in dEtatInit.keys(): - if dEtatInit[i]==None : del dEtatInit[i] - - __EVINIT = dEtatInit['EVOL_NOLI'] - else : - dEtatInit=None - - # Test de la presence de reuse= - if self.reuse == None: - dReuse=None - else : - dReuse='RES' - - # Teste si INST_INIT est donné ou bien recalcule __TMIN - if dIncrement['INST_INIT'] == None: - if self.reuse == None: - __TMIN = __L1[0] - else: - __dico = __EVINIT.LIST_VARI_ACCES() - __TMIN = __dico['INST'][-1] - else: - __TMIN = dIncrement['INST_INIT'] - - # Teste si INST_FIN est donné ou bien recalcule __TMAX - if dIncrement['INST_FIN'] == None: - __TMAX = __L1[-1] - else: - __TMAX = dIncrement['INST_FIN'] - - # Teste si INST_INIT est bien plus petit que INST_FIN - if __TMAX <= __TMIN: - UTMESS('F','CALC_PRECONT','INST_FIN PLUS PETIT QUE INST_INIT') - - # Cree la liste d'instant __L2 allant de __TMIN a __TMAX et contenant - # un instant supplementaire __TINT - __L2=[] - for m in __L1: - if m>=__TMIN and m<=__TMAX: - __L2.append(m) - - __TINT = (9.*__L2[-1] + __L2[-2])/10. - __L2[-1:-1] = [__TINT] - - # __LST0 est la liste d'instants utilisée pour l'etape 1 - __LST0=DEFI_LIST_REEL( DEBUT = __TMIN, - INTERVALLE = _F(JUSQU_A = __TMAX, NOMBRE = 1),) - - # __LST et __FCT sont utilisés pour les etapes 2 et 3 - __LST=DEFI_LIST_REEL(VALE=__L2,); - __FCT=DEFI_FONCTION(INTERPOL=('LIN','LIN'), - NOM_PARA='INST', - VALE=(__TMIN,0.0,__TINT,1.0,__TMAX,1.0),); - - for i in dIncrement.keys(): - if dIncrement[i]==None : del dIncrement[i] - dIncrement['LIST_INST']= __LST - dIncrement['INST_FIN'] = __TINT - - - - # 1.2 Recuperation des parametres pour STAT_NON_LINE - # ------------------------------------------------------- - - dNewton=NEWTON[0].cree_dict_valeurs(NEWTON[0].mc_liste) - for i in dNewton.keys(): - if dNewton[i]==None : del dNewton[i] - - dConvergence=CONVERGENCE[0].cree_dict_valeurs(CONVERGENCE[0].mc_liste) - for i in dConvergence.keys(): - if dConvergence[i]==None : del dConvergence[i] - - dSolveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste) - for i in dSolveur.keys(): - if dSolveur[i]==None : del dSolveur[i] - - if RECH_LINEAIRE: - dRech_lin=RECH_LINEAIRE[0].cree_dict_valeurs(RECH_LINEAIRE[0].mc_liste) - for i in dRech_lin.keys(): - if dRech_lin[i]==None : del dRech_lin[i] - else : - dRech_lin=None - - if SOLV_NON_LOCAL: - dSolv_nonloc=SOLV_NON_LOCAL[0].cree_dict_valeurs(SOLV_NON_LOCAL[0].mc_liste) - for i in dSolv_nonloc.keys(): - if dSolv_nonloc[i]==None : del dSolv_nonloc[i] - else : - dSolv_nonloc=None - - if LAGR_NON_LOCAL: - dLagr_nonloc=LAGR_NON_LOCAL[0].cree_dict_valeurs(LAGR_NON_LOCAL[0].mc_liste) - for i in dLagr_nonloc.keys(): - if dLagr_nonloc[i]==None : del dLagr_nonloc[i] - else : - dLagr_nonloc=None - - - - # 1.3 Creation des mots-cles pour les 3 AFFE_CHAR_MECA - # Recuperation des cables dans les concepts CABLE_BP - # et CABLE_BP_INACTIF - # ------------------------------------------------------ - if type(CABLE_BP) is not types.NoneType: - if type(CABLE_BP) is not types.TupleType: - CABLE_BP0 = CABLE_BP - CABLE_BP = [] - CABLE_BP.append ( CABLE_BP0 ) - - if type(CABLE_BP_INACTIF) is not types.NoneType: - if type(CABLE_BP_INACTIF) is not types.TupleType: - CABLE_BP_INACTIF0 = CABLE_BP_INACTIF - CABLE_BP_INACTIF = [] - CABLE_BP_INACTIF.append ( CABLE_BP_INACTIF0 ) - - motscles={} - motscles['RELA_CINE_BP']=[] - motscle2={} - motscle2['RELA_CINE_BP']=[] - motscle3={} - motscle3['RELA_CINE_BP']=[] - __GROUP_MA_A=[] - Result = [[None]*1] - for mcabl in CABLE_BP: - # Creation de mots-cles pour les AFFE_CHAR_MECA - motscles['RELA_CINE_BP'].append(_F(CABLE_BP=mcabl, - SIGM_BPEL = 'OUI', - RELA_CINE = 'NON',) ) - motscle2['RELA_CINE_BP'].append(_F(CABLE_BP=mcabl, - SIGM_BPEL = 'NON', - RELA_CINE = 'OUI',) ) - motscle3['RELA_CINE_BP'].append(_F(CABLE_BP=mcabl, - SIGM_BPEL = 'OUI', - RELA_CINE = 'OUI',) ) - - # Creation de __GROUP_MA_A : liste des noms des cables contenus - # dans chaque concept CABLE_BP = cables a activer - __TCAB = RECU_TABLE(CO=mcabl,NOM_TABLE='CABLE_BP'); - __nb = 0 - while 1: - try: - Result[__nb][0] = __TCAB['NOM_CABLE',__nb+1] - __CAB = __TCAB['NOM_CABLE',__nb+1] - if __nb == 0: - __GROUP_MA_A.append(__CAB) - else: - i = 0 - # enlève les doublons - for m in __GROUP_MA_A: - i=i+1 - if __CAB == m: - break - if i == len(__GROUP_MA_A): - __GROUP_MA_A.append(__CAB) - - __nb = __nb + 1 - Result.append([None]*1) - # Si on a lu toutes les valeurs alors on sort de la boucle - except KeyError: - break - - # Creation de __GROUP_MA_I : liste des noms des cables contenus - # dans chaque CABLE_BP_INACTIF - # __GROUP_MA_CABLE = liste des cables actifs et inactifs - Result = [[None]*1] - __GROUP_MA_I=[] - - if CABLE_BP_INACTIF: - for mcabl in CABLE_BP_INACTIF: - __TCA0 = RECU_TABLE(CO=mcabl,NOM_TABLE='CABLE_BP'); - __nb = 0 - while 1: - try: - Result[__nb][0] = __TCA0['NOM_CABLE',__nb+1] - __CA0 = __TCA0['NOM_CABLE',__nb+1] - if __nb == 0: - __GROUP_MA_I.append(__CA0) - else: - i = 0 - # enlève les doublons - for m in __GROUP_MA_I: - i=i+1 - if __CA0 == m: - break - if i == len(__GROUP_MA_I): - __GROUP_MA_I.append(__CA0) - - __nb = __nb + 1 - Result.append([None]*1) - # Si on a lu toutes les valeurs alors on sort de la boucle - except KeyError: - break - motscle6={} - motscle6['RELA_CINE_BP']=[] - for mcabl in CABLE_BP_INACTIF: - # Creation de mots-cles pour les AFFE_CHAR_MECA - motscle6['RELA_CINE_BP'].append(_F(CABLE_BP=mcabl, - SIGM_BPEL = 'NON', - RELA_CINE = 'OUI',) ) - - __GROUP_MA_CABLES = __GROUP_MA_A + __GROUP_MA_I - - - # 1.4 Creation des mots-clés facteurs COMP_INCR - # pour étape 2 (dComp_incr0) et étape 3 (dComp_incr1) - # ------------------------------------------------------ - - dComp_incr=[] - for j in COMP_INCR : - dComp_incr.append(j.cree_dict_valeurs(j.mc_liste)) - for i in dComp_incr[-1].keys(): - if dComp_incr[-1][i]==None : del dComp_incr[-1][i] - - dComp_incr0=copy.copy(dComp_incr) - dComp_incr1=copy.copy(dComp_incr) - - dComp_incr0.append(_F(RELATION='SANS',GROUP_MA=__GROUP_MA_CABLES) ) - if __GROUP_MA_I: - dComp_incr1.append(_F(RELATION='SANS',GROUP_MA=__GROUP_MA_I) ) - - - # 1.5 Modele contenant uniquement les cables de precontrainte - # --------------------------------------------------------- - - __MOD = string.ljust(MODELE.nom,8) - __MOD =__MOD+'.MODELE .NOMA ' - __LMAIL = aster.getvectjev(__MOD) - __MAIL = string.strip(__LMAIL[0]) - - objma=self.get_sd_avant_etape(__MAIL,self) - - __M_CA=AFFE_MODELE( MAILLAGE=objma, - AFFE =_F( GROUP_MA = __GROUP_MA_A, - PHENOMENE = 'MECANIQUE', - MODELISATION = 'BARRE') ) - - - # 1.6 Blocage de tous les noeuds des cables actifs - # -------------------------------------------------- - - _B_CA=AFFE_CHAR_MECA(MODELE=__M_CA, - DDL_IMPO= _F( GROUP_MA = __GROUP_MA_A, - DX = 0., - DY = 0., - DZ = 0.),) - - - # 1.7 Chargements concernant les cables - # ------------------------------------- - _C_CN=AFFE_CHAR_MECA(MODELE=__M_CA,**motscles) - _C_CA=AFFE_CHAR_MECA(MODELE=MODELE,**motscle2) - _C_CT=AFFE_CHAR_MECA(MODELE=MODELE,**motscle3) - if CABLE_BP_INACTIF: - _C_CI=AFFE_CHAR_MECA(MODELE=MODELE,**motscle6) - - - - # ------------------------------------------------------------- - # 2. CALCULS - # ------------------------------------------------------------ - - - #------------------------------------------------------------------- - # 2.1 Premiere etape : calcul sur le(s) cable(s) et - # recuperation des _F_CAs aux noeuds - # on travaile entre tmin et tmax - #------------------------------------------------------------------- - - __EV1=STAT_NON_LINE( - MODELE = __M_CA, - CHAM_MATER = CHAM_MATER, - CARA_ELEM = CARA_ELEM, - EXCIT =(_F(CHARGE = _B_CA), - _F(CHARGE = _C_CN),), - COMP_INCR =_F( RELATION = 'ELAS', - DEFORMATION = 'PETIT', - TOUT = 'OUI'), - INCREMENT =_F(LIST_INST = __LST0, - PRECISION = __prec), - SOLVEUR = dSolveur, - PARM_THETA = PARM_THETA, - INFO =INFO, - TITRE = TITRE, ) - - __EV1 = CALC_NO( reuse = __EV1, - RESULTAT = __EV1, - GROUP_MA = __GROUP_MA_A, - OPTION = 'FORC_NODA' ) - - __REA = CREA_CHAMP ( - TYPE_CHAM = 'NOEU_DEPL_R', - OPERATION = 'EXTR', - RESULTAT = __EV1, - NOM_CHAM = 'FORC_NODA', - INST = __TMAX); - - __REAC = CREA_CHAMP (TYPE_CHAM='NOEU_DEPL_R', - OPERATION = 'ASSE', - MODELE = MODELE, - ASSE= _F(GROUP_MA=__GROUP_MA_A, - CHAM_GD=__REA, - COEF_R = -1.), ) - - _F_CA=AFFE_CHAR_MECA(MODELE=__M_CA, - VECT_ASSE = __REAC ) - - - - #----------------------------------------------------------------------- - # 2.2 Deuxieme etape : application de la precontrainte sur le beton - # en desactivant les cables - #----------------------------------------------------------------------- - - # Regeneration des mots-cles EXCIT passés en argument de la macro - dExcit=[] - for j in EXCIT : - dExcit.append(j.cree_dict_valeurs(j.mc_liste)) - for i in dExcit[-1].keys(): - if dExcit[-1][i]==None : del dExcit[-1][i] - - if CABLE_BP_INACTIF: - dExcit.append(_F(CHARGE=_C_CI),) - - # Creation du mots-cle EXCIT pour le STAT_NON_LINE - dExcit1=copy.copy(dExcit) - dExcit1.append(_F(CHARGE=_C_CA),) - dExcit1.append(_F(CHARGE = _F_CA, - FONC_MULT=__FCT ),) - - RES=STAT_NON_LINE( - MODELE =MODELE, - CARA_ELEM =CARA_ELEM, - CHAM_MATER = CHAM_MATER, - COMP_INCR=dComp_incr0, - INCREMENT=dIncrement, - ETAT_INIT = dEtatInit, - NEWTON =dNewton, - CONVERGENCE=dConvergence, - RECH_LINEAIRE = dRech_lin, - SOLVEUR = dSolveur, - SOLV_NON_LOCAL = dSolv_nonloc, - LAGR_NON_LOCAL = dLagr_nonloc, - ARCHIVAGE = _F(INST = __TINT), - PARM_THETA = PARM_THETA, - INFO =INFO, - TITRE = TITRE, - EXCIT = dExcit1, - ) - - # Recuperation du dernier numero d'ordre pour pouvoir l'écraser dans RES - __dico2 = RES.LIST_VARI_ACCES() - __no = __dico2['NUME_ORDRE'][-1] - - - #----------------------------------------------------------------------- - # 2.2 Troisieme etape : on remet la tension dans les cables - #----------------------------------------------------------------------- - - # Creation du mots-cles EXCIT pour le STAT_NON_LINE - dExcit2=copy.copy(dExcit) - dExcit2.append(_F(CHARGE=_C_CT,) ) - - # Calcul sur un seul pas (de __TINT a __TMAX) - RES=STAT_NON_LINE( reuse = RES, - ETAT_INIT = _F(EVOL_NOLI =RES), - MODELE = MODELE, - CHAM_MATER = CHAM_MATER, - CARA_ELEM = CARA_ELEM, - COMP_INCR=dComp_incr1, - INCREMENT=_F(LIST_INST = __LST, - PRECISION = __prec), - NEWTON =dNewton, - RECH_LINEAIRE = dRech_lin, - CONVERGENCE=dConvergence, - SOLVEUR = dSolveur, - SOLV_NON_LOCAL = dSolv_nonloc, - LAGR_NON_LOCAL = dLagr_nonloc, - ARCHIVAGE = _F(NUME_INIT = __no, - DETR_NUME_SUIV = 'OUI' ), - PARM_THETA = PARM_THETA, - INFO =INFO, - TITRE = TITRE, - EXCIT =dExcit2, - ) - - return ier - diff --git a/Aster/Cata/cataSTA81/Macro/calc_table_ops.py b/Aster/Cata/cataSTA81/Macro/calc_table_ops.py deleted file mode 100644 index 0360d14f..00000000 --- a/Aster/Cata/cataSTA81/Macro/calc_table_ops.py +++ /dev/null @@ -1,177 +0,0 @@ -#@ MODIF calc_table_ops Macro DATE 14/11/2005 AUTEUR MCOURTOI M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -# RESPONSABLE MCOURTOI M.COURTOIS -from types import * -EnumTypes = (ListType, TupleType) - -def calc_table_ops(self, TABLE, FILTRE, EXTR, RENOMME, TRI, COMB, OPER, - INFO, **args): - """ - Macro CALC_TABLE permettant de faire des opérations sur une table - """ - import aster - - macro = 'CALC_TABLE' - from Accas import _F - from Utilitai.Utmess import UTMESS - from Utilitai import transpose - from Utilitai.Table import Table, merge - - ier = 0 - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # Le concept sortant (de type table_sdaster ou dérivé) est tab - self.DeclareOut('tabout', self.sd) - - # On importe les definitions des commandes a utiliser dans la macro - # Le nom de la variable doit etre obligatoirement le nom de la commande - CREA_TABLE = self.get_cmd('CREA_TABLE') - DETRUIRE = self.get_cmd('DETRUIRE') - - tab = TABLE.EXTR_TABLE() - - #---------------------------------------------- - # 1. Traitement du FILTRE - Filtre = [] - # format pour l'impression des filtres - form_filtre = '\nFILTRE -> NOM_PARA: %-16s CRIT_COMP: %-4s VALE: %s' - if FILTRE != None: - for Fi in FILTRE: - dF = Fi.cree_dict_valeurs(Fi.mc_liste) - for mc in dF.keys(): - if dF[mc] == None: - del dF[mc] - Filtre.append(dF) - - for Fi in Filtre: - col = getattr(tab, Fi['NOM_PARA']) - # peu importe le type - opts = [Fi[k] for k in ('VALE','VALE_I','VALE_C','VALE_K') if Fi.has_key(k)] - kargs = {} - for k in ('CRITERE','PRECISION'): - if Fi.has_key(k): - kargs[k] = Fi[k] - tab = tab & ( getattr(col, Fi['CRIT_COMP'])(*opts,**kargs) ) - # trace l'operation dans le titre - #if FORMAT in ('TABLEAU','ASTER'): - tab.titr += form_filtre % (Fi['NOM_PARA'], Fi['CRIT_COMP'], \ - ' '.join([str(v) for v in opts])) - - #---------------------------------------------- - # 2. Traitement de EXTR - if EXTR != None: - lpar = EXTR['NOM_PARA'] - if not type(lpar) in EnumTypes: - lpar = [lpar] - for p in lpar: - if not p in tab.para: - UTMESS('F', macro, 'Paramètre %s inexistant dans la table %s' % (p, TABLE.nom)) - tab = tab[EXTR['NOM_PARA']] - - #---------------------------------------------- - # 3. Traitement de RENOMME - if RENOMME != None: - for MCFi in RENOMME: - try: - tab.Renomme(*MCFi['NOM_PARA']) - except KeyError, msg: - UTMESS('F', macro, msg) - - #---------------------------------------------- - # 4. Traitement du TRI - if TRI != None: - tab.sort(CLES=TRI['NOM_PARA'], ORDRE=TRI['ORDRE']) - - #---------------------------------------------- - # 5. Traitement de COMB - if COMB != None: - tab2 = COMB['TABLE'].EXTR_TABLE() - opts = [tab, tab2] - if COMB['NOM_PARA']<>None: - lpar = COMB['NOM_PARA'] - if not type(lpar) in EnumTypes: - lpar = [lpar] - for p in lpar: - if not p in tab.para: - UTMESS('F', macro, 'Paramètre %s inexistant dans la table %s' % (p, TABLE.nom)) - if not p in tab2.para: - UTMESS('F', macro, 'Paramètre %s inexistant dans la table %s' % (p, COMB['TABLE'].nom)) - opts.append(lpar) - tab = merge(*opts) - - #---------------------------------------------- - # 6. Traitement de OPER - if OPER != None: - for MCFi in OPER: - if MCFi['NOM_PARA'] in tab.para : - UTMESS('F', macro, 'Le paramètre %s existe déjà dans la table %s' % (MCFi['NOM_PARA'], TABLE.nom)) - func = MCFi['FORMULE'] - tabpar = [] - for para in func.nompar : - if para not in tab.para : - UTMESS('F', macro, 'Le paramètre de la formule %s est inexistant dans la table %s' % (para, TABLE.nom)) -# i = tab.para.index(para) -# if tab.type[i] != 'R' : -# UTMESS('F', macro, 'Le paramètre %s doit etre réel dans la table %s' % (para, TABLE.nom)) - vals = getattr(tab,para).values() - tabpar.append(vals) - tabpar = transpose.transpose(tabpar) - vectval = [] - for lpar in tabpar: - # si un paramètre est absent, on ne peut pas évaluer la formule - if None in lpar: - vectval.append(None) - else: - vectval.append(func(*lpar)) - # ajout de la colonne dans la table - if INFO == 2: - aster.affiche('MESSAGE', 'Ajout de la colonne %s : %s' % (MCFi['NOM_PARA']+repr(vectval))+'\n') - tab[MCFi['NOM_PARA']] = vectval - - #---------------------------------------------- - # 99. Création de la table_sdaster résultat - # cas réentrant : il faut détruire l'ancienne table_sdaster - if self.sd.nom == TABLE.nom: - DETRUIRE(CONCEPT=_F(NOM=TABLE.nom,), INFO=1) - - dprod = tab.dict_CREA_TABLE() - if INFO == 2: - echo_mess = [] - echo_mess.append( '@-'*30+'\n' ) - echo_mess.append( tab ) - from pprint import pformat - echo_mess.append( pformat(dprod) ) - echo_mess.append( '@-'*30+'\n' ) - texte_final = ' '.join(echo_mess) - aster.affiche('MESSAGE', texte_final) - - # surcharge par le titre fourni - tit = args['TITRE'] - if tit != None: - if not type(tit) in EnumTypes: - tit = [tit] - dprod['TITRE'] = tuple(['%-80s' % lig for lig in tit]) - # type de la table de sortie à passer à CREA_TABLE - dprod['TYPE_TABLE'] = self.sd.__class__.__name__.upper() - tabout = CREA_TABLE(**dprod) - - return ier diff --git a/Aster/Cata/cataSTA81/Macro/defi_cable_bp_ops.py b/Aster/Cata/cataSTA81/Macro/defi_cable_bp_ops.py deleted file mode 100644 index 552fe5e0..00000000 --- a/Aster/Cata/cataSTA81/Macro/defi_cable_bp_ops.py +++ /dev/null @@ -1,310 +0,0 @@ -#@ MODIF defi_cable_bp_ops Macro DATE 05/09/2005 AUTEUR DURAND C.DURAND -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ASSIRE A.ASSIRE - -# =========================================================================== -# CORPS DE LA MACRO "DEFI_CABLE_BP" -# ------------------------------------- -# USAGE : -# Entrée : -# - MAILLAGE -# - MODELE -# - CABLE -# - CHAM_MATER -# - CARA_ELEM -# - GROUP_MA_BETON -# - DEFI_CABLE -# - TYPE_ANCRAGE -# - TENSION_INIT -# - RECUL_ANCRAGE -# - RELAXATION -# - CONE -# RAYON -# LONGUEUR -# PRESENT OUI ou NON deux fois -# - TITRE -# - INFO 1 / 2 -# -# =========================================================================== - - - -def defi_cable_bp_ops(self,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM,GROUP_MA_BETON, - DEFI_CABLE,TYPE_ANCRAGE,TENSION_INIT,RECUL_ANCRAGE, - RELAXATION,CONE,TITRE,INFO,**args): - - """ - Ecriture de la macro DEFI_CABLE_BP - """ - from Accas import _F - import aster,string - from Utilitai.Utmess import UTMESS - ier=0 - - # On importe les definitions des commandes a utiliser dans la macro - DEFI_GROUP = self.get_cmd('DEFI_GROUP') - IMPR_RESU = self.get_cmd('IMPR_RESU') - DEFI_CABLE_OP = self.get_cmd('DEFI_CABLE_OP') - RECU_TABLE = self.get_cmd('RECU_TABLE') - IMPR_TABLE = self.get_cmd('IMPR_TABLE') - IMPR_CO = self.get_cmd('IMPR_CO') - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # Le concept sortant (de type char_meca) est nomme CHCABLE dans - # le contexte de la macro - - self.DeclareOut('__DC',self.sd) - - # ---------------------------------------------------------------------------- # - # Début de la Macro : - - motscles={} - - # RECUPERATION DES INFOS DONNEES PAR LE MOT-CLE "CONE" - - if CONE: - dCONE=CONE[0].cree_dict_valeurs(CONE[0].mc_liste) - for i in dCONE.keys(): - if dCONE[i]==None : del dCONE[i] - - RAYON = dCONE['RAYON'] - LONGUEUR = dCONE['LONGUEUR'] - - motscles['CONE']=[] - motscles['CONE'].append( dCONE ) - - - # VERIFICATION QUE LE MAILLAGE EST COHERENT AVEC LE MODELE - - __MAIL = aster.getvectjev( string.ljust(MODELE.nom,8) + '.MODELE .NOMA ' ) - if string.ljust(MAILLAGE.nom,8) != __MAIL[0] : - echo_mess=[] - echo_mess.append( ' \n' ) - echo_mess.append( ' # ---------------------------------------------------------------------------\n' ) - echo_mess.append( ' # DEFI_CABLE_BP - Erreur : LE CONCEPT MAILLAGE RENSEIGNE NE CORRESPOND \n' ) - echo_mess.append( ' # PAS A CELUI UTILISE DANS LE MODELE ! \n' ) - echo_mess.append( ' # '+MAILLAGE.nom+' - '+__MAIL[0]+'\n' ) - echo_mess.append( ' # ---------------------------------------------------------------------------\n' ) - message=string.join(echo_mess) - UTMESS('F',message) - - - # DEFINITION DU NOM DES GROUP_NO - - __NOM = '_AN_' - __LGNO = MAILLAGE.LIST_GROUP_NO() - __LGN1 = [] - for i in __LGNO : - __LGN1.append( i[0][:len(__NOM)] ) - - __NB = __LGN1.count(__NOM) - -# FIN RECUPERATION DES INFOS DONNEES PAR LE MOT-CLE "CONE" - - - # RECUPERATION DES INFOS DONNEES PAR LE MOT-CLE "DEFI_CABLE" - - dDEFI_CABLE=[] - for j in DEFI_CABLE : - dDEFI_CABLE.append(j.cree_dict_valeurs(j.mc_liste)) - for i in dDEFI_CABLE[-1].keys(): - if dDEFI_CABLE[-1][i]==None : del dDEFI_CABLE[-1][i] - - - # BOUCLE SUR LES FACTEURS DU MOT-CLE "DEFI_CABLE" - - motscles['DEFI_CABLE']=[] - - for i in dDEFI_CABLE: - - # CAS OU L'ON A DEFINI LE MOT-CLE "CONE" - if CONE: - - # CREATION DU PREMIER TUNNEL - - if dCONE['PRESENT'][0] == 'OUI': - __NB = __NB + 1 - __NOM1 = __NOM + str( int(__NB) ) - - motscle2={} - motscle2['CREA_GROUP_NO']=[] - - if i.has_key('GROUP_MA') == 1: - __CAB = i['GROUP_MA'] - motscle2= {'CREA_GROUP_NO': [{'LONGUEUR': LONGUEUR, 'RAYON': RAYON, 'OPTION': 'TUNNEL', 'GROUP_MA': [ GROUP_MA_BETON, __CAB ], 'GROUP_MA_AXE': __CAB, 'NOM': __NOM1}]} - if i.has_key('MAILLE') == 1: - echo_mess=[] - echo_mess.append( ' \n' ) - echo_mess.append( ' # ---------------------------------------------------------------------------\n' ) - echo_mess.append( ' # DEFI_CABLE_BP - Erreur : MAILLE INTERDIT - UTILISER GROUP_MA \n' ) - echo_mess.append( ' # ---------------------------------------------------------------------------\n' ) - message=string.join(echo_mess) - UTMESS('F',message) - if i.has_key('GROUP_NO_ANCRAGE') == 1: - __PC1 = i['GROUP_NO_ANCRAGE'][0] - motscle2['CREA_GROUP_NO'][0]['GROUP_NO_ORIG'] = __PC1 - if i.has_key('NOEUD_ANCRAGE') == 1: - __PC1 = i['NOEUD_ANCRAGE'][0] - motscle2['CREA_GROUP_NO'][0]['NOEUD_ORIG'] = __PC1 - - - DEFI_GROUP( reuse=MAILLAGE, - MAILLAGE=MAILLAGE, - INFO=INFO, - ALARME='NON', - **motscle2 - ) ; - - # CREATION DU DEUXIEME TUNNEL - - if dCONE['PRESENT'][1] == 'OUI': - __NB = __NB + 1 - __NOM2 = __NOM + str( int(__NB) ) - - motscle2={} - motscle2['CREA_GROUP_NO']=[] - - if i.has_key('GROUP_MA') == 1: - __CAB = i['GROUP_MA'] - motscle2= {'CREA_GROUP_NO': [{'LONGUEUR': LONGUEUR, 'RAYON': RAYON, 'OPTION': 'TUNNEL', 'GROUP_MA': [ GROUP_MA_BETON, __CAB ], 'GROUP_MA_AXE': __CAB, 'NOM': __NOM2}]} - if i.has_key('MAILLE') == 1: - echo_mess=[] - echo_mess.append( ' \n' ) - echo_mess.append( ' # ---------------------------------------------------------------------------\n' ) - echo_mess.append( ' # DEFI_CABLE_BP - Erreur : MAILLE INTERDIT - UTILISER GROUP_MA \n' ) - echo_mess.append( ' # ---------------------------------------------------------------------------\n' ) - message=string.join(echo_mess) - UTMESS('F',message) - if i.has_key('GROUP_NO_ANCRAGE') == 1: - __PC1 = i['GROUP_NO_ANCRAGE'][1] - motscle2['CREA_GROUP_NO'][0]['GROUP_NO_ORIG'] = __PC1 - if i.has_key('NOEUD_ANCRAGE') == 1: - __PC1 = i['NOEUD_ANCRAGE'][1] - motscle2['CREA_GROUP_NO'][0]['NOEUD_ORIG'] = __PC1 - - DEFI_GROUP( reuse=MAILLAGE, - MAILLAGE=MAILLAGE, - INFO=INFO, - ALARME='NON', - **motscle2 - ) ; - - - # CREATION DES NOUVEAUX FACTEURS DU MOT-CLE "DEFI_CABLE" POUR DEFI_CABLE_BP - - if dCONE['PRESENT'][0] == 'OUI' and dCONE['PRESENT'][1] == 'OUI': - if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1: - motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], - GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], - GROUP_NO_FUT=( __NOM1,__NOM2, ), ), ) - if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1: - motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], - NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], - GROUP_NO_FUT=( __NOM1,__NOM2, ), ), ) - - if dCONE['PRESENT'][0] == 'OUI' and dCONE['PRESENT'][1] == 'NON': - if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1: - motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], - GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], - GROUP_NO_FUT=( __NOM1, ), ), ) - if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1: - motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], - NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], - GROUP_NO_FUT=( __NOM1, ), ), ) - - if dCONE['PRESENT'][0] == 'NON' and dCONE['PRESENT'][1] == 'OUI': - if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1: - motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], - GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], - GROUP_NO_FUT=( __NOM2, ), ), ) - if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1: - motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], - NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], - GROUP_NO_FUT=( __NOM2, ), ), ) - - if dCONE['PRESENT'][0] == 'NON' and dCONE['PRESENT'][1] == 'NON': - if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1: - motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], - GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], ), ) - if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1: - motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], - NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], ), ) - - - # CAS OU L'ON A PAS DEFINI LE MOT-CLE "CONE" - else: - if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1: - motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], - GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], ), ) - - if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1: - motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], - NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], ), ) - - if i.has_key('MAILLE') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1: - motscles['DEFI_CABLE'].append( _F(MAILLE=i['MAILLE'], - GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], ), ) - - if i.has_key('MAILLE') == 1 and i.has_key('NOEUD_ANCRAGE') == 1: - motscles['DEFI_CABLE'].append( _F(MAILLE=i['MAILLE'], - NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], ), ) - - -# FIN BOUCLE sur i in DEFI_CABLE - - - # LANCEMENT DE DEFI_CABLE_BP - - if RELAXATION: - dRelaxation=RELAXATION[0].cree_dict_valeurs(RELAXATION[0].mc_liste) - for i in dRelaxation.keys(): - if dRelaxation[i]==None : del dRelaxation[i] - - __DC=DEFI_CABLE_OP(MODELE=MODELE, - CHAM_MATER=CHAM_MATER, - CARA_ELEM=CARA_ELEM, - GROUP_MA_BETON=GROUP_MA_BETON, - TYPE_ANCRAGE=TYPE_ANCRAGE, - TENSION_INIT=TENSION_INIT, - RECUL_ANCRAGE=RECUL_ANCRAGE, - RELAXATION=dRelaxation, - INFO=INFO, - **motscles - ); - - else: - - __DC=DEFI_CABLE_OP(MODELE=MODELE, - CHAM_MATER=CHAM_MATER, - CARA_ELEM=CARA_ELEM, - GROUP_MA_BETON=GROUP_MA_BETON, - TYPE_ANCRAGE=TYPE_ANCRAGE, - TENSION_INIT=TENSION_INIT, - RECUL_ANCRAGE=RECUL_ANCRAGE, - INFO=INFO, - **motscles - ); - -# __TCAB = RECU_TABLE(CO=__DC,NOM_TABLE='CABLE_BP'); -# IMPR_TABLE(TABLE=__TCAB); - - return ier diff --git a/Aster/Cata/cataSTA81/Macro/defi_part_feti_ops.py b/Aster/Cata/cataSTA81/Macro/defi_part_feti_ops.py deleted file mode 100644 index 9e446613..00000000 --- a/Aster/Cata/cataSTA81/Macro/defi_part_feti_ops.py +++ /dev/null @@ -1,194 +0,0 @@ -#@ MODIF defi_part_feti_ops Macro DATE 30/08/2005 AUTEUR ASSIRE A.ASSIRE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ASSIRE A.ASSIRE - - -# =========================================================================== -# CORPS DE LA MACRO "DEFI_PART_FETI" -# ------------------------------------- -# USAGE : -# MAILLAGE maillage a partitionner -# MODELE modele (facultatif) -# NB_PART nb de sous-domaines -# EXCIT liste des chargements -# METHODE PMETIS, KMETIS ou AUTRE -# LOGICIEL si AUTRE alors on attend un chemin complet vers executable -# NOM_GROUP_MA Un nom de base pour les group_ma contenant les SD -# INFO 1,2 -# -# =========================================================================== -# script PYTHON : lancement de DEFI_PART_PA_OPS et de DEFI_PART_OPS - - -def defi_part_feti_ops(self,NB_PART,METHODE,TRAITER_BORDS,NOM_GROUP_MA,CORRECTION_CONNEX,INFO,**args): - - import aster, string, sys - - from Accas import _F - from Noyau.N_utils import AsType - - from Utilitai import partition - - # DEBUT DE LA MACRO - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - ier=0 - - # On importe les definitions des commandes a utiliser dans la macro - DEFI_PART_OPS = self.get_cmd('DEFI_PART_OPS') - INFO_EXEC_ASTER = self.get_cmd('INFO_EXEC_ASTER') - DEFI_FICHIER = self.get_cmd('DEFI_FICHIER') - DETRUIRE = self.get_cmd('DETRUIRE') - DEFI_PART_PA_OPS = self.get_cmd('DEFI_PART_PA_OPS') - - nompro='DEFI_PART_FETI' - - # Maillage - if args.has_key('MODELE'): - if args['MODELE'] != None: - __MOD = string.ljust(args['MODELE'].nom,8) - __MOD =__MOD+'.MODELE .NOMA ' - __LMAIL = aster.getvectjev(__MOD) - __MAIL = string.strip(__LMAIL[0]) - MAILLAGE=self.get_sd_avant_etape(__MAIL,self) - else: - MAILLAGE=args['MAILLAGE'] - - # Nom des GROUP_MA générés - NOM_GROUP_MA = string.strip(NOM_GROUP_MA) - - # Test sur le nombre de caractères de NOM_GROUP_MA - if ( len(NOM_GROUP_MA)+len(str(NB_PART)) > 7 ): - ln=7-len(str(NB_PART)) - UTMESS('F', nompro, 'Afin de pouvoir générer les GROUP_MA, réduisez le nombre '\ - 'de caractères de NOM_GROUP_MA à un maximum de : %i' %ln) - - # Verification que des GROUP_MA ne portent pas deja les memes noms - _lst = [] - for i in MAILLAGE.LIST_GROUP_MA(): - _lst.append( string.strip(i[0]) ) - for i in range(NB_PART): - if ( NOM_GROUP_MA+str(i) in _lst ): - ngrma=NOM_GROUP_MA+str(i) - UTMESS('F', nompro, "Il existe déjà un GROUP_MA nommé : %s" %ngrma) - if args.has_key('NOM_GROUP_MA_BORD') : - if args['NOM_GROUP_MA_BORD'] != None : - if ( args['NOM_GROUP_MA_BORD']+str(i) in _lst ): - ngrma=args['NOM_GROUP_MA_BORD']+str(i) - UTMESS('F', nompro, "Il existe déjà un GROUP_MA nommé : %s" %ngrma) - - # Le concept sortant dans le contexte de la macro - self.DeclareOut('_SDFETI',self.sd) - - # Debut : - - # Regeneration des mots-cles GROUPAGE passés en argument de la macro - motscle1= {} - if args.has_key('GROUPAGE'): - if args['GROUPAGE'] != None : - dGroup=[] - for j in args['GROUPAGE']: - dGroup.append(j.cree_dict_valeurs(j.mc_liste)) - for i in dGroup[-1].keys(): - if dGroup[-1][i]==None : del dGroup[-1][i] - motscle1['GROUPAGE']=dGroup - - # Regeneration des mots-cles POIDS_MAILLES passés en argument de la macro - if args.has_key('POIDS_MAILLES'): - if args['POIDS_MAILLES'] != None : - dEval=[] - for j in args['POIDS_MAILLES']: - dEval.append(j.cree_dict_valeurs(j.mc_liste)) - for i in dEval[-1].keys(): - if dEval[-1][i]==None : del dEval[-1][i] - motscle1['POIDS_MAILLES']=dEval - - # Y a t'il présence du mot clé : NOM_GROUP_MA_BORD - if args.has_key('GROUP_MA_BORD'): - if args['GROUP_MA_BORD'] != None : - motscle1['GROUP_MA_BORD']=args['GROUP_MA_BORD'] - - # Y a t'il présence du mot clé : LOGICIEL - if args.has_key('LOGICIEL'): - if args['LOGICIEL'] != None : - motscle1['LOGICIEL']=args['LOGICIEL'] - - # Y a t'il présence du mot clé : MODELE - if args.has_key('MODELE'): - if args['MODELE'] != None : - motscle1['MODELE']=args['MODELE'] - - # Partitionnement - _SDFETI=DEFI_PART_PA_OPS( - MAILLAGE=MAILLAGE, - INFO=INFO, - METHODE=METHODE, - NB_PART=NB_PART, - CORRECTION_CONNEX=CORRECTION_CONNEX, - TRAITER_BORDS=TRAITER_BORDS, - NOM_GROUP_MA=NOM_GROUP_MA, - **motscle1 - ); - - # Liste des groupes de mailles du maillage - _LST_GMA = MAILLAGE.LIST_GROUP_MA() - _LST_GMA = map(lambda x: x[0], _LST_GMA) - - # Creation de la SDFETI - if args.has_key('MODELE'): - if args['MODELE'] != None : - _tmp = [] - for i in range(NB_PART): - txt = { 'GROUP_MA': NOM_GROUP_MA + str(i) } - _tmp.append( txt ) - - if args.has_key('NOM_GROUP_MA_BORD') : - if args['NOM_GROUP_MA_BORD'] != None : - if ( args['NOM_GROUP_MA_BORD']+str(i) in _LST_GMA ): - txt['GROUP_MA_BORD'] = string.strip(args['NOM_GROUP_MA_BORD']) + str(i) - _tmp.append( txt ) - - motscle2= {'DEFI': _tmp } - - # Regeneration des mots-cles EXCIT passés en argument de la macro - if args.has_key('EXCIT'): - if args['EXCIT'] != None : - dExcit=[] - for j in args['EXCIT']: - dExcit.append(j.cree_dict_valeurs(j.mc_liste)) - for i in dExcit[-1].keys(): - if dExcit[-1][i]==None : del dExcit[-1][i] - motscle2['EXCIT']=dExcit - - _SDFETI=DEFI_PART_OPS(NOM='SDD', - MODELE=args['MODELE'], - INFO=1, - **motscle2 - ); - else: - _SDFETI=None - - else: - _SDFETI=None - - - # Fin : - - return ier diff --git a/Aster/Cata/cataSTA81/Macro/fiabilite_fichier.py b/Aster/Cata/cataSTA81/Macro/fiabilite_fichier.py deleted file mode 100644 index 1462a5ec..00000000 --- a/Aster/Cata/cataSTA81/Macro/fiabilite_fichier.py +++ /dev/null @@ -1,335 +0,0 @@ -#@ MODIF fiabilite_fichier Macro DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GNICOLAS G.NICOLAS -# -class fiabilite_fichier : -# - """ Classe des fichiers de données des logiciels fiabilistes - Cette classe a été mise au point pour le couplage entre - Code_ASTER et MEFISTO, mais pourrait servir ailleurs. - """ -# -# -#==== -# 1. Le constructeur -#==== -# -# - def __init__ ( self, jdc, Rep_Calc_LOGICIEL_global, nomfic, info = 1 ) : -# -# jdc : le jeu de commandes en cours de traitement -# - self.jdc = jdc -# -# Rep_Calc_LOGICIEL_global : le répertoire d'exécution du logiciel de fiabilité -# - self.Rep_Calc_LOGICIEL_global = Rep_Calc_LOGICIEL_global -# -# nomfic : nom local du fichier à créer -# - self.nomfic = nomfic -# -# messages_erreur : messages d'erreur -# - self.messages_erreur = { 0 : "Tout va bien", - 1 : "==> Ce fichier est inconnu.", - 2 : "==> Ce type d'ouverture est inconnu.", - 10 : "==> Problème à l'ouverture.", - 11 : "==> Problème à la fermeture.", - 20 : "==> Problème à l'impression." } -# -# info : niveau d'information au sens ASTER -# - self.info = info -# -# ligne_sep : ligne de séparation -# - self.ligne_sep = "=========================================================" - self.ligne_commentaire = "#" + self.ligne_sep + "\n" -# - if info >= 2 : - print "Création du fichier : "+self.nomfic -# -#==== -# 2. Ouverture du fichier -#==== -# - def Ouvre_Fichier ( self, type_ouvr ) : -# -# 2.0. ==> Préalables -# - """ - Ouvre le fichier en lecture ou écriture. - 0 : tout s'est bien passé - 1 : on veut ouvrir en lecture un fichier qui n'existe pas - 2 : le mode d'ouverture est inconnu - 10 : impossible d'ouvrir - """ -# - import os -# -# 2.1. ==> Le nom global du fichier -# - self.nomfic_global = os.path.join(self.Rep_Calc_LOGICIEL_global,self.nomfic) -# -# 2.2. ==> Controles -# - erreur = 0 -# - if ( type_ouvr == "w" or type_ouvr == "r" ) : -# - if ( type_ouvr == "r" ) : - if not os.path.isfile(self.nomfic_global) : - erreur = 1 - - else : -# - self.jdc.cr.warn("Type d'ouverture : "+type_ouvr) - erreur = 2 -# -# 2.3. ==> Ouverture vraie -# - if not erreur : -# - erreur_partiel = [0] - try : - self.fic = open( self.nomfic_global, type_ouvr ) - except os.error,erreur_partiel : - self.jdc.cr.warn("Code d'erreur de open : " + str(erreur_partiel[0]) + " : " + erreur_partiel[1]) - erreur = 10 -# -# 2.4. ==> C'est fini -# - if erreur : - self.jdc.cr.warn("Fichier : "+self.nomfic) - self.jdc.cr.warn(self.messages_erreur[erreur]) -# - return erreur -# -#==== -# 3. Fermeture du fichier -#==== -# - def Ferme_Fichier ( self ) : -# -# 3.0. ==> Préalables -# - """ - Ferme le fichier. - 0 : tout s'est bien passé - 20 : impossible d'imprimer - """ -# - import os -# -# 3.1. ==> Controles -# - erreur = 0 -# - if not os.path.isfile(self.nomfic_global) : - erreur = 1 -# -# 3.2. ==> Fermeture vraie -# - if not erreur : -# - erreur_partiel = [0] - try : - self.fic.close( ) - except os.error,erreur_partiel : - self.jdc.cr.warn("Code d'erreur de close : " + str(erreur_partiel[0]) + " : " + erreur_partiel[1]) - erreur = 11 -# -# 3.3. ==> C'est fini -# - if erreur : - self.jdc.cr.warn("Fichier : "+self.nomfic) - self.jdc.cr.warn(self.messages_erreur[erreur]) -# - return erreur -# -#==== -# 4. Impression du contenu du fichier -#==== -# - def Imprime_Fichier ( self ) : -# -# 4.0. ==> Préalables -# - """ - Imprime le fichier. - 0 : tout s'est bien passé - 20 : impossible d'imprimer - """ -# -# 4.1. ==> Lecture -# - erreur = self.Ouvre_Fichier ( "r" ) - if not erreur : - les_lignes = self.fic.readlines() - erreur = self.Ferme_Fichier ( ) -# -# 4.2. ==> Impression -# - if not erreur : -# - print "\n"+self.ligne_sep - print "Contenu du fichier " + self.nomfic," :" - for ligne in les_lignes : - print ligne[:-1] - print self.ligne_sep+"\n" -# -# 4.4. ==> C'est fini -# - if erreur : - erreur = 20 - self.jdc.cr.warn("Fichier : "+self.nomfic) - self.jdc.cr.warn(self.messages_erreur[erreur]) -# - return erreur -# -#==== -# 5. Ecriture de lignes de commentaires -#==== -# - def Ecrit_Commentaires ( self, comm ) : -# - """ - Liste = commentaires à écrire - Soit c'est une chaine qu'on écrit sur une ligne ; - Soit c'est une liste, qu'on écrit à raison de une par ligne. - Remarque : cela suppose que le fichier est ouvert en écriture - """ -# - if type(comm) == type([ ]) : - Liste = comm - else : - Liste = [comm] -# - for ligne in Liste : - self.fic.write("# "+str(ligne)+"\n") -# -#==== -# 6. Ecriture de lignes de titres -#==== -# - def Ecrit_Titre ( self, comm ) : -# - """ - Liste = commentaires à écrire, encadrés par des séparateurs - Soit c'est une chaine qu'on écrit sur une ligne ; - Soit c'est une liste, qu'on écrit à raison de une par ligne. - Remarque : cela suppose que le fichier est ouvert en écriture - """ -# - self.fic.write(self.ligne_commentaire) - self.Ecrit_Commentaires(comm) - self.fic.write(self.ligne_commentaire) -# -#==== -# 7. Ecriture d'une ligne de valeurs -#==== -# - def Ecrit_Valeurs ( self, val ) : -# - """ - Liste = liste des valeurs à écrire, représenatn une ligne - Remarque : cela suppose que le fichier est ouvert en écriture - """ -# - if type(val) == type([ ]) : - ligne = " " - for aux in val : - ligne = ligne + " " + str(aux) - else : - ligne = str(val) -# - self.fic.write(ligne+"\n") -# -# -#======================================================================================= -#======================================================================================= - - -# -# -if __name__ == "__main__" : -# - import os - import sys - import tempfile -# -# 1. ==> Préalable -# - Rep_Calc_LOGICIEL_global = tempfile.mktemp() - os.mkdir(Rep_Calc_LOGICIEL_global) -# - jdc = None -# -# 2. ==> Création de la classe -# - nomfic = "dataGrad" - fic = fiabilite_fichier ( jdc, Rep_Calc_LOGICIEL_global , nomfic ) -# -# 3. ==> Ouverture du fichier -# - erreur = fic.Ouvre_Fichier ( "w" ) -# -# 4. ==> Remplissage du fichier -# - if not erreur : - aux = ["Titre 1", "Titre 2"] - fic.Ecrit_Titre (aux) - aux = ["Ligne 1", "Ligne 2"] - fic.Ecrit_Commentaires (aux) - aux = "Ligne en forme de chaine" - fic.Ecrit_Commentaires (aux) - aux = 1789.1792 - fic.Ecrit_Commentaires (aux) - aux = [1, 0.0] - fic.Ecrit_Valeurs (aux) - aux = 1958. - fic.Ecrit_Valeurs (aux) -# -# 5. ==> Fermeture du fichier -# - if not erreur : - erreur = fic.Ferme_Fichier ( ) -# -# 4. ==> Impression du fichier -# - if not erreur : - erreur = fic.Imprime_Fichier ( ) -# -# 4. ==> La fin -# - Liste = os.listdir(Rep_Calc_LOGICIEL_global) -# - for nomfic in Liste : - fic_total = os.path.join(Rep_Calc_LOGICIEL_global,nomfic) - os.chmod (fic_total,0755) - os.remove (fic_total) - os.rmdir (Rep_Calc_LOGICIEL_global) -# - if erreur : - mess = "Erreur " + str(erreur) - else : - mess = "Fin normale." - sys.exit(mess) diff --git a/Aster/Cata/cataSTA81/Macro/fiabilite_mefisto.py b/Aster/Cata/cataSTA81/Macro/fiabilite_mefisto.py deleted file mode 100644 index b74d7e54..00000000 --- a/Aster/Cata/cataSTA81/Macro/fiabilite_mefisto.py +++ /dev/null @@ -1,461 +0,0 @@ -#@ MODIF fiabilite_mefisto Macro DATE 04/10/2005 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - -# RESPONSABLE GNICOLAS G.NICOLAS -# -def fiabilite_mefisto ( self, Rep_Calc_LOGICIEL_global, - INFO, VERSION, - SEUIL, SEUIL_TYPE, - VARIABLE, - valeurs_lois, - **args ) : -# -# valeurs_lois est un dictionnaire indexé sur les variables. -# Chaque case, valeurs_lois[m], est un dictionnaire contenant : -# d["v_moy_physique"] = valeur moyenne physique -# d["v_moy_loi"] = valeur moyenne de la loi -# d["v_min_loi"] = valeur minimale de la loi -# d["v_max_loi"] = valeur maximale de la loi -# d["sigma_loi"] = ecart type de la loi -# -# args est le dictionnaire des arguments optionnels -# args.keys() est la liste des mots-clés -# args.keys()[0] est la premiere valeur de cette liste -# args.keys()[1:] est la liste des valeurs suivantes dans cette liste -# args.keys(mot_cle) représente le contenu de la variable mot_cle dans la macro appelante. -# - """ Ecriture des données spécifiques à MEFISTO. """ -# - from Macro import fiabilite_fichier - import os - import string - import Numeric - from Utilitai.Utmess import UTMESS -# -#____________________________________________________________________ -# -# 1. Préalables -#____________________________________________________________________ -# -# - messages_erreur = { 0 : "Tout va bien", - 1 : "Fichier inconnu.", - 2 : "Problème d'ouverture de fichier.", - 10 : "Problème d'ouverture de fichier.", - 11 : "Problème de fermeture de fichier.", - 20 : "Problème d'impression de fichier.", - 50 : "Donnée inacceptable.", - 100 : "Erreur." } -# - trad_oui_non = { "OUI" : 1, - "NON" : 0 } -# - erreur = 0 -# - while not erreur : -# -#____________________________________________________________________ -# -# 2. Les fichiers pour le logiciel de fiabilité -# Ils sont créés dans le répertoire d'exécution du logiciel de fiabilité, avec leurs noms officiels -#____________________________________________________________________ -# -# - fic_dataMenu = "dataMenu" - fic_dataStoch = "dataStoch" - fic_dataNum = "dataNum" - fic_dataGrad = "dataGrad" -# -#____________________________________________________________________ -# -# 3. Construction du fichier 'dataMenu' -#____________________________________________________________________ -# -# 3.1 ==> Ouverture du fichier -# - f_menu = fiabilite_fichier.fiabilite_fichier ( self, Rep_Calc_LOGICIEL_global, fic_dataMenu, INFO ) - erreur = f_menu.Ouvre_Fichier ( "w" ) - if erreur : - break -# -# 3.2 ==> Ecriture des données nécessaires -# - f_menu.Ecrit_Titre ("MENU DU PROGRAMME MEFISTO") - f_menu.Ecrit_Titre ("1 <=> OUI et 0 <=> NON (entiers)") -# - f_menu.Ecrit_Titre ("Recherche du point de conception") - aux = trad_oui_non[args["RECH_PT_CONCEPT"]] - f_menu.Ecrit_Valeurs (aux) -# - f_menu.Ecrit_Titre ("First Order Reliability Analyses") - aux = trad_oui_non[args["METHODE_FORM"]] - f_menu.Ecrit_Valeurs (aux) -# - f_menu.Ecrit_Titre ("Second Order Reliability Analyses") - aux = trad_oui_non[args["METHODE_SORM"]] - f_menu.Ecrit_Valeurs (aux) -# - f_menu.Ecrit_Titre ("Importance Sampling Analyses") - aux = trad_oui_non[args["TIRAGE_IMPORTANCE"]] - f_menu.Ecrit_Valeurs (aux) -# - f_menu.Ecrit_Titre ("Optimality Test (1) : Hessian Test") - aux = trad_oui_non[args["T_HESSIEN"]] - f_menu.Ecrit_Valeurs (aux) -# - f_menu.Ecrit_Titre ("Optimality Test (2) : Sphere Test") - aux = trad_oui_non[args["T_SPHERE"]] - f_menu.Ecrit_Valeurs (aux) -# - f_menu.Ecrit_Titre ("Optimality Test (3) : Strong Max Test") - aux = trad_oui_non[args["T_MAXIMUM_FORT"]] - f_menu.Ecrit_Valeurs (aux) -# - f_menu.Ecrit_Titre ("Experiment Plan") - aux = trad_oui_non[args["PLAN_EXPERIENCE"]] - f_menu.Ecrit_Valeurs (aux) -# - f_menu.Ecrit_Titre ("Polynomial Taylor Approximation (order 2)") - aux = trad_oui_non[args["POLYNOME_TAYLOR"]] - f_menu.Ecrit_Valeurs (aux) -# -# 3.3 ==> Fermeture du fichier -# - erreur = f_menu.Ferme_Fichier ( ) - if erreur : - break -# - if INFO >= 2 : - erreur = f_menu.Imprime_Fichier ( ) - if erreur : - break -# -#____________________________________________________________________ -# -# 4. Construction du fichier "dataStoch" -#____________________________________________________________________ -# -# 4.1 ==> Ouverture du fichier -# - f_stoch = fiabilite_fichier.fiabilite_fichier ( self, Rep_Calc_LOGICIEL_global, fic_dataStoch, INFO ) - erreur = f_stoch.Ouvre_Fichier ( "w" ) - if erreur : - break -# -# 4.2 ==> Nombre d'occurence de VARIABLE -# - nb_occu_variable = len(VARIABLE) -# -# 4.3 ==> Ecriture des données nécessaires -# - f_stoch.Ecrit_Titre ("Code name") - aux=string.replace(VERSION,"_",".") - aux=string.replace(aux,"N","n") - aux=string.replace(aux,"V","v") - f_stoch.Ecrit_Valeurs ( "aster_" + aux ) -# - aux = [ "Gradients evaluated by the code" ] - aux.append("1 : Au moins 1 ; 0 : aucun") - f_stoch.Ecrit_Titre (aux) - gradient = 0 - for m in VARIABLE : - if m["GRADIENT"] == "OUI" : gradient = 1 - f_stoch.Ecrit_Valeurs (gradient) -# - f_stoch.Ecrit_Titre ("Variates number") - f_stoch.Ecrit_Valeurs ( nb_occu_variable ) -# - aux = [ "Stochastic Variates" ] - aux.append("1: Uniforme (min, max)") - aux.append("2: Normal (mean, std dev)") - aux.append("3: LogNormal (mean, std dev, min)") - aux.append("4: Normal Truncated (mean, std dev, min, max)") - f_stoch.Ecrit_Titre (aux) -# - for m in VARIABLE : -# - d = valeurs_lois[m] - if m["LOI"] == "UNIFORME" : - f_stoch.Ecrit_Valeurs ( [ m["NOM"], 1 , d["v_min_loi"] , d["v_max_loi"] ] ) - elif m["LOI"] == "NORMALE" : - f_stoch.Ecrit_Valeurs ( [ m["NOM"], 2 , d["v_moy_loi"] , d["sigma_loi"] ] ) - elif m["LOI"] == "LOGNORMALE" : - f_stoch.Ecrit_Valeurs ( [ m["NOM"], 3 , d["v_moy_loi"] , d["sigma_loi"] , d["v_min_loi"] ] ) - elif m["LOI"] == "NORMALE_TRONQUEE" : - f_stoch.Ecrit_Valeurs ( [ m["NOM"], 4 , d["v_moy_loi"] , d["sigma_loi"] , d["v_min_loi"] , d["v_max_loi"] ] ) - else : - erreur = 50 -# - if erreur : - break -# - f_stoch.Ecrit_Titre ("Initial Points") - for m in VARIABLE : - if m["POINT_INI"] is None : - aux = valeurs_lois[m]["v_moy_physique"] - else : - aux = m["POINT_INI"] - f_stoch.Ecrit_Valeurs ( aux ) -# - f_stoch.Ecrit_Titre ("Reference Points") - for m in VARIABLE : - if m["POINT_REF"] is None : - aux = valeurs_lois[m]["v_moy_physique"] - else : - aux = m["POINT_REF"] - f_stoch.Ecrit_Valeurs ( aux ) -# - f_stoch.Ecrit_Titre ("Design Points") - for m in VARIABLE : - if args["RECH_PT_CONCEPT"] == "OUI" : - aux = 1792. - elif m["POINT_CONCEPT"] is None : - aux = valeurs_lois[m]["v_moy_physique"] - else : - aux = m["POINT_CONCEPT"] - f_stoch.Ecrit_Valeurs ( aux ) -# - f_stoch.Ecrit_Titre ("Correlation matrix fictive") -# if args.has_key('MATRICE'): - if args["MATRICE"] != None: - if len(args["MATRICE"]) != nb_occu_variable**2: - UTMESS('F','FIABILITE_MEPHISTO',' LE NOMBRE D ELEMENTS' - +' DU MOT CLE MATRICE DOIT ETRE EGAL A : ' - +str(nb_occu_variable**2)) - for m in range(nb_occu_variable) : - aux = [ ] - for n in range(nb_occu_variable) : - aux.append(args["MATRICE"][n + m*nb_occu_variable]) - f_stoch.Ecrit_Valeurs ( aux ) - else: - aux=Numeric.identity(nb_occu_variable) - aux=Numeric.concatenate(aux) - aux=aux.tolist() - f_stoch.Ecrit_Valeurs ( aux ) -# - f_stoch.Ecrit_Titre ("Parameter threshold value") - if SEUIL_TYPE == "MAXIMUM" : - aux = SEUIL - else : - aux = -SEUIL - f_stoch.Ecrit_Valeurs ( aux ) -# -# 4.4 ==> Fermeture du fichier -# - erreur = f_stoch.Ferme_Fichier ( ) - if erreur : - break -# - if INFO >= 2 : - erreur = f_stoch.Imprime_Fichier ( ) - if erreur : - break -# -#____________________________________________________________________ -# -# 5. Construction du fichier 'dataNum' -#____________________________________________________________________ -# -# 5.1 ==> Ouverture du fichier -# - f_num = fiabilite_fichier.fiabilite_fichier ( self, Rep_Calc_LOGICIEL_global, fic_dataNum, INFO ) - erreur = f_num.Ouvre_Fichier ( "w" ) - if erreur : - break -# -# 5.2 ==> Ecriture des données nécessaires -# - f_num.Ecrit_Titre ("Parameters : EpsU, EpsG, Tau, Omega, iterMax") - if args["RECH_PT_CONCEPT"] == "OUI" : - f_num.Ecrit_Valeurs (args["EPSILON_U"]) - f_num.Ecrit_Valeurs (args["EPSILON_G"]) - f_num.Ecrit_Valeurs (args["TAU"]) - f_num.Ecrit_Valeurs (args["OMEGA"]) - f_num.Ecrit_Valeurs (args["ITER_MAX"]) - else : - aux = 0.1848 - for k in range(5) : - f_num.Ecrit_Valeurs (aux) -# - f_num.Ecrit_Titre ("Parameters : hgrad, hhess") - f_num.Ecrit_Valeurs (args["HGRAD"]) - f_num.Ecrit_Valeurs (args["HHESS"]) -# - aux = [ "Parameter Optimality Test(sphere)" ] - aux.append("1: Parametric Method (Point Number in each direction)") - aux.append("2: Gaussian Method (Total Point Number)") - aux.append("3: Rejection Method (Total Point Number)") - f_num.Ecrit_Titre (aux) -# - if args["T_SPHERE"] == "OUI" : -# - if args["METHODE_TEST"] == "PARAMETRIQUE" : - aux1 = 1 - elif args["METHODE_TEST"] == "GAUSSIENNE" : - aux1 = 2 - elif args["METHODE_TEST"] == "REJECTION" : - aux1 = 3 - else : - self.cr.warn("METHODE DE TEST : "+args["METHODE_TEST"]) - erreur = 50 - break -# - aux2 = args["NB_POINT"] -# - else : -# -# remarque : il faut mettre une valeur plausible en aux1, sinon plantage violent ... - aux1 = 1 - aux2 = 1789 -# - f_num.Ecrit_Valeurs ( [ aux1 , aux2 ] ) -# - aux = [ "Parameters : alpha, beta" ] - aux.append("alpha: common net") - aux.append("beta: extreme net") - f_num.Ecrit_Titre (aux) - if args["PLAN_EXPERIENCE"] == "OUI" : - aux1 = args["ALPHA"] - aux2 = args["BETA"] - else : - aux1 = 1789.0 - aux2 = 1789.0 - f_num.Ecrit_Valeurs ( aux1 ) - f_num.Ecrit_Valeurs ( aux2 ) -# - f_num.Ecrit_Titre ("Parameters Strong Max Test : cosLim, dProb") - if args["T_MAXIMUM_FORT"] == "OUI" : - aux1 = args["COS_LIM"] - aux2 = args["DPROB"] - else : - aux1 = 0.1789 - aux2 = 0.1789 - f_num.Ecrit_Valeurs ( aux1 ) - f_num.Ecrit_Valeurs ( aux2 ) -# - f_num.Ecrit_Titre ("Parameter Importance Samplings : Simulation Number") - if args["TIRAGE_IMPORTANCE"] == "OUI" : - aux = args["NB_SIMULATION"] - else : - aux = 1945 - f_num.Ecrit_Valeurs ( aux ) -# -# 5.3 ==> Fermeture du fichier -# - erreur = f_num.Ferme_Fichier ( ) - if erreur : - break -# - if INFO >= 2 : - erreur = f_num.Imprime_Fichier ( ) - if erreur : - break -# -#____________________________________________________________________ -# -# 6. Construction du fichier 'dataGrad' -#____________________________________________________________________ -# -# 6.1 ==> Création du fichier -# - f_grad = fiabilite_fichier.fiabilite_fichier ( self, Rep_Calc_LOGICIEL_global, fic_dataGrad, INFO ) - erreur = f_grad.Ouvre_Fichier ( "w" ) - if erreur : - break -# -# 6.2 ==> Ecriture des données nécessaires -# - f_grad.Ecrit_Titre ("Commentaires") -# - for m in VARIABLE : - f_grad.Ecrit_Commentaires (m["NOM"]) - if m["GRADIENT"] == "OUI" : - gradient = 1 - increment = 0.0 - else : - gradient = 0 - increment = m["INCREMENT"] - aux = [gradient,increment] - f_grad.Ecrit_Valeurs (aux) -# -# 6.3 ==> Fermeture du fichier -# - erreur = f_grad.Ferme_Fichier ( ) - if erreur : - break -# - if INFO >= 2 : - erreur = f_grad.Imprime_Fichier ( ) - if erreur : - break -# -#____________________________________________________________________ -# -# 7. C'est fini ! -#____________________________________________________________________ -# - break -# - if erreur : - if not messages_erreur.has_key(erreur) : - erreur = 100 - self.cr.warn(messages_erreur[erreur]) - erreur = 11 -# - return erreur -# -########################## Fin de la fonction################################## -# -########################## Auto-test################################## -# -if __name__ == "__main__" : -# - import os - import sys - import tempfile -# - Rep_Calc_LOGICIEL_global = tempfile.mktemp() - os.mkdir(Rep_Calc_LOGICIEL_global) -# - INFO = 2 - VERSION = "V3_2" - SEUIL = 1789. - SEUIL_TYPE = "MAXIMUM" - VARIABLE = [] - args = {} - valeurs = {} -# - erreur = fiabilite_mefisto ( None, Rep_Calc_LOGICIEL_global, - INFO, VERSION, - SEUIL, SEUIL_TYPE, - VARIABLE, - valeurs, - **args ) -### print "Erreur = ", erreur - Liste = os.listdir(Rep_Calc_LOGICIEL_global) -# - for nomfic in Liste : - fic_total = os.path.join(Rep_Calc_LOGICIEL_global,nomfic) - os.chmod (fic_total,0755) - os.remove (fic_total) - os.rmdir (Rep_Calc_LOGICIEL_global) -# - sys.exit("blabla") diff --git a/Aster/Cata/cataSTA81/Macro/impr_fonction_ops.py b/Aster/Cata/cataSTA81/Macro/impr_fonction_ops.py deleted file mode 100644 index a05fff1c..00000000 --- a/Aster/Cata/cataSTA81/Macro/impr_fonction_ops.py +++ /dev/null @@ -1,402 +0,0 @@ -#@ MODIF impr_fonction_ops Macro DATE 05/09/2005 AUTEUR DURAND C.DURAND -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -# RESPONSABLE MCOURTOI M.COURTOIS - -import os.path - -# ------------------------------------------------------------------------------ -def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args): - """ - Macro IMPR_FONCTION permettant d'imprimer dans un fichier des fonctions, - colonnes de table... - Erreurs dans IMPR_FONCTION pour ne pas perdre la base. - """ - macro='IMPR_FONCTION' - import pprint - import aster - from Accas import _F - from Utilitai import Graph - from Utilitai.Utmess import UTMESS - from Utilitai.UniteAster import UniteAster - ier=0 - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # On importe les definitions des commandes a utiliser dans la macro - # Le nom de la variable doit etre obligatoirement le nom de la commande - CALC_FONC_INTERP = self.get_cmd('CALC_FONC_INTERP') - DEFI_LIST_REEL = self.get_cmd('DEFI_LIST_REEL') - DETRUIRE = self.get_cmd('DETRUIRE') - - #---------------------------------------------- - # 0. Traitement des arguments, initialisations - # unité logique des fichiers réservés - ul_reserve=(8,) - UL = UniteAster() - - # 0.1. Fichier - nomfich=None - if args['UNITE'] and args['UNITE']<>6: - nomfich=UL.Nom(args['UNITE']) - if INFO==2: - aster.affiche('MESSAGE', ' Nom du fichier :'+nomfich+'\n') - if nomfich and os.path.exists(nomfich) and os.stat(nomfich).st_size<>0: - if FORMAT=='XMGRACE': - niv='A' - else: - niv='I' - UTMESS(niv,macro,'Le fichier '+nomfich+' existe déjà, on écrit ' \ - 'à la suite.') - - # 0.2. Récupération des valeurs sous COURBE - unparmi=('FONCTION','LIST_RESU','FONC_X','ABSCISSE') - - # i0 : indice du mot-clé facteur qui contient LIST_PARA, sinon i0=0 - i0=0 - Courbe=[] - iocc=-1 - for Ci in COURBE: - iocc+=1 - dC = Ci.cree_dict_valeurs(Ci.mc_liste) - if dC.has_key('LIST_PARA') and dC['LIST_PARA']!=None and i0==0: - i0=iocc - for mc in dC.keys(): - if dC[mc]==None: del dC[mc] - Courbe.append(dC) - if INFO==2: - aster.affiche('MESSAGE',' Nombre de fonctions à analyser : '+str(len(Courbe))+'\n') - - # 0.3. Devra-t-on interpoler globalement ? - # Dans ce cas, linter__ est le LIST_PARA - # ou, à défaut, les abscisses de la première courbe - interp=False - if FORMAT=='TABLEAU': - interp=True - dCi=Courbe[i0] - if dCi.has_key('LIST_PARA'): - linter__=dCi['LIST_PARA'] - else: - obj=None - for typi in unparmi: - if dCi.has_key(typi): - obj=dCi[typi] - typ=obj.__class__.__name__ - break - if obj==None: - UTMESS('S',macro,'incohérence entre le catalogue et la macro.') - if typi=='FONCTION': - if typ=='nappe_sdaster': - lpar,lval=obj.Valeurs() - linterp=lval[0][0] - else: - linterp=obj.Valeurs()[0] - elif typi=='FONC_X': - lbid,linterp=obj.Valeurs() - elif typi=='ABSCISSE': - linterp=obj - linter__=DEFI_LIST_REEL(VALE=linterp) - if INFO==2: - aster.affiche('MESSAGE', ' Interpolation globale sur la liste :\n'+pprint.pformat(linter__.Valeurs())+'\n') - - - #---------------------------------------------- - # 1. Récupération des valeurs des N courbes sous forme - # d'une liste de N listes - #---------------------------------------------- - graph=Graph.Graph() - iocc=-1 - for dCi in Courbe: - iocc+=1 - - # 1.1. Type d'objet à traiter - obj=None - for typi in unparmi: - if dCi.has_key(typi): - obj=dCi[typi] - typ=obj.__class__.__name__ - break - if not dCi.has_key('LEGENDE') and hasattr(obj,'get_name'): - dCi['LEGENDE']=obj.get_name() - if obj==None: - UTMESS('S',macro,'incohérence entre le catalogue et la macro.') - - # 1.2. Extraction des valeurs - - # 1.2.1. Mot-clé FONCTION - if typi=='FONCTION': - if typ=='nappe_sdaster': - lpar,lval=obj.Valeurs() - dico,ldicf=obj.Parametres() - Leg=dCi['LEGENDE'] - for i in range(len(lpar)): - p=lpar[i] - lx=lval[i][0] - ly=lval[i][1] - # sur quelle liste interpoler chaque fonction - if i==0: - if interp: - li__=linter__ - elif dCi.has_key('LIST_PARA'): - li__=dCi['LIST_PARA'] - else: - li__=DEFI_LIST_REEL(VALE=lx) - # compléter les paramètres d'interpolation - dic=dico.copy() - dic.update(ldicf[i]) - - if (interp or dCi.has_key('LIST_PARA')) and i>0: - ftmp__=CALC_FONC_INTERP( - FONCTION=obj, - VALE_PARA=p, - LIST_PARA_FONC=li__, - **dic - ) - pv,lv2=ftmp__.Valeurs() - lx=lv2[0][0] - ly=lv2[0][1] - # on stocke les données dans le Graph - nomresu=dic['NOM_RESU'].strip()+'_'+str(len(graph.Legendes)) - dicC={ - 'Val' : [lx,ly], - 'Lab' : [dic['NOM_PARA_FONC'],nomresu] - } - # ajoute la valeur du paramètre - dCi['LEGENDE'] = '%s %s=%g' % (Leg,dic['NOM_PARA'].strip(),p) - Graph.AjoutParaCourbe(dicC, args=dCi) - graph.AjoutCourbe(**dicC) - DETRUIRE(CONCEPT=_F(NOM=('li__','ftmp__'),),ALARME='NON',INFO=1) - else: - ftmp__=obj - dpar=ftmp__.Parametres() - if interp: - ftmp__=CALC_FONC_INTERP( - FONCTION=obj, - LIST_PARA=linter__, - **dpar - ) - elif dCi.has_key('LIST_PARA'): - ftmp__=CALC_FONC_INTERP( - FONCTION=obj, - LIST_PARA=dCi['LIST_PARA'], - **dpar - ) - lval=list(ftmp__.Valeurs()) - lx=lval[0] - lr=lval[1] - if typ=='fonction_c' and dCi.has_key('PARTIE'): - if dCi['PARTIE']=='IMAG' : lr=lval[2] - # on stocke les données dans le Graph - if typ=='fonction_c' and not dCi.has_key('PARTIE'): - nomresu=dpar['NOM_RESU'].strip()+'_'+str(len(graph.Legendes)) - dicC={ - 'Val' : lval, - 'Lab' : [dpar['NOM_PARA'],nomresu+'_R',nomresu+'_I'] - } - else: - nomresu=dpar['NOM_RESU'].strip()+'_'+str(len(graph.Legendes)) - dicC={ - 'Val' : [lx,lr], - 'Lab' : [dpar['NOM_PARA'],nomresu] - } - Graph.AjoutParaCourbe(dicC, args=dCi) - graph.AjoutCourbe(**dicC) - - # 1.2.2. Mot-clé LIST_RESU - elif typi=='LIST_RESU': - if interp and iocc>0: - UTMESS('S',macro,"""Il n'y a pas de règles d'interpolation pour LIST_PARA/LIST_RESU, - LIST_PARA/LIST_RESU ne peut donc apparaitre qu'une seule fois - et à la première occurence de COURBE""") - lx=dCi['LIST_PARA'].Valeurs() - lr=obj.Valeurs() - if len(lx)<>len(lr): - UTMESS('S',macro,"LIST_PARA et LIST_RESU n'ont pas la meme taille") - # on stocke les données dans le Graph - dicC={ - 'Val' : [lx,lr], - 'Lab' : [dCi['LIST_PARA'].get_name(),obj.get_name()] - } - Graph.AjoutParaCourbe(dicC, args=dCi) - graph.AjoutCourbe(**dicC) - - # 1.2.3. Mot-clé FONC_X - # exemple : obj(t)=sin(t), on imprime x=sin(t), y=cos(t) - # ob2(t)=cos(t) - elif typi=='FONC_X': - ob2=dCi['FONC_Y'] - # peut-on blinder au niveau du catalogue - if typ=="nappe_sdaster" or ob2.__class__.__name__=="nappe_sdaster": - UTMESS('S',macro,"FONC_X/FONC_Y ne peuvent pas etre des nappes !") - if interp and iocc>0: - UTMESS('S',macro,"""Au format 'TABLEAU' ,FONC_X/FONC_Y ne peut apparaitre qu'une seule fois - et à la première occurence de COURBE""") - ftmp__=obj - dpar=ftmp__.Parametres() - ftm2__=ob2 - dpa2=ftm2__.Parametres() - intloc=False - if interp and not dCi.has_key('LIST_PARA'): - # dans ce cas, linter__ contient les ordonnées de FONC_X - intloc=False - li__=linter__ - elif dCi.has_key('LIST_PARA'): - intloc=True - li__=dCi['LIST_PARA'] - if intloc: - ftmp__=CALC_FONC_INTERP( - FONCTION=obj, - LIST_PARA=li__, - **dpar - ) - lt,lx=ftmp__.Valeurs() - ftm2__=CALC_FONC_INTERP( - FONCTION=ob2, - LIST_PARA=li__, - **dpa2 - ) - else: - lt,lx=ftmp__.Valeurs() - li__=DEFI_LIST_REEL(VALE=lt) - ftm2__=CALC_FONC_INTERP( - FONCTION=ob2, - LIST_PARA=li__, - **dpa2 - ) - - lbid,ly=ftm2__.Valeurs() - # on stocke les données dans le Graph - # on imprime la liste des paramètres seulement si LIST_PARA - if intloc: - nomresur=dpar['NOM_RESU'].strip()+'_'+str(len(graph.Legendes)) - nomresu2=dpa2['NOM_RESU'].strip()+'_'+str(len(graph.Legendes)+1) - dicC={ - 'Val' : [lt,lx,ly], - 'Lab' : [dpar['NOM_PARA'],nomresur,nomresu2] - } - else: - nomresur=dpar['NOM_RESU'].strip()+'_'+str(len(graph.Legendes)) - nomresu2=dpa2['NOM_RESU'].strip()+'_'+str(len(graph.Legendes)+1) - dicC={ - 'Val' : [lx,ly], - 'Lab' : [nomresur,nomresu2] - } - Graph.AjoutParaCourbe(dicC, args=dCi) - graph.AjoutCourbe(**dicC) - - # 1.2.4. Mot-clé ABSCISSE / ORDONNEE - elif typi=='ABSCISSE': - if interp and iocc>0: - UTMESS('S',macro,"""Il n'y a pas de règles d'interpolation pour ABSCISSE/ORDONNEE, - ABSCISSE/ORDONNEE ne peut donc apparaitre qu'une seule fois - et à la première occurence de COURBE""") - lx=obj - lr=dCi['ORDONNEE'] - if len(lx)<>len(lr): - UTMESS('S',macro,"ABSCISSE et ORDONNEE n'ont pas la meme taille") - # on stocke les données dans le Graph - dicC={ - 'Val' : [lx,lr], - 'Lab' : ['Absc','Ordo'] - } - Graph.AjoutParaCourbe(dicC, args=dCi) - graph.AjoutCourbe(**dicC) - - # 1.2.9. ménage - DETRUIRE(CONCEPT=_F(NOM=('li__','ftmp__','ftm2__'),),ALARME='NON',INFO=1) - - # 1.2.99. ménage hors boucle - DETRUIRE(CONCEPT=_F(NOM=('linter__'),), ALARME='NON',INFO=1) - - # 1.3. dbg - if INFO==2: - message='\n'+'-'*70+'\n Contenu du Graph : \n'+'-'*70 - message=message+graph.__repr__() - message=message+'-'*70+'\n' - aster.affiche('MESSAGE',message) - - #---------------------------------------------- - # 2. Impression du 'tableau' de valeurs - #---------------------------------------------- - - # 2.0. Surcharge des propriétés du graphique et des axes - # (bloc quasiment identique dans Table) - if args['TITRE']<>None: graph.Titre=args['TITRE'] - if args['SOUS_TITRE']<>None: graph.SousTitre=args['SOUS_TITRE'] - if FORMAT in ('XMGRACE','AGRAF'): - if args['BORNE_X']<>None: - graph.Min_X=args['BORNE_X'][0] - graph.Max_X=args['BORNE_X'][1] - if args['BORNE_Y']<>None: - graph.Min_Y=args['BORNE_Y'][0] - graph.Max_Y=args['BORNE_Y'][1] - if args['LEGENDE_X']<>None: graph.Legende_X=args['LEGENDE_X'] - if args['LEGENDE_Y']<>None: graph.Legende_Y=args['LEGENDE_Y'] - if args['ECHELLE_X']<>None: graph.Echelle_X=args['ECHELLE_X'] - if args['ECHELLE_Y']<>None: graph.Echelle_Y=args['ECHELLE_Y'] - if args['GRILLE_X']<>None: graph.Grille_X=args['GRILLE_X'] - if args['GRILLE_Y']<>None: graph.Grille_Y=args['GRILLE_Y'] - - kargs={ - 'FORMAT' : FORMAT, - 'FICHIER' : nomfich, - } - - # 2.1. au format TABLEAU - if FORMAT=='TABLEAU': - # surcharge par les formats de l'utilisateur - kargs['dform']={ - 'csep' : args['SEPARATEUR'], - 'ccom' : args['COMMENTAIRE'], - 'cdeb' : args['DEBUT_LIGNE'], - 'cfin' : args['FIN_LIGNE'] - } - - # 2.2. au format AGRAF - elif FORMAT=='AGRAF': - nomdigr=None - if args['UNITE_DIGR']<>6: - nomdigr=UL.Nom(args['UNITE_DIGR']) - kargs['FICHIER']=[nomfich, nomdigr] - kargs['dform']={ 'formR' : '%12.5E' } - - # 2.3. au format XMGRACE et dérivés - elif FORMAT=='XMGRACE': - kargs['dform']={ 'formR' : '%.8g' } - kargs['PILOTE']=args['PILOTE'] - - # 2.39. Format inconnu - else: - UTMESS('S',macro,'Format inconnu : '+FORMAT) - - # Traiter le cas des UL réservées - if args['UNITE'] and args['UNITE'] in ul_reserve: - UL.Etat(args['UNITE'], etat='F') - if FORMAT=='AGRAF' and args['UNITE_DIGR']<>args['UNITE'] \ - and args['UNITE_DIGR'] in ul_reserve: - UL.Etat(args['UNITE_DIGR'], etat='F') - - # 2.4. On trace ! - graph.Trace(**kargs) - - # 99. Traiter le cas des UL réservées - UL.EtatInit() - - return ier diff --git a/Aster/Cata/cataSTA81/Macro/impr_table_ops.py b/Aster/Cata/cataSTA81/Macro/impr_table_ops.py deleted file mode 100644 index 49aacd3e..00000000 --- a/Aster/Cata/cataSTA81/Macro/impr_table_ops.py +++ /dev/null @@ -1,247 +0,0 @@ -#@ MODIF impr_table_ops Macro DATE 21/11/2005 AUTEUR MCOURTOI M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -# RESPONSABLE MCOURTOI M.COURTOIS - -import os.path -import re - -from types import ListType, TupleType, StringTypes -EnumTypes=(ListType, TupleType) - - -# ------------------------------------------------------------------------------ -def impr_table_ops(self, FORMAT, TABLE, INFO, **args): - """ - Macro IMPR_TABLE permettant d'imprimer une table dans un fichier. - Erreurs dans IMPR_TABLE pour ne pas perdre la base. - """ - macro='IMPR_TABLE' - import aster - from Accas import _F - from Cata.cata import table_jeveux - from Utilitai.Utmess import UTMESS - from Utilitai.UniteAster import UniteAster - ier=0 - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # On importe les definitions des commandes a utiliser dans la macro - # Le nom de la variable doit etre obligatoirement le nom de la commande - DETRUIRE = self.get_cmd('DETRUIRE') - RECU_FONCTION = self.get_cmd('RECU_FONCTION') - - #---------------------------------------------- - # 0. Traitement des arguments, initialisations - # unité logique des fichiers réservés - ul_reserve=(8,) - UL = UniteAster() - - # 0.1. Fichier - nomfich=None - if args['UNITE'] and args['UNITE']<>6: - nomfich=UL.Nom(args['UNITE']) - if nomfich and os.path.exists(nomfich) and os.stat(nomfich).st_size<>0: - if FORMAT=='XMGRACE': - UTMESS('A',macro,'Le fichier '+nomfich+' existe déjà, on écrit ' \ - 'à la suite.') - - # 0.2. Création des dictionnaires des FILTRES - Filtre=[] - if args['FILTRE']: - for Fi in args['FILTRE']: - dF = Fi.cree_dict_valeurs(Fi.mc_liste) - for mc in dF.keys(): - if dF[mc]==None: del dF[mc] - Filtre.append(dF) - # format pour l'impression des filtres - form_filtre='\nFILTRE -> NOM_PARA: %-16s CRIT_COMP: %-4s VALE: %s' - - # 0.3. Création de la liste des tables (une seule sans SENSIBILITE) - form_sens='\n... SENSIBILITE AU PARAMETRE %s' - ltab=[] - if args['SENSIBILITE']: - nmemo='&NOSENSI.MEMO.CORR'.ljust(24) - vect=aster.getvectjev(nmemo) - if vect: - lps=args['SENSIBILITE'] - if not type(lps) in EnumTypes: - lps=[lps,] - for ps in [ps.get_name() for ps in lps]: - trouv=False - for ch in vect[0:len(vect):2]: - if ch[0:8].strip()==TABLE.get_name() and ch[8:16].strip()==ps: - trouv=True - ncomp=ch[16:24].strip() - sdtab=table_jeveux(ncomp) - tabs=sdtab.EXTR_TABLE() - tabs.titr+=form_sens % ps - ltab.append([tabs, sdtab]) - if not trouv: - UTMESS('A',macro,'Dérivée de %s par rapport à %s non disponible'\ - % (TABLE.get_name(), ps)) - else: - UTMESS('A',macro,'Pas de calcul de sensibilité accessible.') - else: - ltab.append([TABLE.EXTR_TABLE(), TABLE]) - - if len(ltab)<1: - return ier - - # 0.4.1. liste des paramètres à conserver - nom_para=ltab[0][0].para - if args['NOM_PARA']: - nom_para=args['NOM_PARA'] - if not type(nom_para) in EnumTypes: - nom_para=[nom_para,] - - # 0.4.2. Traiter le cas des UL réservées - if args['UNITE'] and args['UNITE'] in ul_reserve: - UL.Etat(args['UNITE'], etat='F') - - #---------------------------------------------- - # Boucle sur les tables - for tab, sdtab in ltab: - - # ----- 1. Infos de base - if INFO==2: - print 'IMPRESSION DE LA TABLE : %s' % sdtab.get_name() - - if args['TITRE']: - tab.titr=args['TITRE'] + '\n' + tab.titr - - # ----- 2. Filtres - for Fi in Filtre: - col = getattr(tab, Fi['NOM_PARA']) - # peu importe le type - opts=[Fi[k] for k in ('VALE','VALE_I','VALE_C','VALE_K') if Fi.has_key(k)] - kargs={} - for k in ('CRITERE','PRECISION'): - if Fi.has_key(k): - kargs[k]=Fi[k] - tab = tab & ( getattr(col, Fi['CRIT_COMP'])(*opts,**kargs) ) - # trace l'operation dans le titre - #if FORMAT in ('TABLEAU','ASTER'): - tab.titr+=form_filtre % (Fi['NOM_PARA'], Fi['CRIT_COMP'], \ - ' '.join([str(v) for v in opts])) - - # ----- 3. Tris - if args['TRI']: - # une seule occurence de TRI - T0=args['TRI'][0] - dT=T0.cree_dict_valeurs(T0.mc_liste) - tab.sort(CLES=dT['NOM_PARA'], ORDRE=dT['ORDRE']) - - # ----- 4. Impression - # vérification des paramètres - for p in nom_para: - if not p in tab.para: - UTMESS('A', 'IMPR_TABLE', 'Paramètre absent de la table : %s' % p) - - # sélection des paramètres - timp=tab[nom_para] - - # passage des mots-clés de mise en forme à la méthode Impr - kargs=args.copy() - kargs.update({ - 'FORMAT' : FORMAT, - 'FICHIER' : nomfich, - 'dform' : {}, - }) - # pour l'impression des fonctions - kfonc={ - 'FORMAT' : FORMAT, - 'FICHIER' : nomfich, - } - - # 4.1. au format AGRAF - if FORMAT=='AGRAF': - kargs['dform']={ 'formR' : '%12.5E' } - kfonc['FORMAT']='TABLEAU' - - # 4.2. au format XMGRACE et dérivés - elif FORMAT=='XMGRACE': - kargs['dform']={ 'formR' : '%.8g' } - kargs['PILOTE']=args['PILOTE'] - kfonc['PILOTE']=args['PILOTE'] - - # 4.3. format spécifié dans les arguments - if args['FORMAT_R']: - kargs['dform'].update({ 'formR' : fmtF2PY(args['FORMAT_R']) }) - - # 4.4. regroupement par paramètre : PAGINATION - if args['PAGINATION']: - l_ppag=args['PAGINATION'] - if not type(l_ppag) in EnumTypes: - l_ppag=[l_ppag,] - kargs['PAGINATION'] = [p for p in l_ppag if p in nom_para] - l_para_err = [p for p in l_ppag if not p in nom_para] - if len(l_para_err)>0: - UTMESS('A', 'IMPR_TABLE', 'Paramètres absents de la table (ou de '\ - 'NOM_PARA) : %s' % ', '.join(l_para_err)) - - timp.Impr(**kargs) - - # ----- 5. IMPR_FONCTION='OUI' - if args['IMPR_FONCTION'] and args['IMPR_FONCTION']=='OUI': - # cherche parmi les cellules celles qui contiennent un nom de fonction - dfon={} - for row in timp: - for par,cell in row.items(): - if type(cell) in StringTypes: - if aster.getvectjev(cell.strip().ljust(19)+'.PROL')<>None: - dfon[cell.strip().ljust(19)]=par - # impression des fonctions trouvées - for f,par in dfon.items(): - __fonc=RECU_FONCTION( - TABLE=sdtab, - FILTRE=_F( - NOM_PARA=par, - VALE_K=f, - ), - NOM_PARA_TABL=par, - ) - __fonc.Trace(**kfonc) - DETRUIRE(CONCEPT=_F(NOM=('__fonc',),), ALARME='NON', INFO=1,) - - # 99. Traiter le cas des UL réservées - UL.EtatInit() - - return ier - -# ------------------------------------------------------------------------------ -def fmtF2PY(fformat): - """Convertit un format Fortran en format Python (printf style). - Gère uniquement les fortrans réels, par exemple : E12.5, 1PE13.6, D12.5... - """ - fmt='' - matP=re.search('([0-9]+)P',fformat) - if matP: - fmt+=' '*int(matP.group(1)) - matR=re.search('([eEdDfFgG]{1})([\.0-9]+)',fformat) - if matR: - fmt+='%'+matR.group(2)+re.sub('[dD]+','E',matR.group(1)) - try: - s=fmt % -0.123 - except (ValueError, TypeError), msg: - fmt='%12.5E' - print 'Error :',msg - print 'Format par défaut utilisé :',fmt - return fmt diff --git a/Aster/Cata/cataSTA81/Macro/info_fonction_ops.py b/Aster/Cata/cataSTA81/Macro/info_fonction_ops.py deleted file mode 100644 index b728f6a4..00000000 --- a/Aster/Cata/cataSTA81/Macro/info_fonction_ops.py +++ /dev/null @@ -1,252 +0,0 @@ -#@ MODIF info_fonction_ops Macro DATE 12/05/2005 AUTEUR DURAND C.DURAND -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def info_fonction_ops(self,RMS,NOCI_SEISME,MAX,NORME,ECART_TYPE,**args): - """ - Ecriture de la macro INFO_FONCTION - """ - ier=0 - import string - from Utilitai.t_fonction import t_fonction,t_fonction_c,t_nappe - import math - from Accas import _F - from Utilitai.Utmess import UTMESS - - ### On importe les definitions des commandes a utiliser dans la macro - CREA_TABLE = self.get_cmd('CREA_TABLE') - CALC_FONCTION = self.get_cmd('CALC_FONCTION') - - ### Comptage commandes + déclaration concept sortant - self.set_icmd(1) - self.DeclareOut('C_out',self.sd) - - ### type de traitement - - ### - if (MAX != None): - __ff=MAX['FONCTION'].convert() - __ex=__ff.extreme() - n_mini=len(__ex['min']) - n_maxi=len(__ex['max']) - listeMCF=[_F(LISTE_K=[MAX['FONCTION'].nom]*(n_mini+n_maxi),PARA='FONCTION'), - _F(LISTE_K=['MINI',]*n_mini+['MAXI',]*n_maxi,PARA='TYPE'),] - if isinstance(__ff,t_nappe) : - listeMCF=listeMCF+[\ - _F(LISTE_R=[i[0] for i in __ex['min']]+[i[0] for i in __ex['max']],PARA=__ff.para['NOM_PARA']),\ - _F(LISTE_R=[i[1] for i in __ex['min']]+[i[1] for i in __ex['max']],PARA=__ff.para['NOM_PARA_FONC']),\ - _F(LISTE_R=[i[2] for i in __ex['min']]+[i[2] for i in __ex['max']],PARA=__ff.para['NOM_RESU'])] - else : - listeMCF=listeMCF+[\ - _F(LISTE_R=[i[0] for i in __ex['min']]+[i[0] for i in __ex['max']],PARA=__ff.para['NOM_PARA']),\ - _F(LISTE_R=[i[1] for i in __ex['min']]+[i[1] for i in __ex['max']],PARA=__ff.para['NOM_RESU'])] - C_out=CREA_TABLE(LISTE=listeMCF) - - ### - if (ECART_TYPE != None): - __ff=ECART_TYPE['FONCTION'].convert() - if ECART_TYPE['INST_INIT']!=None : tini=ECART_TYPE['INST_INIT'] - else : tini=__ff.vale_x[0] - if ECART_TYPE['INST_FIN' ]!=None : tfin=ECART_TYPE['INST_FIN' ] - else : tfin=__ff.vale_x[-1] - __ff=__ff.cut(tini,__ff.vale_x[-1],ECART_TYPE['PRECISION'],ECART_TYPE['CRITERE']) - __ff=__ff.cut(__ff.vale_x[0],tfin,ECART_TYPE['PRECISION'],ECART_TYPE['CRITERE']) - if ECART_TYPE['METHODE' ]=='SIMPSON' : __ex=__ff.simpson(0.) - if ECART_TYPE['METHODE' ]=='TRAPEZE' : __ex=__ff.trapeze(0.) - fmoy=__ex.vale_y[-1]/(__ff.vale_x[-1]-__ff.vale_x[0]) - __ff=__ff+(-1*fmoy) - __ff=__ff*__ff - if ECART_TYPE['METHODE' ]=='SIMPSON' : __ez=__ff.simpson(0.) - if ECART_TYPE['METHODE' ]=='TRAPEZE' : __ez=__ff.trapeze(0.) - sigma=math.sqrt(__ez.vale_y[-1]/(__ff.vale_x[-1]-__ff.vale_x[0])) - C_out=CREA_TABLE(LISTE=(_F(LISTE_K=ECART_TYPE['FONCTION'].nom,PARA='FONCTION'), - _F(LISTE_K=ECART_TYPE['METHODE'] ,PARA='METHODE'), - _F(LISTE_R=fmoy ,PARA='MOYENNE'), - _F(LISTE_R=sigma ,PARA='ECART_TYPE'), - _F(LISTE_R=tini ,PARA='INST_INIT'), - _F(LISTE_R=tfin ,PARA='INST_FIN'),) - ) - - ### - if (RMS != None): - RMS =list(RMS) - sigm =[] - tmpi =[] - tmpf =[] - nomf =[] - meth =[] - for i_rms in RMS : - __ff=i_rms['FONCTION'].convert() - if i_rms['INST_INIT']!=None : tini=i_rms['INST_INIT'] - else : tini=__ff.vale_x[0] - if i_rms['INST_FIN' ]!=None : tfin=i_rms['INST_FIN' ] - else : tfin=__ff.vale_x[-1] - __ff=__ff.cut(tini,__ff.vale_x[-1],i_rms['PRECISION'],i_rms['CRITERE']) - __ff=__ff.cut(__ff.vale_x[0],tfin,i_rms['PRECISION'],i_rms['CRITERE']) - __ff=__ff*__ff - if i_rms['METHODE' ]=='SIMPSON' : __ez=__ff.simpson(0.) - if i_rms['METHODE' ]=='TRAPEZE' : - __ez=__ff.trapeze(0.) - sigm.append(math.sqrt(__ez.vale_y[-1]/(__ff.vale_x[-1]-__ff.vale_x[0]))) - tmpi.append(tini) - tmpf.append(tfin) - nomf.append(i_rms['FONCTION'].nom) - meth.append(i_rms['METHODE']) - C_out=CREA_TABLE(LISTE=(_F(LISTE_K=nomf ,PARA='FONCTION'), - _F(LISTE_K=meth ,PARA='METHODE'), - _F(LISTE_R=tmpi ,PARA='INST_INIT'), - _F(LISTE_R=tmpf ,PARA='INST_FIN'), - _F(LISTE_R=sigm ,PARA='RMS'), ) - ) - - ### - if (NORME != None): - __ff=NORME['FONCTION'].convert() - norme=[] - for __fi in __ff.l_fonc : - norme.append(__fi.normel2()) - nom=[NORME['FONCTION'].nom,]*len(norme) - C_out=CREA_TABLE(LISTE=(_F(LISTE_R=norme ,PARA='NORME'), - _F(LISTE_K=nom ,PARA='FONCTION'), ) - ) - - ### - if (NOCI_SEISME != None): - l_table=[] - if NOCI_SEISME['SPEC_OSCI'] !=None : - ### cas intensité spectrale d'une nappe de SRO - ### la seule option licite est INTE_SPEC - UTMESS('I','INFO_FONCTION',''' : intensite spectrale, avant de calculer l'\ -intensite spectrale, il est prudent de verifier la norme de la nappe sur laquelle \ -porte le calcul, ceci peut etre une source d erreurs.''') - amor=NOCI_SEISME['AMOR_REDUIT'] - fini=NOCI_SEISME['FREQ_INIT' ] - ffin=NOCI_SEISME['FREQ_FIN' ] - __sp =NOCI_SEISME['SPEC_OSCI'].convert() - vale_x=__sp.l_fonc[0].vale_x - vale_y=[__sp(amor,f) for f in vale_x] - para =__sp.l_fonc[0].para - __srov=t_fonction(vale_x,vale_y,para) - if NOCI_SEISME['NATURE']=='DEPL' : - __srov.vale_y=(__srov.vale_y/__srov.vale_x)*2.*math.pi - elif NOCI_SEISME['NATURE']=='VITE' : - __srov.vale_y=__srov.vale_y/__srov.vale_x/__srov.vale_x - elif NOCI_SEISME['NATURE']=='ACCE' : - __srov.vale_y=__srov.vale_y/__srov.vale_x/__srov.vale_x - __srov.vale_y=__srov.vale_y/__srov.vale_x/2./math.pi - __srov=__srov.cut(fini,ffin,NOCI_SEISME['PRECISION'],NOCI_SEISME['CRITERE']) - insp=__srov.trapeze(0.).vale_y[-1] - l_table.append(_F(LISTE_R=fini ,PARA='FREQ_INIT' )) - l_table.append(_F(LISTE_R=ffin ,PARA='FREQ_FIN' )) - l_table.append(_F(LISTE_R=amor ,PARA='AMOR_REDUIT')) - l_table.append(_F(LISTE_R=insp ,PARA='INTE_SPECT' )) - if NOCI_SEISME['FONCTION'] !=None : - ### cas fonction - l_table.append(_F(LISTE_K=NOCI_SEISME['FONCTION'].nom,PARA='FONCTION')) - __ac=NOCI_SEISME['FONCTION'].convert() - option= NOCI_SEISME['OPTION'] - if NOCI_SEISME['INST_INIT']!=None : tdeb=NOCI_SEISME['INST_INIT'] - else : tdeb=__ac.vale_x[0] - if NOCI_SEISME['INST_FIN' ]!=None : tfin=NOCI_SEISME['INST_FIN' ] - else : tfin=__ac.vale_x[-1] - # calcul de la vitesse : - __vi=__ac.trapeze(NOCI_SEISME['COEF']) - # calcul du déplacement : - __de=__vi.trapeze(NOCI_SEISME['COEF']) - # calcul de |acceleration| : - __aa=__ac.abs() - # calcul de integrale(|acceleration|) : - ### on "coupe" la fonction entre tdeb et tfin - __ac=__ac.cut(tdeb,tfin,NOCI_SEISME['PRECISION'],NOCI_SEISME['CRITERE']) - __vi=__vi.cut(tdeb,tfin,NOCI_SEISME['PRECISION'],NOCI_SEISME['CRITERE']) - __de=__de.cut(tdeb,tfin,NOCI_SEISME['PRECISION'],NOCI_SEISME['CRITERE']) - __aa=__aa.cut(tdeb,tfin,NOCI_SEISME['PRECISION'],NOCI_SEISME['CRITERE']) - if NOCI_SEISME['FREQ' ]!=None : l_freq=NOCI_SEISME['FREQ'] - elif NOCI_SEISME['LIST_FREQ']!=None : l_freq=NOCI_SEISME['LIST_FREQ'].Valeurs() - else : - # fréquences par défaut - l_freq=[] - for i in range(56) : l_freq.append( 0.2+0.050*i) - for i in range( 8) : l_freq.append( 3.0+0.075*i) - for i in range(14) : l_freq.append( 3.6+0.100*i) - for i in range(24) : l_freq.append( 5.0+0.125*i) - for i in range(28) : l_freq.append( 8.0+0.250*i) - for i in range( 6) : l_freq.append(15.0+0.500*i) - for i in range( 4) : l_freq.append(18.0+1.000*i) - for i in range(10) : l_freq.append(22.0+1.500*i) - if option in('TOUT','MAXI','ACCE_SUR_VITE') : - # calcul du max des valeurs absolues - maxa_ac=__ac.abs().extreme()['max'][0][1] - maxa_vi=__vi.abs().extreme()['max'][0][1] - maxa_de=__de.abs().extreme()['max'][0][1] - l_table.append(_F(LISTE_R=maxa_ac,PARA='ACCE_MAX')) - l_table.append(_F(LISTE_R=maxa_vi,PARA='VITE_MAX')) - l_table.append(_F(LISTE_R=maxa_de,PARA='DEPL_MAX')) - l_table.append(_F(LISTE_R=maxa_ac/maxa_vi,PARA='ACCE_SUR_VITE')) - if option in('TOUT','INTE_ARIAS') : - __a2=__ac*__ac - inte_arias=__a2.trapeze(0.).vale_y[-1] - inte_arias=inte_arias*math.pi/NOCI_SEISME['PESANTEUR']/2. - l_table.append(_F(LISTE_R=inte_arias,PARA='INTE_ARIAS')) - if option in('TOUT','POUV_DEST') : - __v2=__vi*__vi - pouv_dest=__v2.trapeze(0.).vale_y[-1] - pouv_dest=pouv_dest*(math.pi)**3/NOCI_SEISME['PESANTEUR']/2. - l_table.append(_F(LISTE_R=pouv_dest,PARA='POUV_DEST')) - if option in('TOUT','VITE_ABSO_CUMU') : - __vc=__aa.trapeze(0.) - vite_abso=__vc.vale_y[-1] - l_table.append(_F(LISTE_R=vite_abso,PARA='VITE_ABSO_CUMU')) - if option in('TOUT','INTE_SPEC') : - amor=NOCI_SEISME['AMOR_REDUIT'] - fini=NOCI_SEISME['FREQ_INIT' ] - ffin=NOCI_SEISME['FREQ_FIN' ] - __so= CALC_FONCTION(SPEC_OSCI=_F( - NATURE ='VITE', - NATURE_FONC='ACCE', - FONCTION =NOCI_SEISME['FONCTION'], - METHODE ='NIGAM', - NORME =NOCI_SEISME['NORME'], - FREQ =l_freq, - AMOR_REDUIT=(amor,) - ), ) - __srov=__so.convert().l_fonc[0] - __srov=__srov.cut(fini,ffin,NOCI_SEISME['PRECISION'],NOCI_SEISME['CRITERE']) - __srov.vale_y=__srov.vale_y/__srov.vale_x/__srov.vale_x - insp=__srov.trapeze(0.).vale_y[-1] - l_table.append(_F(LISTE_R=fini ,PARA='FREQ_INIT' )) - l_table.append(_F(LISTE_R=ffin ,PARA='FREQ_FIN' )) - l_table.append(_F(LISTE_R=amor ,PARA='AMOR_REDUIT')) - l_table.append(_F(LISTE_R=insp ,PARA='INTE_SPECT' )) - if option in('TOUT','DUREE_PHAS_FORT') : - __a2=__ac*__ac - __i2=__a2.trapeze(0.) - arias = __i2.vale_y[-1]*math.pi/NOCI_SEISME['PESANTEUR']/2. - valinf = arias * NOCI_SEISME['BORNE_INF'] - valsup = arias * NOCI_SEISME['BORNE_SUP'] - for i in range(len(__i2.vale_x)) : - ariask = __i2.vale_y[i]*math.pi/NOCI_SEISME['PESANTEUR']/2. - if ariask>=valinf : break - for j in range(len(__i2.vale_x)-1,-1,-1) : - ariask = __i2.vale_y[j]*math.pi/NOCI_SEISME['PESANTEUR']/2. - if ariask<=valsup : break - dphfor = __i2.vale_x[j] - __i2.vale_x[i] - l_table.append(_F(LISTE_R=dphfor,PARA='DUREE_PHAS_FORT')) - C_out=CREA_TABLE(LISTE=l_table) - - return ier diff --git a/Aster/Cata/cataSTA81/Macro/lire_fonction_ops.py b/Aster/Cata/cataSTA81/Macro/lire_fonction_ops.py deleted file mode 100644 index 748774ea..00000000 --- a/Aster/Cata/cataSTA81/Macro/lire_fonction_ops.py +++ /dev/null @@ -1,268 +0,0 @@ -#@ MODIF lire_fonction_ops Macro DATE 24/05/2005 AUTEUR MCOURTOI M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -import os.path, Numeric - -# ------------------------------------------------------------------------------ -def lire_blocs(nomfich, SEPAR): - """Retourne la liste des blocs - """ - def info(ib, nlig, ncol): - """Affiche les infos d'un bloc""" - print " . Bloc %2d : %6d lignes, %6d colonnes" % (ib, nlig, ncol) - print " Lecture des blocs du fichier '%s'" % nomfich - fich=open(nomfich, 'r') - ier=0 - message = '' - if SEPAR=='None' : SEPAR=None - blocs = [] - lignes = [] - llen=0 - il=0 - for line in fich: - il+=1 - try: - if line.strip()=='': - raise ValueError - splin = line.split(SEPAR) - lignes.append(map(float, splin)) - if llen==0: - llen=len(splin) - elif len(splin)<>llen: - ier+=1 - message='Ligne %d : %d champs au lieu de %d attendus' % (il,len(splin),llen) - return ier, message, [] - except ValueError: - if lignes==[]: - pass # dans ce cas, on a plusieurs lignes délimitant 2 fonctions - else: - blocs.append(Numeric.array(lignes)) - info(len(blocs), len(lignes), llen) - lignes=[] - llen=0 - fich.close() - if lignes!=[] : - blocs.append(Numeric.array(lignes)) - info(len(blocs), len(lignes), llen) - return ier, message, blocs - -# ------------------------------------------------------------------------------ -def liste_double(nomfich,INDIC_PARA,INDIC_RESU,SEPAR): - """Méthode de construction du VALE pour le format libre - format LIBRE - Les lignes contenant autre chose que des séquences de nombres - réels et de séparateurs sont considérées comme délimitant deux - fonctions différentes. Cette situation correspond à l exception - ValueError levée par le map de float. Le deuxieme indice de - INDIC_PARA et INDIC_RESU est l indice permettant de pointer sur la - fonction voulue, au sens de ce découpage. - """ - from Utilitai.transpose import transpose - ier, message, blocs = lire_blocs(nomfich, SEPAR) - if ier<>0: - return ier,message,[] - - # vérifications de cohérences lignes et colonnes - nb_blocs = len(blocs) - bloc_para = INDIC_PARA[0] - col_para = INDIC_PARA[1] - bloc_resu = INDIC_RESU[0] - col_resu = INDIC_RESU[1] - msg=[] - if bloc_para>nb_blocs : - ier+=1 - msg.append("Il y a %d blocs or INDIC_PARA=(%d, .)" % (nb_blocs, bloc_para)) - if bloc_resu>nb_blocs: - ier+=1 - msg.append("Il y a %d blocs or INDIC_RESU=(%d, .)" % (nb_blocs, bloc_resu)) - if ier<>0: - return ier, '\n'.join(msg), [] - - if col_para>len(blocs[bloc_para-1][0]): - ier+=1 - msg.append("Le bloc %d comporte %d colonnes or INDIC_PARA=(., %d)" % \ - (bloc_para, len(blocs[bloc_para-1][0]), col_para)) - if col_resu>len(blocs[bloc_resu-1][0]) : - ier+=1 - msg.append("Le bloc %d comporte %d colonnes or INDIC_RESU=(., %d)" % \ - (bloc_resu, len(blocs[bloc_resu-1][0]), col_resu)) - if ier<>0: - return ier, '\n'.join(msg), [] - - # construction du VALE de la fonction par recherche des indices - # de colonnes et de fonctions dans le tableau blocs - vale_para = blocs[bloc_para-1][:,col_para-1] - vale_resu = blocs[bloc_resu-1][:,col_resu-1] - if len(vale_para)!=len(vale_resu) : - ier+=1 - print 'VALE_PARA =', vale_para - print 'VALE_RESU =', vale_resu - message="""Les deux colonnes extraites n'ont pas la meme longueur - %d lignes pour PARA - %d lignes pour RESU""" % (len(vale_para), len(vale_resu)) - if ier<>0: - return ier,message,[] - - laux=transpose([vale_para, vale_resu]) - liste_vale=[] - for v in laux: liste_vale.extend(v) - return ier,'',liste_vale - -# ------------------------------------------------------------------------------ -def liste_simple(nomfich,INDIC_PARA,SEPAR): - """recherche d'une liste simple - """ - ier, message, blocs = lire_blocs(nomfich, SEPAR) - - # vérifications de cohérences lignes et colonnes - nb_blocs = len(blocs) - bloc_para = INDIC_PARA[0] - col_para = INDIC_PARA[1] - msg=[] - if bloc_para>nb_blocs : - ier+=1 - msg.append("Il y a %d blocs or INDIC_PARA=(%d, .)" % (nb_blocs, bloc_para)) - if col_para>len(blocs[bloc_para-1][0]): - ier+=1 - msg.append("Le bloc %d comporte %d colonnes or INDIC_PARA=(., %d)" % \ - (bloc_para, len(blocs[bloc_para-1][0]), col_para)) - if ier<>0: - return ier, '\n'.join(msg), [] - - # construction du VALE de la fonction par recherche des indices - # de colonnes et de fonctions dans le tableau l_fonc - vale_1=blocs[bloc_para-1][:,col_para-1] - return ier,'',vale_1.tolist() - -# ------------------------------------------------------------------------------ -def lire_fonction_ops(self,FORMAT,TYPE,SEPAR,INDIC_PARA,UNITE, - NOM_PARA,NOM_RESU,INTERPOL,PROL_DROITE, - PROL_GAUCHE,VERIF,INFO,TITRE,**args): - """Méthode corps de la macro - """ - from Accas import _F - from Utilitai.Utmess import UTMESS - from Utilitai.UniteAster import UniteAster - - ier=0 - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # On recopie le mot cle defi_fonction pour le proteger - if TYPE=='NAPPE' : - mc_DEFI_FONCTION=args['DEFI_FONCTION'] - - # On importe les definitions des commandes a utiliser dans la macro - DEFI_FONCTION =self.get_cmd('DEFI_FONCTION') - DEFI_NAPPE =self.get_cmd('DEFI_NAPPE') - - nompro='LIRE_FONCTION' - - # Lecture de la fonction dans un fichier d unité logique UNITE - UL = UniteAster() - nomfich=UL.Nom(UNITE) - if not os.path.isfile(nomfich): - UTMESS('F', nompro, "le fichier '%s' est introuvable" % nomfich) - - # fonction(_c) ou nappe en sortie - self.DeclareOut('ut_fonc',self.sd) - - if TYPE=='FONCTION': - # mise en forme de la liste de valeurs suivant le format choisi : - ier,message,liste_vale=liste_double(nomfich,INDIC_PARA,args['INDIC_RESU'],SEPAR) - if ier!=0: UTMESS('F', nompro, message) - - # création de la fonction ASTER : - ut_fonc=DEFI_FONCTION( NOM_PARA =NOM_PARA, - NOM_RESU =NOM_RESU, - PROL_DROITE=PROL_DROITE, - PROL_GAUCHE=PROL_GAUCHE, - INTERPOL =INTERPOL, - INFO =INFO, - TITRE =TITRE, - VERIF =VERIF, - VALE =liste_vale,) - - elif TYPE=='FONCTION_C': - # mise en forme de la liste de valeurs suivant le format choisi : - if 'INDIC_REEL' in args : - indic1=args['INDIC_REEL'] - indic2=args['INDIC_IMAG'] - if 'INDIC_MODU' in args : - indic1=args['INDIC_MODU'] - indic2=args['INDIC_PHAS'] - ier,message,liste_vale_r=liste_double(nomfich,INDIC_PARA,indic1,SEPAR) - if ier!=0: UTMESS('F', nompro, message) - - ier,message,liste_vale_i=liste_double(nomfich,INDIC_PARA,indic2,SEPAR) - if ier!=0: UTMESS('F', nompro, message) - - liste=[] - if 'INDIC_REEL' in args : - for i in range(len(liste_vale_r)/2) : - liste.extend([liste_vale_r[2*i],liste_vale_r[2*i+1],liste_vale_i[2*i+1]]) - elif 'INDIC_MODU' in args : - for i in range(len(liste_vale_r)/2) : - module=liste_vale_r[2*i+1] - phase =liste_vale_i[2*i+1] - liste.extend([liste_vale_r[2*i],module*cos(phase),module*sin(phase)]) - - # création de la fonction ASTER : - ut_fonc=DEFI_FONCTION( NOM_PARA =NOM_PARA, - NOM_RESU =NOM_RESU, - PROL_DROITE =PROL_DROITE, - PROL_GAUCHE =PROL_GAUCHE, - INTERPOL =INTERPOL, - INFO =INFO, - TITRE =TITRE, - VERIF =VERIF, - VALE_C =liste,) - - elif TYPE=='NAPPE': - - # création de la nappe ASTER : - motscles={} - motscles['DEFI_FONCTION']=[] - for elem in mc_DEFI_FONCTION: - ier,message,liste_vale=liste_double(nomfich,args['INDIC_ABSCISSE'],elem['INDIC_RESU'],SEPAR) - if ier!=0: UTMESS('F', nompro, message) - - motscles['DEFI_FONCTION'].append( _F( VALE =liste_vale, - INTERPOL =args['INTERPOL_FONC'], - PROL_DROITE=args['PROL_DROITE_FONC'], - PROL_GAUCHE=args['PROL_GAUCHE_FONC'] ) ) - ier,message,liste_para=liste_simple(nomfich,INDIC_PARA,SEPAR) - if ier!=0: UTMESS('F', nompro, message) - - # création de la nappe - ut_fonc=DEFI_NAPPE( PARA =liste_para, - NOM_PARA =NOM_PARA, - NOM_PARA_FONC =args['NOM_PARA_FONC'], - NOM_RESU =NOM_RESU, - PROL_DROITE =PROL_DROITE, - PROL_GAUCHE =PROL_GAUCHE, - INTERPOL =INTERPOL, - INFO =INFO, - TITRE =TITRE, - VERIF =VERIF, - **motscles) - # remet UNITE dans son état initial - UL.EtatInit() - return ier diff --git a/Aster/Cata/cataSTA81/Macro/lire_inte_spec_ops.py b/Aster/Cata/cataSTA81/Macro/lire_inte_spec_ops.py deleted file mode 100644 index 21e7724b..00000000 --- a/Aster/Cata/cataSTA81/Macro/lire_inte_spec_ops.py +++ /dev/null @@ -1,117 +0,0 @@ -#@ MODIF lire_inte_spec_ops Macro DATE 05/09/2005 AUTEUR DURAND C.DURAND -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def lire_inte_spec_ops(self,UNITE,FORMAT,NOM_PARA,NOM_RESU,INTERPOL, - PROL_DROITE,PROL_GAUCHE,TITRE,INFO,**args): - ier=0 - - from Accas import _F - import os - from math import cos,sin - from Utilitai.Utmess import UTMESS - from Utilitai.UniteAster import UniteAster - # On importe les definitions des commandes a utiliser dans la macro - DEFI_FONCTION =self.get_cmd('DEFI_FONCTION') - CREA_TABLE =self.get_cmd('CREA_TABLE') - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - nompro='LIRE_INTE_SPEC' - - # Lecture de la fonction dans un fichier d unité logique UNITE - UL = UniteAster() - nomfich=UL.Nom(UNITE) - if not os.path.isfile(nomfich): - UTMESS('F', nompro, "le fichier '%s' est introuvable" % nomfich) - file=open(nomfich,'r') - texte=file.read() - file.close() - - list_fonc=texte.split('FONCTION_C') - entete=list_fonc.pop(0) - try : - entete=entete[entete.index('DIM'):] - dim=int(entete[entete.index('=')+1:entete.index('\n')]) - except ValueError : - UTMESS('F', nompro, "la dimension DIM n est pas précisée dans le fichier lu") - - if len(list_fonc)!=(dim*(dim+1)/2): - UTMESS('F', nompro, "nombre de fonctions incorrect") - - nume_i=[] - nume_j=[] - l_fonc=[] - for i in range(dim*(dim+1)/2): - numi=list_fonc[i][list_fonc[i].index('I =')+3:] - numi=numi[:numi.index('\n')] - nume_i.append(int(numi)) - numj=list_fonc[i][list_fonc[i].index('J =')+3:] - numj=numj[:numj.index('\n')] - nume_j.append(int(numj)) - try : - vale_fonc=list_fonc[i][list_fonc[i].index('VALEUR =\n')+9:list_fonc[i].index('FINSF\n')] - vale_fonc=vale_fonc.replace('\n',' ') - vale_fonc=map(float,vale_fonc.split()) - except ValueError : - UTMESS('F', nompro, "erreur dans les données de fonctions") - - liste=[] - if FORMAT=='REEL_IMAG': - liste=vale_fonc - elif FORMAT=='MODULE_PHASE': - for i in range(len(vale_fonc)/3) : - module=vale_fonc[3*i+1] - phase =vale_fonc[3*i+2] - liste=liste+[vale_fonc[3*i],module*cos(phase),module*sin(phase)] - - # création de la fonction ASTER : - _fonc=DEFI_FONCTION( NOM_PARA =NOM_PARA, - NOM_RESU =NOM_RESU, - PROL_DROITE=PROL_DROITE, - PROL_GAUCHE=PROL_GAUCHE, - INTERPOL =INTERPOL, - INFO =INFO, - TITRE =TITRE, - VALE_C =liste,) - l_fonc.append(_fonc.nom) - - nume_ib=[] - nume_jb=[] - for i in range(dim): - for j in range(i,dim): - nume_ib.append(i+1) - nume_jb.append(j+1) - if nume_i!=nume_ib or nume_j!=nume_jb : - UTMESS('F', nompro, "erreur dans les indices") - mcfact=[] - mcfact.append(_F(PARA='NOM_CHAM' ,LISTE_K=(NOM_RESU),NUME_LIGN=(1,))) - mcfact.append(_F(PARA='OPTION' ,LISTE_K=('TOUT',) ,NUME_LIGN=(1,))) - mcfact.append(_F(PARA='DIMENSION' ,LISTE_I=(dim,) ,NUME_LIGN=(1,))) - mcfact.append(_F(PARA='NUME_ORDRE_I',LISTE_I=nume_i ,NUME_LIGN=range(2,len(nume_i)+2))) - mcfact.append(_F(PARA='NUME_ORDRE_J',LISTE_I=nume_j ,NUME_LIGN=range(2,len(nume_j)+2))) - mcfact.append(_F(PARA='FONCTION' ,LISTE_K=l_fonc ,NUME_LIGN=range(2,len(list_fonc)+2))) - self.DeclareOut('tab_inte',self.sd) - tab_inte=CREA_TABLE(TYPE_TABLE='TABL_INTE_SPEC', - LISTE=mcfact, - TITRE=TITRE,) - - # remet UNITE dans son état initial - UL.EtatInit() - return ier diff --git a/Aster/Cata/cataSTA81/Macro/lire_table_ops.py b/Aster/Cata/cataSTA81/Macro/lire_table_ops.py deleted file mode 100644 index ea470c6d..00000000 --- a/Aster/Cata/cataSTA81/Macro/lire_table_ops.py +++ /dev/null @@ -1,177 +0,0 @@ -#@ MODIF lire_table_ops Macro DATE 05/09/2005 AUTEUR DURAND C.DURAND -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -import string - -# ------------------------------------------------------------------------------ -def lecture_table(texte,nume,separ): - """Méthode de construction du dictionnaire PARAMETRE / LISTE DE VALEURS - format ASTER - Les lignes contenant autre chose que des séquences de nombres - réels et de séparateurs sont considérées comme délimitant deux - fonctions différentes. Cette situation correspond à l exception - ValueError levée par le map de float. Le deuxieme indice de - VALE_PARA et VALE_RESU est l indice permettant de pointer sur la - fonction voulue, au sens de ce découpage. - """ - - from Utilitai.transpose import transpose - if string.strip(separ)=='' : separ=None - tab_lue={} - nume_lign=[] - idt_deb='#DEBUT_TABLE\n' - idt_fin='#FIN_TABLE\n' - idt_tit='#TITRE' - if nume>texte.count(idt_deb) : - message= " NUME_TABLE :le nombre de blocs de tables dans " - message=message+"le fichier est "+str(texte.count(idt_deb)) - return 1,message,None,None,None - for i in range(nume): - texte=texte[texte.index(idt_deb)+1:] - texte=texte[:texte.index(idt_fin)] - - titre_tab=[string.rstrip(elem[7:-1]) for elem in texte if elem.find(idt_tit)!=-1] - texte_tab=[elem.split(separ) for elem in texte if elem.find(idt_tit)==-1] - - if ( separ!=None) : - tab_trav=[] - for line in texte_tab : - ligne=[] - for elem in line : - if ( elem != '' and elem !='\n') : - ligne.append(string.strip(elem)) - tab_trav.append(ligne) - texte_tab=tab_trav - - list_para=texte_tab[0] - list_type=texte_tab[1] - texte_tab.pop(0) - texte_tab.pop(0) - nb_para=len(texte_tab[0]) - - for line in texte_tab : - if len(line)!=nb_para : - message= " incoherence dans le nombre de colonnes " - message=message+"de la table a lire" - return 1,message,None,None,None - texte_tab=transpose(texte_tab) - for i in range(nb_para): - tab_trav=[] - list_val=[] - col_type=list_type[i] - if col_type=='R': - try : - texte_tab[i]=map(float,texte_tab[i]) - nume_lign.append([0]) - except ValueError: -# Presence de - dans la ligne - for indice in range(len(texte_tab[i])): - if texte_tab[i][indice]!='-': - tab_trav.append(indice+1) - list_val.append(float(texte_tab[i][indice])) - - nume_lign.append(tab_trav) - texte_tab[i]=list_val - elif col_type=='I' : - try : - texte_tab[i]=map(int,texte_tab[i]) - nume_lign.append([0]) -# Presence de - dans la ligne - except ValueError: - for indice in range(len(texte_tab[i])): - if texte_tab[i][indice]!='-': - tab_trav.append(indice+1) - list_val.append(float(texte_tab[i][indice])) - nume_lign.append(tab_trav) - texte_tab[i]=list_val - - else : - try : nume_lign.append([0]) - except ValueError: pass - - tab_lue[list_para[i]]=(list_type[i],texte_tab[i],nume_lign[i]) - - return 0,None,titre_tab,list_para,tab_lue - - -# ------------------------------------------------------------------------------ -def lire_table_ops(self,UNITE,FORMAT,NUME_TABLE,SEPARATEUR, - TYPE_TABLE,PARA,TITRE,**args): - """Méthode corps de la macro LIRE_TABLE - """ - import os - from Accas import _F - from Utilitai.Utmess import UTMESS - from Utilitai.UniteAster import UniteAster - - ier=0 - nompro='LIRE_TABLE' - ### On importe les definitions des commandes a utiliser dans la macro - CREA_TABLE =self.get_cmd('CREA_TABLE') - - ### La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - ### Lecture de la table dans un fichier d unité logique UNITE - UL = UniteAster() - nomfich=UL.Nom(UNITE) - if not os.path.isfile(nomfich): - UTMESS('F', nompro, "le fichier '%s' est introuvable" % nomfich) - - file=open(nomfich,'r') - texte=file.readlines() - file.close() - - ### mise en forme de la liste de valeurs suivant le format choisi : - if FORMAT=='ASTER': - ier,message,titr_tab,list_para,tab_lue=lecture_table(texte,NUME_TABLE,SEPARATEUR) - if ier!=0 : - UTMESS('F', nompro, message) - else : pass - - ### création de la table ASTER : - self.DeclareOut('ut_tab',self.sd) - mcfact=[] - num_col=0 - for tab_para in list_para: - mcsimp={} - mcsimp['PARA']=tab_para - - if tab_lue[tab_para][2] != [0] : - mcsimp['NUME_LIGN']=tab_lue[tab_para][2] - - if tab_lue[tab_para][0] not in ('I','R') : - mcsimp['TYPE_K'] =tab_lue[tab_para][0] - mcsimp['LISTE_K']=tab_lue[tab_para][1] - elif tab_lue[tab_para][0]=='I' : - mcsimp['LISTE_I']=tab_lue[tab_para][1] - elif tab_lue[tab_para][0]=='R' : - mcsimp['LISTE_R']=tab_lue[tab_para][1] - - mcfact.append( _F(**mcsimp) ) - num_col = num_col + 1 - motscles={} - motscles['LISTE']=mcfact - - ut_tab=CREA_TABLE(TITRE=titr_tab,TYPE_TABLE=TYPE_TABLE, **motscles) - - # remet UNITE dans son état initial - UL.EtatInit() - return ier diff --git a/Aster/Cata/cataSTA81/Macro/macr_adap_mail_ops.py b/Aster/Cata/cataSTA81/Macro/macr_adap_mail_ops.py deleted file mode 100644 index 6c7afabb..00000000 --- a/Aster/Cata/cataSTA81/Macro/macr_adap_mail_ops.py +++ /dev/null @@ -1,789 +0,0 @@ -#@ MODIF macr_adap_mail_ops Macro DATE 04/07/2005 AUTEUR GNICOLAS G.NICOLAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GNICOLAS G.NICOLAS -# -def macr_adap_mail_ops ( self, - INFO, VERSION_HOMARD, LANGUE, - NOMBRE, QUALITE, CONNEXITE, TAILLE, INTERPENETRATION, - NON_SIMPLEXE, MAILLAGE_FRONTIERE, - **args): - """ - Ecriture des macros MACR_ADAP_MAIL/MACR_INFO_MAIL - Remarque : on ne mentionne explicitement que les mots-clés communs aux - deux macros. Les autres sont dans le dictionnaire args - """ -# -# 1. args est le dictionnaire des arguments -# args.keys() est la liste des mots-clés -# args.keys()[0] est la premiere valeur de cette liste -# args.keys()[1:] est la liste des valeurs suivantes dans cette liste -# args.keys(mot_cle) représente le contenu de la variable mot_cle dans la macro appelante. -# -### print args -### print args.keys() -### if len (args.keys())>0 : print args.keys()[0] -### print args["MAILLAGE"] -# -# 2. Les caractéristiques d'un passage sont conservées dans un dictionnaire. Il y a autant de -# dictionnaires que de sollicitations pour une série d'adaptation. L'ensemble de ces dictionnaires -# est conservé dans la liste Liste_Passages. Cette liste est nécessairement globale pour pouvoir -# la retrouver à chaque nouveau passage. -# Description du dictionnaire de passages : -# dico["Maillage_0"] = o ; string ; nom du concept du maillage initial de la série d'adaptation -# dico["Maillage_NP1"] = o ; string ; nom du concept du dernier maillage adapté -# dico["Rep_Calc_HOMARD_global"] = o ; string ; Nom global du répertoire de calcul pour HOMARD -# dico["Rep_Calc_HOMARD_local"] = o ; string ; Nom local du répertoire de calcul pour HOMARD -# depuis le répertoire de calcul pour ASTER -# dico["niter"] = o ; entier ; numéro d'itération -# -# 3. Les caractéristiques d'un maillage sont conservées dans un dictionnaire. Il y a autant de -# dictionnaires que de maillages manipulés. L'ensemble de ces dictionnaires est conservé -# dans la liste Liste_Maillages. -# Description du dictionnaire de maillages : -# dico["Type_Maillage"] = o ; string ; "MAILLAGE_N", "MAILLAGE_NP1" ou "MAILLAGE_FRONTIERE" -# dico["Nom_ASTER"] = o ; concept ASTER associé -# dico["Action"] = o ; string ; "A_ecrire" ou "A_lire" -# dico["NOM_MED"] = o ; string ; Nom MED du maillage -# -# 4. Les caractéristiques d'un champ sont conservées dans un dictionnaire. Il y a autant de -# dictionnaires que de champs manipulés. L'ensemble de ces dictionnaires est conservé -# dans la liste Liste_Champs. -# Description du dictionnaire de champs : -# dico["Type_Champ"] = o ; string ; "INDICATEUR" ou "CHAMP_MAJ" -# dico["RESULTAT"] = f ; concept ASTER du résutat associé -# dico["NOM_CHAM"] = f ; string ; Nom ASTER du champ -# dico["CHAM_GD"] = f ; concept ASTER du champ de grandeur associée -# dico["COMPOSANTE"] = f ; string ; Nom ASTER de la composante (dans le cas de l'indicateur) -# dico["NUME_ORDRE"] = f ; entier ; Numéro d'ordre du champ -# dico["INST"] = f ; entier ; Instant du champ -# dico["PRECISION"] = f ; entier ; Précision sur l'instant du champ -# dico["CRITERE"] = f ; entier ; Critère de précision sur l'instant du champ -# dico["CHAM_MAJ"] = f ; string ; Nom ASTER du champ interpolé sur le nouveau maillage -# dico["NOM_MED"] = o ; string ; Nom MED du champ -# - from Accas import _F - import aster - import string - import types - import os - import shutil -# - global Liste_Passages -# -#-------------------------------------------------------------------- -# 1. Préalables -#-------------------------------------------------------------------- -# -# 1.1. ==> La macro compte pour 1 dans la numerotation des commandes -# - self.set_icmd(1) -# -# 1.2. ==> Numéro du passage dans cette macro -# - try : - self.jdc.indice_macro_homard = self.jdc.indice_macro_homard + 1 - except : - self.jdc.indice_macro_homard = 1 - Liste_Passages = [] - Numero_Passage_Fonction = self.jdc.indice_macro_homard -### print "Numero_Passage_Fonction = ",Numero_Passage_Fonction -# -# 1.3. ==> On importe les definitions des commandes a utiliser dans la macro -# - DEFI_FICHIER = self.get_cmd("DEFI_FICHIER") - IMPR_RESU = self.get_cmd("IMPR_RESU") - EXEC_LOGICIEL = self.get_cmd("EXEC_LOGICIEL") - IMPR_FICO_HOMA = self.get_cmd("IMPR_FICO_HOMA") - LIRE_MAILLAGE = self.get_cmd("LIRE_MAILLAGE") - LIRE_CHAMP = self.get_cmd("LIRE_CHAMP") - DETRUIRE = self.get_cmd('DETRUIRE') -# -# 1.4. ==> Le nom du programme HOMARD à lancer -# - repertoire_outils = aster.repout() - homard = repertoire_outils + "homard" -# -# 1.5. ==> Initialisations -# - codret = 0 - codret_partiel = [0] - Rep_Calc_ASTER = os.getcwd() -# - Liste_Maillages = [] - Liste_Champs = [] - dico_indi = {} -# - ADAPTATION = None - MAJ_CHAM = None -# - unite = 71 -# -#-------------------------------------------------------------------- -# 2. Décodage des arguments de la macro-commande -#-------------------------------------------------------------------- -# 2.1. ==> Données de pilotage de l'adaptation -# - if ( self.nom == "MACR_ADAP_MAIL" ) : -# - modhom = "ADAP" -# - ADAPTATION = args["ADAPTATION"] - if args.has_key("MAJ_CHAM") : - MAJ_CHAM = args["MAJ_CHAM"] -# -# 2.1.1. ==> Les concepts "maillage" -# - for mot_cle in ["MAILLAGE_N","MAILLAGE_NP1"] : - dico = {} - dico["Type_Maillage"] = mot_cle - dico["Nom_ASTER"] = ADAPTATION[mot_cle] - if ( mot_cle == "MAILLAGE_N" ) : - dico["Action"] = "A_ecrire" - else : - dico["Action"] = "A_lire" - Liste_Maillages.append(dico) -# -# 2.1.2. ==> L'éventuel indicateur d'erreur -# - if ADAPTATION["LIBRE"] != None : - dico = {} - dico["Type_Champ"] = "INDICATEUR" - if ( ADAPTATION["RESULTAT_N"] != None ) : - lresu = 1 - dico["RESULTAT"] = ADAPTATION["RESULTAT_N"] - noresu = dico["RESULTAT"].nom - dico["NOM_CHAM"] = ADAPTATION["INDICATEUR"] - nomsym = dico["NOM_CHAM"] - if ( ADAPTATION["NUME_ORDRE"] != None ) : - dico["NUME_ORDRE"] = ADAPTATION["NUME_ORDRE"] - if ( ADAPTATION["INST"] != None ) : - dico["INST"] = ADAPTATION["INST"] - for cle in [ "PRECISION", "CRITERE" ] : - if ( ADAPTATION[cle] != None ) : - dico[cle] = ADAPTATION[cle] - else : - lresu = 0 - dico["CHAM_GD"] = ADAPTATION["CHAM_GD"] - noresu = dico["CHAM_GD"].nom - nomsym = " " - nopase = " " -# -### print "Avant appel a aster.mdnoch, lresu = ",lresu,", noresu =", noresu ,", nomsym = ", nomsym ,", nopase = ", nopase - dico["NOM_MED"] = aster.mdnoch ( lresu, noresu, nomsym, nopase ) -### print "dico[\"NOM_MED\"] = ", dico["NOM_MED"] - dico["COMPOSANTE"] = ADAPTATION["NOM_CMP_INDICA"] - Liste_Champs.append(dico) - dico_indi = dico -### print dico -# -# 2.1.3. ==> Les champs à mettre à jour -# -### print ".. Debut de 2.1.3." -# - if ( MAJ_CHAM != None ) : -# - for maj_cham in MAJ_CHAM : -### print maj_cham -# - dico = {} - dico["Type_Champ"] = "CHAMP_MAJ" - Liste_aux = [ "CHAM_MAJ", "TYPE_CHAM", "NOM_CHAM" ] - if ( maj_cham["RESULTAT"] != None ) : - lresu = 1 - Liste_aux.append("RESULTAT") - if ( maj_cham["NUME_ORDRE"] != None ) : - dico["NUME_ORDRE"] = maj_cham["NUME_ORDRE"] - elif ( maj_cham["INST"] != None ) : - dico["INST"] = maj_cham["INST"] - for cle in [ "PRECISION", "CRITERE" ] : - if ( maj_cham[cle] != None ) : - dico[cle] = maj_cham[cle] - noresu = maj_cham["RESULTAT"].nom - nomsym = maj_cham["NOM_CHAM"] - else : - lresu = 0 - Liste_aux.append("CHAM_GD") - noresu = maj_cham["CHAM_GD"].nom - nomsym = " " - for cle in Liste_aux : - dico[cle] = maj_cham[cle] - nopase = " " -### print "Avant appel a aster.mdnoch, lresu = ",lresu,", noresu =", noresu ,", nomsym = ", nomsym ,", nopase = ", nopase - dico["NOM_MED"] = aster.mdnoch ( lresu, noresu, nomsym, nopase ) -# -### print dico - Liste_Champs.append(dico) -# -# 2.2. ==> Données de pilotage de l'information -# - else : -# - modhom = "INFO" -# - dico = {} - dico["Type_Maillage"] = "MAILLAGE_N" - dico["Nom_ASTER"] = args["MAILLAGE"] - dico["Action"] = "A_ecrire" - Liste_Maillages.append(dico) -# -# 2.3. ==> Suivi de frontière -# -### print ".. Debut de 2.3." -# - if ( MAILLAGE_FRONTIERE != None ) : -# - dico = {} - dico["Type_Maillage"] = "MAILLAGE_FRONTIERE" - dico["Nom_ASTER"] = MAILLAGE_FRONTIERE - dico["Action"] = "A_ecrire" - Liste_Maillages.append(dico) -# -#-------------------------------------------------------------------- -# 3. Préparation du lancement des commandes -#-------------------------------------------------------------------- -# -# 3.1. ==> . Elaboration des noms MED des concepts de maillage -# . Memorisation des noms ASTER du maillage en entrée et en sortie (sous forme string) -# On crée une nouvelle liste des dictionnaires décrivant les maillages -# et à la fin on écrase l'ancienne liste par cette nouvelle. -# -### print ".. Debut de 3.1." -# - L = [] - for dico in Liste_Maillages : - dico["NOM_MED"] = aster.mdnoma(dico["Nom_ASTER"].nom) - L.append(dico) - if ( dico["Type_Maillage"] == "MAILLAGE_N" ) : - Nom_Concept_Maillage_N = dico["Nom_ASTER"].nom - elif ( dico["Type_Maillage"] == "MAILLAGE_NP1" ) : - Nom_Concept_Maillage_NP1 = dico["Nom_ASTER"].nom - Liste_Maillages = L -# -# 3.2. ==> Recherche du numéro d'itération et du répertoire de travail -# -# 3.2.1. ==> Par défaut : -# . le numéro d'itération est nul -# . le nom du répertoire de lancement de HOMARD est construit sur le nom -# du maillage en entrée et le numéro de passage dans la fonction -# -### print ".. Debut de 3.2.1." -# - niter = 0 - Nom_Rep_local = Nom_Concept_Maillage_N + "_" + modhom + "_" + str(Numero_Passage_Fonction) - Rep_Calc_HOMARD_local = os.path.join(".",Nom_Rep_local) - Rep_Calc_HOMARD_global = os.path.join(Rep_Calc_ASTER,Nom_Rep_local) -### print "Rep_Calc_HOMARD_local = ", Rep_Calc_HOMARD_local -### print "Rep_Calc_HOMARD_global = ", Rep_Calc_HOMARD_global -# -# 3.2.2. ==> En adaptation : -# - if ( modhom == "ADAP" ) : -# -# 3.2.2.1. ==> On recherche si dans les passages déjà effectués, il en existe un -# dont le maillage d'arrivée était l'actuel maillage d'entrée. Si c'est -# le cas, cela veut dire que l'adaptation en cours est la suite d'une -# précédente. On doit donc utiliser le meme répertoire. Le numéro -# d'itération est celui de l'adaptation précédente augmenté de 1. -# - for dico in Liste_Passages : - if ( dico["Maillage_NP1"] == Nom_Concept_Maillage_N ) : - niter = dico["niter"] + 1 - Rep_Calc_HOMARD_local = dico["Rep_Calc_HOMARD_local"] - Rep_Calc_HOMARD_global = dico["Rep_Calc_HOMARD_global"] -# -# 3.2.2.2. ==> Memorisation de ce passage -# -# 3.2.2.2.1. ==> Enregistrement d'un nouveau cas de figure -# - if ( niter == 0 ) : - dico = {} - dico["Maillage_0"] = Nom_Concept_Maillage_N - dico["Maillage_NP1"] = Nom_Concept_Maillage_NP1 - dico["Rep_Calc_HOMARD_local"] = Rep_Calc_HOMARD_local - dico["Rep_Calc_HOMARD_global"] = Rep_Calc_HOMARD_global - dico["niter"] = niter - Liste_Passages.append(dico) -# -# 3.2.2.2.2. ==> Modification du cas en cours -# - else : - L = [] - for dico in Liste_Passages : - if ( dico["Maillage_NP1"] == Nom_Concept_Maillage_N ) : - dico["Maillage_NP1"] = Nom_Concept_Maillage_NP1 - dico["niter"] = niter - L.append(dico) - Liste_Passages = L -# -### print "niter = ", niter, ", Rep_Calc_HOMARD_global = ", Rep_Calc_HOMARD_global -# -#-------------------------------------------------------------------- -# 4. Ecriture des commandes -#-------------------------------------------------------------------- -# -# 4.1. ==> Création du répertoire pour homard -# attention : on ne fait cette creation qu'une seule fois par cas -# d'adaptation ou d'information -# - if ( niter == 0 ) : -# - try : - os.mkdir(Rep_Calc_HOMARD_global) - except os.error,codret_partiel : - self.cr.warn("Code d'erreur de mkdir : " + str(codret_partiel[0]) + " : " + codret_partiel[1]) - self.cr.fatal(" Impossible de créer le répertoire de travail pour HOMARD : "+Rep_Calc_HOMARD_global) - codret = codret + 1 -# -# 4.2. ==> Ecriture des commandes de creation des donnees MED -# -# On doit écrire : le maillage, -# le champ d'indicateur d'erreur -# les champs à convertir -# Remarque : on met tout dans le meme fichier -# -# Chacune de ces écritures est optionnelle selon le contexte. -# - if ( INFO > 1 ) : infomail = "OUI" - else : infomail = "NON" -# -# 4.2.1. ==> Noms des fichiers d'ASTER vers HOMARD et éventuellement de HOMARD vers ASTER -# Remarque : aujourd'hui, les écritures ou les lectures au format MED se font obligatoirement sur -# un fichier de nom fort.n, placé dans le répertoire de calcul -# Dans le fichier de configuration, on donne comme nom MAILL.(niter).MED en entrée et -# MAILL.(niter+1).MED en sortie (cf. adhc00) -# Tant que les E/S MED n'ont pas évolué, on fait un lien pour assurer la cohérence. -# -# 4.2.1.1. ==> D'ASTER vers HOMARD -# - Unite_Fichier_ASTER_vers_HOMARD = 1787 + 2*Numero_Passage_Fonction - Fichier_ASTER_vers_HOMARD = os.path.join(Rep_Calc_ASTER,"fort." + str(Unite_Fichier_ASTER_vers_HOMARD)) - Fichier_HOMARD_Entree = os.path.join(Rep_Calc_HOMARD_global,"MAILL."+str(niter)+".MED") -### print "Fichier_ASTER_vers_HOMARD = ",Fichier_ASTER_vers_HOMARD -### print "Fichier_HOMARD_Entree = ",Fichier_HOMARD_Entree - try : - os.symlink(Fichier_ASTER_vers_HOMARD,Fichier_HOMARD_Entree) - except os.error,codret_partiel : - self.cr.warn("Code d'erreur de symlink : " + str(codret_partiel[0]) + " : " + codret_partiel[1]) - self.cr.fatal(" Probleme au lien entre " + Fichier_ASTER_vers_HOMARD + " et " + Fichier_HOMARD_Entree) - codret = codret + 1 -# -# 4.2.1.2. ==> De HOMARD vers ASTER -# - if ( modhom == "ADAP" ) : - Unite_Fichier_HOMARD_vers_ASTER = Unite_Fichier_ASTER_vers_HOMARD + 1 - Fichier_HOMARD_vers_ASTER = os.path.join(Rep_Calc_ASTER,"fort." + str(Unite_Fichier_HOMARD_vers_ASTER)) - Fichier_HOMARD_Sortie = os.path.join(Rep_Calc_HOMARD_global,"MAILL."+str(niter+1)+".MED") -### print "Fichier_HOMARD_vers_ASTER = ",Fichier_HOMARD_vers_ASTER -### print "Fichier_HOMARD_Sortie = ",Fichier_HOMARD_Sortie - try : - os.symlink(Fichier_HOMARD_vers_ASTER,Fichier_HOMARD_Sortie) - except os.error,codret_partiel : - self.cr.warn("Code d'erreur de symlink : " + str(codret_partiel[0]) + " : " + codret_partiel[1]) - self.cr.fatal(" Probleme au lien entre " + Fichier_HOMARD_vers_ASTER + " et " + Fichier_HOMARD_Sortie) - codret = codret + 1 -# -# 4.2.2. La définition du fichier de ASTER vers HOMARD -# - DEFI_FICHIER ( ACTION= "ASSOCIER", - UNITE = Unite_Fichier_ASTER_vers_HOMARD, - TYPE = "LIBRE", - INFO = INFO ) -# -# 4.2.3. Le(s) maillage(s) -# Le maillage de calcul et l'éventuel maillage de la frontiere sont écrits -# dans le meme fichier MED -# En fait, on pourrait s'en passer au dela de la 1ère itération -# car HOMARD a mémorisé. Mais dès que l'on écrit un champ, -# les conventions MED imposent la présence du maillage dans le fichier. -# Donc on va toujours écrire. -# - for dico in Liste_Maillages : - if ( dico["Action"] == "A_ecrire" ) : - motscsi={} - motscsi["MAILLAGE"] = dico["Nom_ASTER"] - motscfa={} - motscfa["RESU"]=_F( INFO_MAILLAGE=infomail, - **motscsi ) -# - IMPR_RESU ( INFO = INFO, - FORMAT ='MED', UNITE = Unite_Fichier_ASTER_vers_HOMARD, - **motscfa ) -# -# 4.2.4. Le(s) champ(s) -# Attention : il se peut que l'on demande la mise à jour du champ qui a servi comme -# indicateur d'erreur. Si c'est le cas, il ne faut pas demander son -# impression sinon il y a plantage d'IMPR_RESU qui ne sait pas substituer -# deux champs. D'ailleurs, c'est plus économique ainsi ! -# Remarque : pour l'adaptation, on ne demande a priori qu'une composante du champ d'indicateur. -# s'il y a demande de mise à jour, toutes les composantes sont concernées. Il faut -# donc dans ce cas imprimer le champ total. -# dico["Type_Champ"] = o ; string ; "INDICATEUR" ou "CHAMP_MAJ" -# dico["RESULTAT"] = f ; concept ASTER du résutat associé -# dico["NOM_CHAM"] = f ; string ; Nom ASTER du champ -# dico["CHAM_GD"] = f ; concept ASTER du champ de grandeur associée -# dico["COMPOSANTE"] = f ; string ; Nom ASTER de la composante (dans le cas de l'indicateur) -# dico["NUME_ORDRE"] = f ; entier ; Numéro d'ordre du champ -# dico["INST"] = f ; entier ; Instant du champ -# dico["PRECISION"] = f ; entier ; Précision sur l'instant du champ -# dico["CRITERE"] = f ; entier ; Critère de précision sur l'instant du champ -# dico["CHAM_MAJ"] = f ; string ; Nom ASTER du champ interpolé sur le nouveau maillage -# dico["NOM_MED"] = o ; string ; Nom MED du champ -# -# 4.2.4.1. Recherche d'un doublon éventuel sur le champ d'indicateur d'erreur -# -### print "dico_indi = ",dico_indi - if len(dico_indi) > 0 : - indic_est_deja_imprime = 0 - if dico_indi.has_key("RESULTAT") : - Liste_aux = [ "RESULTAT", "NOM_CHAM" ] - else : - Liste_aux = [ "CHAM_GD" ] - else : - indic_est_deja_imprime = 1 - Liste_aux = [ ] -### print ".. Au debut de la boucle, Liste_aux = ",Liste_aux -### print ".. Au debut de la boucle, indic_est_deja_imprime = ",indic_est_deja_imprime -# - Liste_Champs_imprime = [] - for dico in Liste_Champs : -### print "\n.... dico = ",dico -# Pour un champ à mettre à jour, on a toujours impression - if ( dico["Type_Champ"] == "CHAMP_MAJ" ) : - Liste_Champs_imprime.append(dico) -# Si le champ d'indicateur n'a toujours pas été repéré comme champ à mettre à jour : - if not indic_est_deja_imprime : -# Est-ce le meme champ ? - ok = 1 - for cle in Liste_aux : - if ( dico.has_key(cle) ) : -### print "...... dico_indi[cle] = ",dico_indi[cle] -### print "...... dico[cle] = ",dico[cle] - if ( dico_indi[cle] != dico[cle] ) : - ok = 0 - break - else : - ok = 0 - break -# Si oui, est-ce au meme moment ? (remarque : si rien n'est désigné, c'est qu'il n'y a qu'un -# seul instant ... donc c'est le meme ! En revanche, on ne sait pas comparer une donnée -# en numéro d'ordre et une donnée en instant. On croise les doigts.) - if ok : - for cle in [ "NUME_ORDRE", "INST" ] : - if dico.has_key(cle) : - if ( dico[cle] != None ) : - if dico_indi.has_key(cle) : - if ( dico_indi[cle] != dico[cle] ) : - ok = 0 - break - if ok : indic_est_deja_imprime = 1 -### print "\n\nFin de la boucle .. indic_est_deja_imprime = ",indic_est_deja_imprime -# Si le champ d'indicateur n'a pas été repéré comme champ à mettre à jour, il faut -# l'inclure dans les champs à imprimer - if not indic_est_deja_imprime : Liste_Champs_imprime.append(dico_indi) -# -# 4.2.4.2. Impressions après le filtrage précédent -### print ".. Debut de 4.2.4.2." -# - for dico in Liste_Champs_imprime : - motscsi={} - for cle in [ "RESULTAT", "NOM_CHAM", "CHAM_GD", "NUME_ORDRE", "INST", "PRECISION", "CRITERE" ] : - if dico.has_key(cle) : - if ( dico[cle] != None ) : - motscsi[cle] = dico[cle] - if dico.has_key("COMPOSANTE") : - motscsi["NOM_CMP"] = dico["COMPOSANTE"] - motscfa={} - motscfa["RESU"]=_F( INFO_MAILLAGE=infomail, - **motscsi - ) -### print ".. motscfa = ",motscfa -# - IMPR_RESU ( INFO = INFO, - FORMAT ='MED', UNITE = Unite_Fichier_ASTER_vers_HOMARD, - **motscfa ) -# -# 4.3. ==> Ecriture de la commande d'écriture des fichiers de données pour HOMARD -# - motscfa={} -# -# 4.3.1. ==> Le traitement -# - motscsi={} -# -# 4.3.1.1. ==> Le type de traitement -# - if ( modhom == "ADAP" ) : - if ( ADAPTATION["UNIFORME"] != None ) : - motscsi["UNIFORME"] = ADAPTATION["UNIFORME"] - else : - motscsi["ADAPTATION"] = ADAPTATION["LIBRE"] - else : - motscsi["INFORMATION"] = "OUI" -# -# 4.3.1.2. ==> Les noms med des maillages -# - for dico in Liste_Maillages : -### print "Nom MED de " + dico["Type_Maillage"] + " = " + dico["NOM_MED"] - motscsi[ "NOM_MED_"+dico["Type_Maillage"] ] = dico["NOM_MED"] -# -# 4.3.1.3. ==> Les caracteristiques de l'éventuel indicateur d'erreur -# - for dico in Liste_Champs : - if ( dico["Type_Champ"] == "INDICATEUR" ) : - Liste_aux = [ "NOM_MED", "COMPOSANTE" ] - if dico.has_key("NUME_ORDRE") : - Liste_aux.append("NUME_ORDRE") - else : - for cle in [ "RESULTAT", "NOM_CHAM", "INST", "PRECISION", "CRITERE" ] : - Liste_aux.append(cle) - for cle in Liste_aux : - if dico.has_key(cle) : - if ( dico[cle] != None ) : - motscsi[cle] = dico[cle] -# -# 4.3.1.4. ==> Les critères de raffinement et les niveaux extremes -# - if ( modhom == "ADAP" ) : - Liste_aux = [ ] - if ( ADAPTATION["LIBRE"] == "RAFF_DERA" or ADAPTATION["LIBRE"] == "RAFFINEMENT" ) : - Liste_aux.append("CRIT_RAFF_ABS") - Liste_aux.append("CRIT_RAFF_REL") - Liste_aux.append("CRIT_RAFF_PE") - if ( ADAPTATION["LIBRE"] == "RAFF_DERA" or ADAPTATION["LIBRE"] == "DERAFFINEMENT" ) : - Liste_aux.append("CRIT_DERA_ABS") - Liste_aux.append("CRIT_DERA_REL") - Liste_aux.append("CRIT_DERA_PE") - niveau = 0 - if ( ADAPTATION["LIBRE"] == "RAFF_DERA" or ADAPTATION["LIBRE"] == "RAFFINEMENT" or ADAPTATION["UNIFORME"] == "RAFFINEMENT" ) : - Liste_aux.append("NIVE_MAX") - niveau = niveau + 1 - if ( ADAPTATION["LIBRE"] == "RAFF_DERA" or ADAPTATION["LIBRE"] == "DERAFFINEMENT" or ADAPTATION["UNIFORME"] == "DERAFFINEMENT" ) : - Liste_aux.append("NIVE_MIN") - niveau = niveau + 2 - for mot_cle in Liste_aux : - if ( ADAPTATION[mot_cle] != None ) : - motscsi[mot_cle] = ADAPTATION[mot_cle] -# - if ( niveau == 2 ) : - if ( ADAPTATION["NIVE_MIN"] > ADAPTATION["NIVE_MAX"] ) : - self.cr.fatal(" Le niveau minimum doit etre inferieur au niveau maximum.") - codret = codret + 1 -# -# 4.3.1.5. ==> Numéro d'itération -# - if ( modhom == "ADAP" ) : - motscsi["NITER"] = niter -# -# 4.3.1.6. ==> Suivi de la frontiere -# - if args.has_key("GROUP_MA") : - if ( args["GROUP_MA"] != None ) : - motscsi["GROUP_MA"] = args["GROUP_MA"] -# -# 4.3.1.7. ==> Bilan -# - motscfa["TRAITEMENT"] = _F(**motscsi) -# -# 4.3.2. ==> L'analyse -# - motscsi={} - if ( NOMBRE != None ) : motscsi["NOMBRE" ] = NOMBRE - if ( QUALITE != None ) : motscsi["QUALITE" ] = QUALITE - if ( CONNEXITE != None ) : motscsi["CONNEXITE" ] = CONNEXITE - if ( TAILLE != None ) : motscsi["TAILLE" ] = TAILLE - if ( INTERPENETRATION != None ) : motscsi["INTERPENETRATION" ] = INTERPENETRATION -# - motscfa["ANALYSE"] = _F(**motscsi) -# -# 4.3.3. ==> La mise à jour de champs -# - prem = 1 - for dico in Liste_Champs : - motscsi={} - if ( dico["Type_Champ"] == "CHAMP_MAJ" ) : - Liste_aux = [ "NOM_MED", "COMPOSANTE" ] - if dico.has_key("NUME_ORDRE") : - Liste_aux.append("NUME_ORDRE") - else : - for cle in [ "RESULTAT", "NOM_CHAM", "INST", "PRECISION", "CRITERE" ] : - Liste_aux.append(cle) - for cle in Liste_aux : - if dico.has_key(cle) : - if ( dico[cle] != None ) : - motscsi[cle] = dico[cle] -### print motscsi - if prem : - motscfa["MAJ_CHAM"] = [_F(**motscsi),] - prem = 0 - else : - motscfa["MAJ_CHAM"].append(_F(**motscsi)) -# -# 4.3.4. ==> La commande -# -# 4.3.4.1. ==> Les fichiers annexes -# - dico = {} -# - Nom_Fichier_Configuration = "HOMARD.Configuration" - Fichier_Configuration = os.path.join(Rep_Calc_HOMARD_global,Nom_Fichier_Configuration) - dico[Fichier_Configuration] = ("HOMARD_CONFIG","UNITE_CONF",unite) -# - if ( modhom != "ADAP" ) : - unite = unite + 1 - Nom_Fichier_Donnees = "HOMARD.Donnees" - Fichier_Donnees = os.path.join(Rep_Calc_HOMARD_global,Nom_Fichier_Donnees) -# 1234567890123456 - dico[Fichier_Donnees] = ("HOMARD_DONN","UNITE_DONN",unite) -# -# 4.3.4.2. ==> L'ouverture de ces fichiers -# - for fic in dico.keys() : - DEFI_FICHIER ( ACTION= "ASSOCIER", FICHIER = fic, UNITE = dico[fic][2], - TYPE = "ASCII", ACCES = "NEW", INFO = INFO ) - motscfa[dico[fic][1]] = dico[fic][2] -# -# 4.3.4.3. ==> Ecriture -# -### print motscfa - IMPR_FICO_HOMA ( INFO=INFO, LANGUE = LANGUE, NON_SIMPLEXE = NON_SIMPLEXE, **motscfa ) -# -### for fic in dico.keys() : -### print "\nContenu de ", fic -### fichier = open (fic,"r") -### les_lignes = fichier.readlines() -### fichier.close() -### for ligne in les_lignes : -### print ligne[:-1] -# -# 4.3.4.4. ==> La fermeture des fichiers locaux -# Remarque : il faut le faire ici pour que le gestionnaire de DEFI_FICHIER soit à jour -# Remarque : aujourd'hui on est obligé de passer par le numéro d'unité logique -# - for fic in dico.keys() : - DEFI_FICHIER ( ACTION= "LIBERER", UNITE = dico[fic][2], INFO = INFO ) -# -# 4.4. ==> Ecriture de la commande d'exécution de homard -# Remarque : dans la donnée de la version de HOMARD, il faut remplacer -# le _ de la donnee par un ., qui -# est interdit dans la syntaxe du langage de commandes ASTER -# Remarque : il faut remplacer le N majuscule de la donnee par -# un n minuscule, qui est interdit dans la syntaxe du langage -# de commandes ASTER -# Remarque : pour le nommage des fichiers d'échange entre ASTER et HOMARD, on utilise -# la convention implicite du fort.n des entrees/sorties au format MED -# -### Fichier_ASTER_vers_HOMARD_2 = os.path.join("/home/gnicolas","fort." + str(Unite_Fichier_ASTER_vers_HOMARD)) -### shutil.copyfile(Fichier_ASTER_vers_HOMARD,Fichier_ASTER_vers_HOMARD_2) -# - VERSION_HOMARD=string.replace(VERSION_HOMARD,"_",".") - VERSION_HOMARD=string.replace(VERSION_HOMARD,"N","n") - if ( VERSION_HOMARD[-6:]=="_PERSO" ): -# motscsi["ARGUMENT"]=_F("TYPEXE"="-PERSO") - VERSION_HOMARD=VERSION_HOMARD[:-6] -# - if ( modhom == "ADAP" ) : - Nom_Fichier_Donnees = "0" -# - EXEC_LOGICIEL ( ARGUMENT = (_F(NOM_PARA=Rep_Calc_HOMARD_global), # nom du repertoire - _F(NOM_PARA=VERSION_HOMARD), # version de homard - _F(NOM_PARA=str(INFO)), # niveau d information - _F(NOM_PARA=Nom_Fichier_Donnees), # fichier de données HOMARD - ), - LOGICIEL = homard - ) -# -### if ( modhom == "ADAP" ) : -### Fichier_HOMARD_vers_ASTER_2 = os.path.join("/home/gnicolas","fort." + str(Unite_Fichier_HOMARD_vers_ASTER)) -### shutil.copyfile(Fichier_HOMARD_vers_ASTER,Fichier_HOMARD_vers_ASTER_2) -# -# 4.5. ==> Ecriture de la commande de lecture des resultats med -# Remarque : -# La fonction self.DeclareOut(a,b) focntionne ainsi : -# a est une chaine de caracteres -# b est la variable déclarée dans la commande -# le but est de associer le contenu de b à la variable locale qui sera désignée par a -# Exemple : -# self.DeclareOut("maillage_np1",ADAPTATION["MAILLAGE_NP1"]) -# ==> la variable maillage_np1 est identifiée à l'argument "MAILLAGE_NP1" du mot-clé ADAPTATION -# - if ( modhom == "ADAP" ) : -# -# 4.5.1. ==> Le maillage -# - self.DeclareOut("maillage_np1",ADAPTATION["MAILLAGE_NP1"]) - for dico in Liste_Maillages : - if ( dico["Action"] == "A_lire" ) : - maillage_np1 = LIRE_MAILLAGE ( UNITE = Unite_Fichier_HOMARD_vers_ASTER, - FORMAT = "MED", - NOM_MED = dico["NOM_MED"], - VERI_MAIL = _F(VERIF="NON"), INFO_MED = INFO, INFO = INFO ) -# -# 4.5.2. ==> Les champs -# - for dico in Liste_Champs : - if ( dico["Type_Champ"] == "CHAMP_MAJ" ) : -### print dico - self.DeclareOut("champ_maj",dico["CHAM_MAJ"]) - motscsi={} - for cle in [ "NUME_ORDRE", "INST", "PRECISION", "CRITERE" ] : - if dico.has_key(cle) : - if ( dico[cle] != None ) : - motscsi[cle] = dico[cle] - if dico.has_key("NUME_ORDRE") : - motscsi["NUME_PT"] = dico["NUME_ORDRE"] - champ_maj = LIRE_CHAMP ( UNITE = Unite_Fichier_HOMARD_vers_ASTER, FORMAT = "MED", - MAILLAGE = maillage_np1, - NOM_MED = dico["NOM_MED"], NOM_CMP_IDEM = "OUI", TYPE_CHAM = dico["TYPE_CHAM"], - INFO = INFO, **motscsi ) -# -#-------------------------------------------------------------------- -# 5. Menage des fichiers MED et HOMARD devenus inutiles -#-------------------------------------------------------------------- -# - fic = os.path.join(Rep_Calc_HOMARD_global,"MAILL."+str(niter)+".HOM") - Liste_aux = [ Fichier_ASTER_vers_HOMARD, Fichier_HOMARD_Entree, fic ] - if ( modhom == "ADAP" ) : - Liste_aux.append(Fichier_HOMARD_vers_ASTER) - Liste_aux.append(Fichier_HOMARD_Sortie) -# - for fic in Liste_aux : - if ( INFO > 1 ) : print "Destruction du fichier ", fic - if os.path.islink(fic) : - try : - os.unlink(fic) - except os.error,codret_partiel : - self.cr.warn("Code d'erreur de unlink : " + str(codret_partiel[0]) + " : " + codret_partiel[1]) - self.cr.warn("Impossible d'enlever le lien sur le fichier : "+fic) - codret = codret + 1 - if os.path.isfile(fic) : - try : - os.remove(fic) - except os.error,codret_partiel : - self.cr.warn("Code d'erreur de remove : " + str(codret_partiel[0]) + " : " + codret_partiel[1]) - self.cr.warn("Impossible de détruire le fichier : "+fic) - codret = codret + 1 -### print os.listdir(Rep_Calc_ASTER) -### print os.listdir(Rep_Calc_HOMARD_global) -# -#-------------------------------------------------------------------- -# 6. C'est fini ! -#-------------------------------------------------------------------- -# - return codret diff --git a/Aster/Cata/cataSTA81/Macro/macr_ascouf_calc_ops.py b/Aster/Cata/cataSTA81/Macro/macr_ascouf_calc_ops.py deleted file mode 100644 index f72ebd58..00000000 --- a/Aster/Cata/cataSTA81/Macro/macr_ascouf_calc_ops.py +++ /dev/null @@ -1,687 +0,0 @@ -#@ MODIF macr_ascouf_calc_ops Macro DATE 05/09/2005 AUTEUR DURAND C.DURAND -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - -def macr_ascouf_calc_ops(self,TYPE_MAILLAGE,CL_BOL_P2_GV,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM, - FOND_FISS,CHARGE,RESU_THER,AFFE_MATERIAU, - PRES_REP,ECHANGE,TORS_P1,COMP_INCR,COMP_ELAS, - SOLVEUR,CONVERGENCE,NEWTON,RECH_LINEAIRE, - INCREMENT,THETA_3D,IMPR_TABLE,IMPRESSION,INFO,TITRE ,**args): - """ - Ecriture de la macro MACR_ASCOUF_CALC - """ - from Accas import _F - import types - import math - import aster - from math import pi,sin,cos,sqrt,atan2 - from Utilitai.Utmess import UTMESS - ier=0 -# On recopie les mots cles affe_materiau et impr_table pour les proteger - mc_AFFE_MATERIAU=AFFE_MATERIAU - mc_IMPR_TABLE =IMPR_TABLE - # On importe les definitions des commandes a utiliser dans la macro - AFFE_MODELE =self.get_cmd('AFFE_MODELE' ) - AFFE_MATERIAU =self.get_cmd('AFFE_MATERIAU' ) - AFFE_CARA_ELEM =self.get_cmd('AFFE_CARA_ELEM' ) - AFFE_CHAR_THER_F =self.get_cmd('AFFE_CHAR_THER_F') - THER_LINEAIRE =self.get_cmd('THER_LINEAIRE' ) - AFFE_CHAR_MECA =self.get_cmd('AFFE_CHAR_MECA' ) - STAT_NON_LINE =self.get_cmd('STAT_NON_LINE' ) - CALC_ELEM =self.get_cmd('CALC_ELEM' ) - IMPR_RESU =self.get_cmd('IMPR_RESU' ) - IMPR_TABLE =self.get_cmd('IMPR_TABLE' ) - DEFI_FOND_FISS =self.get_cmd('DEFI_FOND_FISS' ) - CALC_THETA =self.get_cmd('CALC_THETA' ) - CALC_G_THETA_T =self.get_cmd('CALC_G_THETA_T' ) - CALC_G_LOCAL_T =self.get_cmd('CALC_G_LOCAL_T' ) - POST_RCCM =self.get_cmd('POST_RCCM' ) - POST_RELEVE_T =self.get_cmd('POST_RELEVE_T' ) - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) -#------------------------------------------------------------------ -# DATA - GRMAIL = ('COUDE','PEAUINT','PEAUEXT','EXTUBE','CLGV','FACE1','FACE2') -#------------------------------------------------------------------ -# - if CL_BOL_P2_GV!=None : - if TYPE_MAILLAGE=='SOUS_EPAIS_COUDE' : - message= ' la condition aux limites sur bol a section conique \n' - message=message+' est ignoree pour un coude avec sous-epaisseurs \n' - UTMESS('A', "MACR_ASCOUF_CALC", message) - elif (TYPE_MAILLAGE[:4]!='FISS') and (CL_BOL_P2_GV['AZIMUT']!=None) : - UTMESS('E', "MACR_ASCOUF_CALC", "mot-cle AZIMUT non autorise dans le cas d un coude sain") -# - if mc_IMPR_TABLE!=None : - FLAG = 0 - if (mc_IMPR_TABLE['NOM_PARA']==None) and (mc_IMPR_TABLE['POSI_ANGUL']==None) and (mc_IMPR_TABLE['POSI_CURV_LONGI']==None) : - UTMESS('E', "MACR_ASCOUF_CALC", "POSI_ANGUL POSI_CURV_LONGI est obligatoire") - return ier - if (mc_IMPR_TABLE['NOM_PARA']!=None) : - impr_table_nom_para= mc_IMPR_TABLE['NOM_PARA'] - for impt in impr_table_nom_para : - if impt in ('SI_LONG','SI_CIRC','SI_RADI') : - FLAG = 1 - if (((impt['ANGLE']==None) and (impt['POSI_ANGUL']==None) and (impt['R_CINTR' ]==None)) or - ((impt['ANGLE']==None) and (impt['R_CINTR' ]==None) and (impt['POSI_CURV_LONGI']==None)) ) : - UTMESS('E', "MACR_ASCOUF_CALC", "il faut renseigner : ANGLE, R_CINTR et POSI_ANGUL ou ANGLE, R_CINTR et POSI_CURV_LONGI") - if (mc_IMPR_TABLE['NOM_PARA']==None) : FLAG = 1 - if not FLAG : UTMESS('A', "MACR_ASCOUF_CALC","ANGL_COUDE et ANGL_SOUS_EPAI sont inutiles dans ce cas") -# -#------------------------------------------------------------------ -# -# --- commande AFFE_MODELE --- -# - self.DeclareOut('modele',MODELE) - mcfact=[] - if (PRES_REP!=None) and (PRES_REP['PRES_LEVRE']=='OUI') and (TYPE_MAILLAGE[:4]=='FISS') : - mcfact.append(_F(GROUP_MA=GRMAIL ,PHENOMENE='MECANIQUE',MODELISATION='3D' )) - else: - mcfact.append(_F(GROUP_MA=GRMAIL[:5] ,PHENOMENE='MECANIQUE',MODELISATION='3D' )) - if TORS_P1!=None : - mcfact.append(_F(GROUP_MA='P1' ,PHENOMENE='MECANIQUE',MODELISATION='DIS_TR')) - if CL_BOL_P2_GV==None : - mcfact.append(_F(GROUP_MA='P2' ,PHENOMENE='MECANIQUE',MODELISATION='DIS_TR')) - modele = AFFE_MODELE( MAILLAGE = MAILLAGE , - AFFE = mcfact ) - if ECHANGE!=None : # modele thermique - __modthe = AFFE_MODELE( MAILLAGE = MAILLAGE , - AFFE = _F(TOUT ='OUI', - PHENOMENE ='THERMIQUE', - MODELISATION='3D' ) ) -#------------------------------------------------------------------ -# -# --- commande AFFE_MATERIAU --- -# - if CHAM_MATER!=None : self.DeclareOut('affmat',CHAM_MATER) - mcfact=[] - for mater in mc_AFFE_MATERIAU : - if mater['TOUT']!=None : - mcfact.append(_F(TOUT =mater['TOUT' ],MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF'])) - rccmat = mater['MATER'] - else : - mcfact.append(_F(GROUP_MA=mater['GROUP_MA'],MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF'])) - if mater['GROUP_MA'][:5]=='COUDE' : - if TORS_P1!=None : - mcfact.append(_F(GROUP_MA='P1',MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF'])) - mcfact.append(_F(GROUP_MA='P2',MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF'])) - elif (len(mc_AFFE_MATERIAU)==1) and (CL_BOL_P2_GV==None) : - mcfact.append(_F(GROUP_MA='P2',MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF'])) - elif (mater['BOL' ][:3]=='BOL' ) and (CL_BOL_P2_GV==None) : - mcfact.append(_F(GROUP_MA='P2',MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF'])) - affmat = AFFE_MATERIAU( MAILLAGE = MAILLAGE , - MODELE = modele , - AFFE = mcfact ) -#------------------------------------------------------------------ -# -# --- commande AFFE_CARA_ELEM --- -# - if (TORS_P1!=None) or (CL_BOL_P2_GV==None) : - if CARA_ELEM!=None : self.DeclareOut('carael',CARA_ELEM) - motscles={} - motscles['DISCRET']=[] - if (TORS_P1!=None) : motscles['DISCRET'].append(_F( GROUP_MA='P1' , - CARA ='K_TR_D_N', - VALE = ( 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 ) ),) - if (CL_BOL_P2_GV==None) : motscles['DISCRET'].append(_F( GROUP_MA='P2' , - CARA ='K_TR_D_N', - VALE = ( 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 ) ),) - - carael = AFFE_CARA_ELEM( MODELE = modele ,**motscles) -# - if ECHANGE!=None : -#------------------------------------------------------------------ -# -# --- commande AFFE_CHAR_THER_F --- -# condition aux limites -# - __chther = AFFE_CHAR_THER_F( MODELE = __modthe , - ECHANGE= _F(GROUP_MA='PEAUINT', - COEF_H =ECHANGE['COEF_H'], - TEMP_EXT=ECHANGE['TEMP_EXT'],), ) -#------------------------------------------------------------------ -# -# --- calcul thermique --- -# - if RESU_THER!=None : self.DeclareOut('resuth',RESU_THER) - mcsimp={} - if INCREMENT['NUME_INST_INIT']!=None : mcsimp['NUME_INIT']=INCREMENT['NUME_INST_INIT'] - if INCREMENT['NUME_INST_FIN' ]!=None : mcsimp['NUME_FIN' ]=INCREMENT['NUME_INST_FIN' ] - mcfact=_F(LIST_INST=INCREMENT['LIST_INST'],**mcsimp) - resuth = THER_LINEAIRE( MODELE = __modthe , - CHAM_MATER = affmat , - TEMP_INIT = _F(STATIONNAIRE='OUI',), - EXCIT = _F(CHARGE=__chther,), - INCREMENT = mcfact, ) -# - if CHARGE!=None : self.DeclareOut('chmeth',CHARGE) - chmeth = AFFE_CHAR_MECA( MODELE = modele , - TEMP_CALCULEE = resuth ) -#------------------------------------------------------------------ -# -# --- commande AFFE_CHAR_MECA --- -# condition aux limites de type raccord 3d-poutre -# ou bien blocage de mouvements rigides en cas d embout -# a section conique, bol de type gv -# - motscles={} - motscles['LIAISON_ELEM']=[] - if TORS_P1!=None : - motscles['LIAISON_ELEM'].append(_F( OPTION ='3D_POU' , - GROUP_MA_1='EXTUBE', - GROUP_NO_2='P1') ) - if CL_BOL_P2_GV==None : - motscles['LIAISON_ELEM'].append(_F( OPTION ='3D_POU' , - GROUP_MA_1='CLGV', - GROUP_NO_2='P2') ) - motscles['DDL_IMPO' ]=_F( GROUP_NO ='P2' , - DX = 0.0 , - DY = 0.0 , - DZ = 0.0 , - DRX = 0.0 , - DRY = 0.0 , - DRZ = 0.0 , ) - else : - motscles['FACE_IMPO' ]=_F( GROUP_MA ='CLGV' , - DNOR = 0.0 , ) - ALPHA = CL_BOL_P2_GV['ANGLE' ] - AZIM = CL_BOL_P2_GV['AZIMUT'] - ALPHAR = ALPHA*pi/180.0 - AZIMR = AZIM *pi/180.0 - DDLB1 = [] - COEFB1 = [] - if (AZIM!=0.0) and (AZIM!=180.0) and (ALPHA!=90.0) : - DDLB1.append('DX') - COEFB1.append(SIN(AZIMR)*COS(ALPHAR)) - if (AZIM!=90.0) : - DDLB1.append('DY') - COEFB1.append(COS(AZIMR)) - if (AZIM!=0.) and (AZIM!=180.) and (ALPHA!=0.): - DDLB1.append('DZ') - COEFB1.append(-SIN(AZIMR)*SIN(ALPHAR)) - POINT=['BOUT1',]*len(DDLB1) - motscles['LIAISON_DDL']=_F( GROUP_NO = POINT , - DDL = DDLB1 , - COEF_MULT = COEFB1 , - COEF_IMPO = 0.0 , ) - - __conlim = AFFE_CHAR_MECA( MODELE = modele ,**motscles) -# -# --- commande AFFE_CHAR_MECA --- -# chargement mecanique : pres_rep, effet de fond -# - if PRES_REP!=None : - motscles={} - if (PRES_REP['PRES_LEVRE']=='OUI') and (TYPE_MAILLAGE[:4]=='FISS') : - motscles['PRES_REP']=_F( GROUP_MA = ('PEAUINT','FACE1','FACE2') , - PRES = PRES_REP['PRES'] ,) - else : - motscles['PRES_REP']=_F( GROUP_MA = 'PEAUINT', - PRES = PRES_REP['PRES'] ,) - if PRES_REP['EFFE_FOND_P1']!=None : - motscles['EFFE_FOND']=_F( GROUP_MA_INT = 'BORDTU' , - GROUP_MA = 'EXTUBE' , - PRES = PRES_REP['PRES'] ,) -# - __chpres = AFFE_CHAR_MECA( MODELE = modele ,**motscles) -# -# --- commande AFFE_CHAR_MECA --- -# chargement mecanique : torseur d efforts -# - if TORS_P1!=None : - __chtor = [None]*6 - i=0 - for tors in TORS_P1: - mcsimp={} - if tors['FX']!=None : mcsimp['FX']=tors['FX'] - if tors['FY']!=None : mcsimp['FY']=tors['FY'] - if tors['FZ']!=None : mcsimp['FZ']=tors['FZ'] - if tors['MX']!=None : mcsimp['MX']=tors['MX'] - if tors['MY']!=None : mcsimp['MY']=tors['MY'] - if tors['MZ']!=None : mcsimp['MZ']=tors['MZ'] - mcfact=_F(GROUP_NO='P1',**mcsimp) - __chtor[i] = AFFE_CHAR_MECA( MODELE = modele , - FORCE_NODALE = mcfact , ) - i=i+1 -# -# --- commande STAT_NON_LINE --- -# - motscles={} -# - mcfex=[] # mot clé facteur EXCIT - mcfex.append(_F(CHARGE=__conlim,)) - if ECHANGE!=None : - mcfex.append(_F(CHARGE=chmeth,)) - if PRES_REP!=None: - if PRES_REP['FONC_MULT']!=None : - mcfex.append(_F(CHARGE=__chpres,FONC_MULT=PRES_REP['FONC_MULT'])) - else : - mcfex.append(_F(CHARGE=__chpres,)) - if TORS_P1!=None: - i=0 - for tors in TORS_P1 : - if tors['FONC_MULT']!=None : - mcfex.append(_F(CHARGE=__chtor[i],FONC_MULT=tors['FONC_MULT'])) - else : - mcfex.append(_F(CHARGE=__chtor[i],)) - i=i+1 - motscles['EXCIT'] =mcfex -# - mcfci=[] # mot clé facteur COMP_INCR :obligatoire pour les noeuds discrets - if COMP_INCR!=None : - mcfci.append(_F(TOUT='OUI' ,RELATION=COMP_INCR['RELATION'])) - elif COMP_ELAS!=None : - motscles['COMP_ELAS'] =_F(GROUP_MA='COUDE',RELATION=COMP_ELAS['RELATION']) - if TORS_P1!=None : mcfci.append( _F(GROUP_MA='P1',RELATION='ELAS')) - if CL_BOL_P2_GV==None: mcfci.append( _F(GROUP_MA='P2',RELATION='ELAS')) - motscles['COMP_INCR'] =mcfci -# - dSolveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste) - for i in dSolveur.keys(): - if dSolveur[i]==None : del dSolveur[i] -# - dConverg=CONVERGENCE[0].cree_dict_valeurs(CONVERGENCE[0].mc_liste) - for i in dConverg.keys(): - if dConverg[i]==None : del dConverg[i] -# - dNewton=NEWTON[0].cree_dict_valeurs(NEWTON[0].mc_liste) - for i in dNewton.keys(): - if dNewton[i]==None : del dNewton[i] -# - dRechlin=RECH_LINEAIRE[0].cree_dict_valeurs(RECH_LINEAIRE[0].mc_liste) - for i in dRechlin.keys(): - if dRechlin[i]==None : del dRechlin[i] -# - dIncrem=INCREMENT[0].cree_dict_valeurs(INCREMENT[0].mc_liste) - for i in dIncrem.keys(): - if dIncrem[i]==None : del dIncrem[i] -# - if TITRE!=None : - motscles['TITRE' ] =TITRE - motscles ['SOLVEUR' ] =dSolveur - motscles ['CONVERGENCE' ] =dConverg - motscles ['NEWTON' ] =dNewton - motscles ['RECH_LINEAIRE'] =dRechlin - motscles ['INCREMENT' ] =dIncrem - self.DeclareOut('nomres',self.sd) - nomres = STAT_NON_LINE( MODELE = modele , - CHAM_MATER = affmat , - CARA_ELEM = carael , - INFO = INFO , **motscles) -# -# --- commande CALC_ELEM --- -# - nomres = CALC_ELEM( reuse = nomres, - RESULTAT = nomres , - MODELE = modele , - TOUT_ORDRE = 'OUI' , - OPTION = ('SIEF_ELNO_ELGA','EQUI_ELNO_SIGM') , - INFO = INFO ,) -# -# --- post-traitements --- -# - if TYPE_MAILLAGE=='SOUS_EPAIS_COUDE': -# -# --- post traitement sous-epaisseurs: ligaments --- -# - if mc_IMPR_TABLE!=None: -# - SECT=('MI','TU','GV') - LIG=('FDRO','EXDR','EXTR','EXGA','FGAU','INGA','INTR','INDR') - if mc_IMPR_TABLE['POSI_ANGUL']==None: - ASEP=(mc_IMPR_TABLE['POSI_CURV_LONGI']/mc_IMPR_TABLE['R_CINTR'])*(180./pi) - else : - ASEP=mc_IMPR_TABLE['POSI_ANGUL'] -# -# moyenne_rccm, invariant et moyenne sur les ligaments dans -# l epaisseur -# - l_grno=MAILLAGE.LIST_GROUP_NO() - tabprl=[None]*4 - tablig=[None]*4 -# -# prelevements des ligaments circonferentiels et longitudinaux -# de la sous-epaisseur -# - lgrno=[] - for tgrno in l_grno : - if tgrno[0][:3] in ('CIR','LON') : lgrno.append(tgrno[0]) - elif tgrno[0][:5]=='PCENT' : lgrno.append(tgrno[0]) - elif (tgrno[0][:4] in LIG) and (tgrno[0][4:6] not in ('GV','TU','MI')): lgrno.append(tgrno[0]) -# - motscles={} - motscles['ACTION']=[] - for grno in lgrno : - motscles['ACTION'].append(_F(RESULTAT=nomres, - NOM_CHAM='SIEF_ELNO_ELGA', - TOUT_CMP='OUI', - INTITULE=grno, - GROUP_NO=grno, - OPERATION='EXTRACTION',)) - motscles['TITRE']='TABLE DE POST-TRAITEMENT SECTION SOUS-EPAISSEUR' - tabprl[1]=POST_RELEVE_T(**motscles) - tablig[1]=POST_RCCM(MATER = rccmat, - TYPE_RESU_MECA = 'EVOLUTION', - OPTION = 'PM_PB', - TRANSITOIRE=_F(TABL_RESU_MECA = tabprl[1],),) -# - motscles={} - motscles['ACTION']=[] - for tgrno in lgrno : - motscles['ACTION'].append(_F(RESULTAT=nomres, - NOM_CHAM='SIEF_ELNO_ELGA', - INTITULE=tgrno, - GROUP_NO=tgrno, - INVARIANT='OUI', - OPERATION='EXTRACTION',)) - motscles['TITRE']='TABLE DE POST-TRAITEMENT SECTION SOUS-EPAISSEUR' - - tablig[2]=POST_RELEVE_T(**motscles) -# - motscles={} - nommail=MAILLAGE.nom - coord =aster.getvectjev(nommail.ljust(8)+'.COORDO .VALE') - linomno =aster.getvectjev(nommail.ljust(8)+'.NOMNOE') - collgrno=aster.getcolljev(nommail.ljust(8)+'.GROUPENO') - - motscles['ACTION']=[] - for tgrno in lgrno : - if tgrno[:3]!='LON' : - if mc_IMPR_TABLE['TRANSFORMEE']=='TUBE': vecty=(0.,0.,1.) - else : vecty=(sin(ASEP*pi/180.),0.,cos(ASEP*pi/180.)) - else : - if mc_IMPR_TABLE['TRANSFORMEE']=='TUBE': vecty=(0.,0.,1.) - else : - grpn=collgrno['FGAUTU '] - LT1=coord[3*(grpn[0]-1)+2] - for node in grpn: - X = coord[3*(node-1)] - Y = coord[3*(node-1)+1] - Z = coord[3*(node-1)+2] - RCIN = mc_IMPR_TABLE['R_CINTR'] - if Z=120.) and (AZIM<=240.0): X = RM-EP/2.0 - SUREP - else: X = RM-EP/2.0 - else: X = RM+EP/2.0 - AZIMR = AZIM*2.0*pi/360.0 -# -# -- CALCUL COTE AXIALE DU CENTRE FISSURE SUR LA PLAQUE EN FONCTION -# DE L ABSCISSE CURVILIGNE DONNEE SUR LE COUDE OU DE LA POSITION -# ANGULAIRE -# - if DSF: - if GEOM=='COUDE': SFP = SF/(1.0+X/RC*cos(AZIMR)) - else : SFP = SF - else : - BETAR = BETA*2.0*pi/360.0 - if (GEOM=='COUDE'): - SF = BETAR*(RC+X*cos(AZIMR)) - SFP = SF/(1.0+X/RC*cos(AZIMR)) - else: - SF = BETAR*RC - SFP = SF - if (GEOM=='COUDE'): echo_mess.append( 'COTE AXIALE CENTRE FISSURE SUR COUDE : %.2f \n'%SF) - if (GEOM=='TUBE') : echo_mess.append( 'COTE AXIALE CENTRE FISSURE SUR TUBE : %.2f \n'%SF ) - echo_mess.append( 'COTE AXIALE CENTRE FISSURE SUR PLAQUE : %.2f \n'%SFP) -# -# ON ENVISAGE LE CAS OU UNE PARTIE DE L AXE EST DANS LES -# DROITES DES EMBOUTS. LA TRANSFORMATION N EST FAITE QUE SUR LA -# PARTIE RESTANT DANS LE COUDE. -# - if (GEOM=='COUDE'): DIST = ALPHA*2.0*pi/360.0*(RC+X*cos(AZIMR)) - else : DIST = ALPHA*2.0*pi/360.0*RC - BCOUD = 0.0 - BEMB = 0.0 - if abs(ORIEN)<0.01: -# -- FISSURE LONGITUDINALE (0 DEGRE) - BSUP = SF + AXEC - BINF = SF - AXEC - if BSUP>DIST: - BCOUD = DIST - BINF - BEMB = BSUP - DIST - elif BINF<0. : - BCOUD = BSUP - BEMB = abs(BINF) - elif (BINF>=0. and BSUP<=DIST): - BCOUD = 2.0*AXEC - elif abs(ORIEN-90.)<0.01: -# -- FISSURE CIRCONFERENTIELLE (90 DEGRES) - BSUP = SF - BINF = SF - if BSUP>DIST: - BCOUD = DIST - BINF - BEMB = BSUP - DIST - elif BINF<0. : - BCOUD = BSUP - BEMB = abs(BINF) - elif (BINF>=0. and BSUP<=DIST): - BCOUD = 2.0*AXEC - else: -# -- FISSURE A +/- 45 DEGRES SUR INTRADOS OU EXTRADOS - BSUP = SF + sqrt(2.0)/2.0*AXEC - BINF = SF - sqrt(2.0)/2.0*AXEC - if BSUP>DIST: - BCOUD = (DIST - BINF)*sqrt(2.0) - BEMB = (BSUP - DIST)*sqrt(2.0) - elif BINF<0. : - BCOUD = BSUP *sqrt(2.0) - BEMB = abs(BINF)*sqrt(2.0) - elif (BINF>=0. and BSUP<=DIST): - BCOUD = 2.0*AXEC - echo_mess.append( 'PARTIE DU GRAND AXE DANS LE COUDE : %.2f \n'%BCOUD) - echo_mess.append( 'PARTIE DU GRAND AXE DANS L EMBOUT : %.2f \n'%BEMB) -# -# -- CALCUL DE LA TAILLE DU GRAND AXE FISSURE SUR LA PLAQUE -# - NEWT=0 - if abs(ORIEN)<0.01: -# -- FISSURE LONGITUDINALE (0 DEGRE) - if GEOM=='COUDE': AXECP = BCOUD/(1.0+X/RC*cos(AZIMR)) + BEMB - else : AXECP = BCOUD + BEMB - elif abs(ORIEN-90.)<0.01: -# -- FISSURE CIRCONFERENTIELLE (90 DEGRES) - AXECP = (BCOUD+BEMB)*RM/X - else : - if GEOM=='COUDE': -# ------- TRANSFORMATION COUDE - if AZIM in (0.,180.): -# -- FISSURE A +/- 45 DEGRES SUR INTRADOS OU EXTRADOS - AXECP = BCOUD*RM*sqrt(2.)/( X*sqrt(1.+(RM/X+RM/RC*cos(AZIMR))**2) )+\ - BEMB*sqrt( (1.0+(X/RM)**2)*0.5 ) - else : -# -- FISSURE A +/- 45 DEGRES AILLEURS - AXECP = funct_root.root(ASCFON,(BCOUD-1.,BCOUD+1.)) - AXECP = AXECP + BEMB*sqrt( (1.+(X/RM)**2)*0.5 ) - AXECC = ASCFON(AXECP)+BCOUD - NEWT=1 - elif GEOM=='TUBE': - AXECP = (BCOUD+BEMB)*sqrt( (1.+(X/RM)**2)*0.5 ) - else : - AXECP = BCOUD + BEMB -# - if GEOM=='COUDE': - echo_mess.append( 'TAILLE GRAND AXE COUDE DONNE : %.2f \n'%(2.*AXEC)) - elif GEOM=='TUBE': - echo_mess.append( 'TAILLE GRAND AXE TUBE DONNE : %.2f \n'%(2.*AXEC)) - echo_mess.append( 'TAILLE GRAND AXE PLAQUE DEDUIT : %.2f \n'%AXECP) - if NEWT: - echo_mess.append( 'METHODE DE NEWTON FISSURE A 45 DEGRES --> \n') - echo_mess.append( 'TAILLE GRAND AXE COUDE RECALCULE : %.2f \n'%AXECC) - if GEOM=='COUDE' and BEMB>0. and BSUP>DIST : - SFP = ALPHA*2.*pi*RC/360. - AXECP/2. + BEMB - echo_mess.append( 'CORRECTION CENTRE : FISSURE A CHEVAL SUR EMBOUT \n') - echo_mess.append( 'ABSC. CURV. AXIALE CENTRE FISSURE SUR PLAQUE : %.2f \n'%SFP) - if GEOM=='COUDE' and BEMB>0. and BINF<0. : - SFP = + AXECP/2. - BEMB - echo_mess.append( 'CORRECTION CENTRE : FISSURE A CHEVAL SUR EMBOUT \n') - echo_mess.append( 'ABSC. CURV. AXIALE CENTRE FISSURE SUR PLAQUE : %.2f \n'%SFP) -# -# -- CORRECTION DU PETIT AXE DE LA FISSURE QUAND CELLE-CI SE TROUVE SUR -# LA ZONE DE SUREPAISSEUR -# - ALPHAR = ALPHA*2.*pi/360. - ZSUR1 = ALPHAR*RC/10. - ZSUR2 = ALPHAR*RC*9./10. - YFISS = (AZIMR-pi/2.)*RM - MU = 0. - if (AZIM>=120.) and (AZIM<=240.): - if (SFP>=ZSUR1) and (SFP<=ZSUR2): MU = 1. - elif (SFP<=ZSUR1): MU = SFP/ZSUR1 - elif (SFP>ZSUR2): MU = (ALPHAR*RC-SFP)/ZSUR1 - elif (AZIM>=90.) and (AZIM<=120.): - if (SFP>=ZSUR1) and (SFP<=ZSUR2): MU = YFISS/(pi/6.*RM) - elif (SFP<=ZSUR1): MU = YFISS*SFP/(pi/6.*RM*ZSUR1) - elif (SFP>ZSUR2): MU = YFISS*(ALPHAR*RC-SFP)/(pi/6.*RM*ZSUR1) - elif (AZIM>=240.) and (AZIM<=270.): - if (SFP>=ZSUR1) and (SFP<=ZSUR2): MU = (YFISS-5.*pi/6.*RM)/(pi/6.*RM) - elif (SFP<=ZSUR1): MU = (YFISS-5.*pi/6.*RM)*SFP/(pi/6.*RM*ZSUR1) - elif (SFP>ZSUR2): MU = (YFISS-5.*pi/6.*RM)*(ALPHAR*RC-SFP)/(pi/6.*RM*ZSUR1) -# - if SUREP!=0.: - AXEAP = AXEA * EP / ( EP + MU*SUREP ) - echo_mess.append( '--> CORRECTION DUE A LA SUREPAISSEUR \n' ) - echo_mess.append( '--> TAILLE PETIT AXE PLAQUE : %.2f \n'%AXEAP ) - else: AXEAP = AXEA -# - texte_final=string.join(echo_mess) - aster.affiche('MESSAGE',texte_final) - return AXEAP,AXECP,SFP - - -# ------------------------------------------------------------------------------ -def ASCSEP(MCL_SOUS_EPAIS,ALPHA,RM,RC,EP,GEOM,SYME): - """ - MACR_ASCOUF_MAIL ASCSEP - taille initiale sur la plaque des sous-epaisseurs - - ------------DONNEES FOURNIES PAR L UTILISATEUR-------------------- - - ALPHA = ANGLE DU COUDE - RM = RAYON MOYEN DU COUDE - RC = RAYON DE CINTRAGE DU COUDE - EP = EPAISSEUR DU COUDE - GEOM = TYPE DE GEOMETRIE MODELISEE (COUDE OU TUBE) - SYME = QUART DE STRUCTURE SI 'OUI' - - """ - ier=0 - CG=pi/180. - echo_mess=['MACR_ASCOUF_MAIL ASCSEP \n',] -# -# --- BOUCLE SUR L ENSEMBLE DES SOUS-EPAISSEURS -# - i=0 - for ssep in MCL_SOUS_EPAIS : - i=i+1 - echo_mess.append( '-------------------------------------\n') - echo_mess.append( 'SOUS-EPAISSEUR NUMERO %d\n'%i) - echo_mess.append( '-------------------------------------\n') -# -# --- CAS DES SOUS-EPAISSEURS AXISYMETRIQUES -# - if ssep['TYPE']=='AXIS': - echo_mess.append( 'SOUS-EPAISSEUR AXISYMETRIQUE : \n') - echo_mess.append( 'CALCUL DE LA TAILLE LONGI ENVELOPPE EN INTRADOS (AZIMUT PI)\n') - ssep.ICIRP = 2.*pi*RM - ssep.ISCP = pi*RM - ssep.IPHIC = 180. - AZIMC = pi - else: -# -# -- CALCUL DE L ABSCISSE CURVILIGNE CIRCONF.SUR LA PLAQUE -# EN FONCTION DE L AZIMUT OU DE L ABSCISSE CURVIL.CIRCONF -# SUR LE COUDE DU CENTRE DE LA SOUS-EPAISSEUR -# NB : MESURE FAITE EN PEAU EXTERNE SUR LE COUDE -# - if ssep['POSI_CURV_CIRC']!=None: - ssep.ISCP = ssep['POSI_CURV_CIRC']*RM/(RM+EP/2.) - AZIMC = ssep.ISCP/RM - ssep.IPHIC = ssep['POSI_CURV_CIRC']/(RM+EP/2.)*180./pi - echo_mess.append( 'AZIMUT CENTRE SOUS-EPAISSEUR (DEGRES) : %.2f \n'%ssep.IPHIC) - else: - ssep.ISCP = ssep['AZIMUT']*pi*RM/180. - AZIMC = ssep['AZIMUT']*pi/180. - echo_mess.append( 'ABSC. CURV. CIRCONF. CENTRE SOUS-EPAISSEUR SUR COUDE : %.2f \n'%(AZIMC*(RM+EP/2.))) -# -# PASSAGE DANS LE REPERE PLAQUE (0,2PI) AVEC ORIGINE FLANC DROIT -# CAR L ORIGINE DES DONNEES CIRCONF. EST EN EXTRADOS -# - if ssep.ISCP>(3.*pi*RM/2.): ssep.ISCP = ssep.ISCP - 3.*pi*RM/2. - else: ssep.ISCP = ssep.ISCP + pi*RM/2. - echo_mess.append( 'ABSC. CURV. CIRCONF. CENTRE SOUS-EPAISSEUR SUR PLAQUE : %.2f \n'%ssep.ISCP) -# -# -- CALCUL DE LA TAILLE CIRCONFERENTIELLE -# NB : MESURE FAITE EN PEAU EXTERNE SUR LE COUDE -# - ssep.ICIRP = ssep['AXE_CIRC']*(RM/(RM+EP/2.)) - if ssep.ICIRP>(2.*pi*RM) : - texte_final=string.join(echo_mess) - aster.affiche("MESSAGE",texte_final) - message= ' ASCSEP valeur hors domaine \n' - message=message+' sous-epaisseur numero : %d \n'%i - message=message+' taille axe circonferentiel : %.2f \n'%ssep.ICIRP - message=message+' bord plaque : %.2f \n'%2*pi*RM - UTMESS('F', "MACR_ASCOUF_MAIL", message) - echo_mess.append( 'TAILLE CIRCONFERENTIELLE SOUS-EPAISSEUR SUR PLAQUE : %.2f \n'%ssep.ICIRP) - echo_mess.append( '<=> TAILLE EQUIVALENTE SUR LA CIRCONFERENCE (DEGRES) : %.2f \n'%(ssep.ICIRP*360./(2.*pi*RM))) - -# -# -- CALCUL COTE AXIALE DU CENTRE SOUS-EPAISSEUR SUR LA PLAQUE -# EN FONCTION DE L ABSCISSE CURVILIGNE DONNEE SUR LE COUDE -# OU DE LA POSITION ANGULAIRE -# NB : MESURE FAITE EN PEAU EXTERNE SUR LE COUDE -# - if ssep['POSI_CURV_LONGI']!=None: - if GEOM=='COUDE': - ssep.ISLP = ssep['POSI_CURV_LONGI']/(1.+(RM+EP/2.)/RC*cos(AZIMC)) - AZIML = ssep.ISLP/RC - echo_mess.append( 'ANGLE COUDE CENTRE SOUS-EPAISSEUR (DEGRES) : %.2f \n'%(AZIML*180./pi)) - else : - ssep.ISLP = ssep['POSI_CURV_LONGI'] - if (SYME in ('QUART','DEMI')) and (ssep.ISLP!=ALPHA*CG*RC/2.) : - texte_final=string.join(echo_mess) - aster.affiche("MESSAGE",texte_final) - message= ' ASCSEP cas de symetrie :\n' - message=message+ ' la sous-epaisseur doit etre dans la section mediane du coude !\n' - UTMESS('F', "MACR_ASCOUF_MAIL", message) - else : - if GEOM=='COUDE': - echo_mess.append( 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR COUDE : %.2f \n'%((ssep.BETA)*CG*(RC+(RM+EP/2.)*cos(AZIMC)))) - AZIML = (ssep.BETA)*CG - else : - echo_mess.append( 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR TUBE : %.2f \n'%((ssep.BETA)*CG*RC) ) - ssep.ISLP = (ssep.BETA)*CG*RC - if (SYME in ('QUART','DEMI')) and (ssep.BETA!=ALPHA/2.) : - texte_final=string.join(echo_mess) - aster.affiche("MESSAGE",texte_final) - message= ' ASCSEP cas de symetrie :\n' - message=message+ ' la sous-epaisseur doit etre dans la section mediane du coude !\n' - UTMESS('F', "MACR_ASCOUF_MAIL", message) - echo_mess.append( 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR PLAQUE : %.2f \n'%ssep.ISLP) -# -# -- CALCUL DE LA TAILLE LONGITUDINALE -# NB : MESURE FAITE EN PEAU EXTERNE SUR LE COUDE -# -# ON ENVISAGE LE CAS OU UNE PARTIE DE L AXE EST DANS LES -# DROITES DES EMBOUTS. LA TRANSFORMATION N EST FAITE QUE SUR LA -# PARTIE RESTANT DANS LE COUDE. -# - if GEOM=='COUDE' : DIST = ALPHA*CG*(RC+(RM+EP/2.)*cos(AZIMC)) - else : DIST = ALPHA*CG*RC - if ssep['POSI_CURV_LONGI']!=None: - BSUP = ssep['POSI_CURV_LONGI']+ssep['AXE_LONGI']/2. - BINF = ssep['POSI_CURV_LONGI']-ssep['AXE_LONGI']/2. - else: - if GEOM=='COUDE' : - BSUP = ssep.BETA*CG*(RC+(RM+EP/2.)*cos(AZIMC))+ssep['AXE_LONGI']/2. - BINF = ssep.BETA*CG*(RC+(RM+EP/2.)*cos(AZIMC))-ssep['AXE_LONGI']/2. - else: - BSUP = ssep.BETA*CG*RC + ssep['AXE_LONGI']/2. - BINF = ssep.BETA*CG*RC - ssep['AXE_LONGI']/2. - BCOUD1 = 0. - BCOUD2 = 0. - BEMB1 = 0. - BEMB2 = 0. - if BINF<0. and BSUP>DIST : - BCOUD1 = DIST - BEMB1 = abs(BINF) + BSUP-DIST - elif BSUP>DIST : - BCOUD1 = DIST - BINF - BEMB1 = BSUP - DIST - elif BINF<0 : - BCOUD2 = BSUP - BEMB2 = abs(BINF) - elif (BINF>=0. and BSUP<=DIST) : - BCOUD1 = ssep['AXE_LONGI'] - BCOUD = BCOUD1+ BCOUD2 - BEMB = BEMB1 + BEMB2 - if GEOM=='COUDE' : BPLAQ = BCOUD/(1.+(RM+EP/2.)/RC*cos(AZIMC)) - else : BPLAQ = BCOUD - ssep.ILONP = BPLAQ+BEMB - if BEMB1>0.: - ssep.ISLP = ALPHA*CG*RC - ssep.ILONP/2. + BEMB1 - echo_mess.append( 'CORRECTION CENTRE : SOUS-EP. A CHEVAL SUR EMBOUT \n') - echo_mess.append( 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR PLAQUE : %.2f \n'%ssep.ISLP) - if BEMB2>0.: - ssep.ISLP = ssep.ILONP/2. - BEMB2 - echo_mess.append( 'CORRECTION CENTRE : SOUS-EP. A CHEVAL SUR EMBOUT \n') - echo_mess.append( 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR PLAQUE : %.2f \n'%ssep.ISLP) - if ssep.ISLP<0. : ssep.ISLP = 0. - if (ssep.ISLP>ALPHA*CG*RC) : ssep.ISLP = ALPHA*CG*RC -# -# SI LE CENTRE DE LA SOUS-EP CALCULE SUR LA PLAQUE EST DANS L EMBOUT -# ON CORRIGE SA POSITION EN LE METTANT A L INTERFACE SINON CA PLANTE -# DANS LA PROC DE MAILLAGE (A AMELIORER) -# - echo_mess.append( 'TAILLE LONGITUDINALE SOUS-EPAISSEUR SUR PLAQUE : %.2f \n'%ssep.ILONP) - echo_mess.append( '<=> TAILLE EQUIVALENTE PAR RAPPORT A L ANGLE DU COUDE (DEGRES): %.2f \n'%(ssep.ILONP*360/(2*pi*RC))) -# - texte_final=string.join(echo_mess) - aster.affiche('MESSAGE',texte_final) - return ier - -# ------------------------------------------------------------------------------ -def ASCTCI(MCL_SOUS_EPAIS,RM): - """ - MACR_ASCOUF_MAIL ASCTCI - APPELEE DANS : ASCSYM et ASCPRE - CALCUL TABLEAU TRIE DES ABSCISSES DES CENTRES DE SOUS-EPAISSEURS - - ------------DONNEES FOURNIES PAR L UTILISATEUR-------------------- - - RM = RAYON MOYEN DU COUDE - - -----------------DONNEES RENVOYEES----------------------- - - IABSC1 = CORRESPONDANCE ABSC. CURVI. CIRCONF. SOUS-EP. I - IABSC2 = CORRESPONDANCE ABSC. GAUCHE ET DROITE CIRCONF. SOUS-EP. I - COORXD = ABSC. DU BORD DROIT DE LA SOUS-EP I - COORXG = ABSC. DU BORD GAUCHE DE LA SOUS-EP I - - """ -# -# --- tri du tableau des abscisses curvilignes circonf. plaque -# - echo_mess=['MACR_ASCOUF_MAIL ASCTCI \n',] - TAMPON = [] - COORXG = [] - COORYG = [] - i=0 - for ssep in MCL_SOUS_EPAIS : - i=i+1 - if (ssep.ISCP>2.*pi*RM) or (ssep.ISCP<0.) : - texte_final=string.join(echo_mess) - aster.affiche("MESSAGE",texte_final) - message= ' valeur hors domaine \n' - message=message+ ' SOUS-EPAISSEUR NUMERO :%d'%MCL_SOUS_EPAIS.index(ssep) - message=message+ ' ABSC. CURV. CIRCONF. :%.2f \n'%ssep.ISCP - message=message+ ' BORD PLAQUE :%.2f \n'%(2.*pi*RM) - UTMESS('F', "MACR_ASCOUF_MAIL", message) - TAMPON.append((ssep.ISCP,i)) - TAMPON.sort() - IABSC1=[] - for j in range(i): - IABSC1.append(TAMPON[j][1]) - echo_mess.append( ' \n') - echo_mess.append( 'TRI DES CENTRES ABSC. CURV. CIRCONF. :\n ') - echo_mess.append( '------------------------------------\n') - i=0 - for ssep in TAMPON : - i=i+1 - echo_mess.append( '%d) SOUS-EP NO %d <> XC = %.2f \n'%(i,ssep[1],ssep[0]) ) -# -# --- calcul des abcisses droites et gauches des sous-epaisseurs -# - COORXD=[] - COORXG=[] - for bid in TAMPON : - XG=bid[0]-MCL_SOUS_EPAIS[bid[1]-1].ICIRP/2. - if XG<0. : XG=XG+2.*pi*RM - COORXG.append(XG) - XD=bid[0]+MCL_SOUS_EPAIS[bid[1]-1].ICIRP/2. - if XD>2.*pi*RM : XD=XD-2.*pi*RM - COORXD.append(XD) -# -# --- tri des bornes d'intervalles en abscisse -# - TAMPON = [] - for j in range(len(MCL_SOUS_EPAIS)): - TAMPON.append((COORXG[j],2*j+1)) - TAMPON.append((COORXD[j],2*j+2)) - TAMPON.sort() - IABSC2=[] - for j in range(2*len(MCL_SOUS_EPAIS)): - IABSC2.append(TAMPON[j][1]) - echo_mess.append( '\n') - echo_mess.append( 'TRI DES INTERVALLES G ET D ABSC. CURV. CIRCONF. :\n') - echo_mess.append( '-----------------------------------------------\n' ) - for j in range(2*len(MCL_SOUS_EPAIS)): - if fmod(IABSC2[j],2): - echo_mess.append( '%d) SOUS-EP NO %d <> XG = %.2f \n'%(j+1,IABSC1[IABSC2[j]/2],TAMPON[j][0])) - else: - echo_mess.append( '%d) SOUS-EP NO %d <> XD = %.2f \n'%(j+1,IABSC1[IABSC2[j]/2-1],TAMPON[j][0])) -# - texte_final=string.join(echo_mess) - aster.affiche('MESSAGE',texte_final) - return TAMPON,IABSC1,IABSC2,COORXD,COORXG - -# ------------------------------------------------------------------------------ -def ASCTLO(MCL_SOUS_EPAIS,RC,ALPHA,LTCHAR,LTCLIM): - """ - MACR_ASCOUF_MAIL ASCTLO - APPELEE DANS : ASCSYM et ASCPRE - CALCUL TABLEAU TRIE DES ORDONNEES DES CENTRES DE SOUS-EPAISSEURS - - ------------DONNEES FOURNIES PAR L UTILISATEUR-------------------- - - RC = RAYON MOYEN DU COUDE - ALPHA = ANGLE DU COUDE - LTCHAR = LONGUEUR DE L'EMBOUT DU COTE CHARGEMENT - LTCLIM = LONGUEUR DE L'EMBOUT DU COTE CONDITIONS AUX LIMITES - - -----------------DONNEES RENVOYEES----------------------- - - IORDO1 = CORRESPONDANCE ORDO. CURVI. LONGIT. SOUS-EP. I - IORDO2 = CORRESPONDANCE ORDO. GAUCHE ET DROITE LONGIT. SOUS-EP. I - COORYI = ORDONNEE. DU BORD INTERIEUR DE LA SOUS-EP I - COORYS = ORDONNEE. DU BORD SUPERIEUR DE LA SOUS-EP I - - """ -# -# tri du tableau des abscisses curvilignes axiales plaque -# - echo_mess=['MACR_ASCOUF_MAIL ASCTLO \n',] - ALPHAR = 2.*ALPHA*pi/360. - TAMPON = [] - i=0 - for ssep in MCL_SOUS_EPAIS : - i=i+1 - if (ssep.ISLP>ALPHAR*RC) or (ssep.ISLP<0.) : - texte_final=string.join(echo_mess) - aster.affiche("MESSAGE",texte_final) - message= ' valeur hors domaine \n' - message=message+ ' SOUS-EPAISSEUR NUMERO :%d \n'%MCL_SOUS_EPAIS.index(ssep) - message=message+ ' ABSC. CURV. LONGIT. :%.2f \n'%ssep.ISLP - message=message+ ' BORDS PLAQUE :%.2f \n'%(ALPHAR*RC) - UTMESS('F', "MACR_ASCOUF_MAIL", message) - TAMPON.append((ssep.ISLP,i)) - TAMPON.sort() - IORDO1=[] - for j in range(i): - IORDO1.append(TAMPON[j][1]) - echo_mess.append( '\n') - echo_mess.append( 'TRI DES CENTRES ABSC. CURV. LONGIT. : \n') - echo_mess.append( '------------------------------------ \n') - i=0 - for ssep in TAMPON : - i=i+1 - echo_mess.append( '%d) SOUS-EP NO %d <> YC = %.2f \n'%(i,ssep[1],ssep[0])) -# -# calcul des abscisses sup. et inf. des sous-ep. -# - COORYI=[] - COORYS=[] - EPS=0.000000000001 - for bid in TAMPON : - i=i+1 - YI=bid[0]-MCL_SOUS_EPAIS[bid[1]-1].ILONP/2. - YS=bid[0]+MCL_SOUS_EPAIS[bid[1]-1].ILONP/2. - if fabs(bid[0])(ALPHAR*RC+LTCLIM): - texte_final=string.join(echo_mess) - aster.affiche("MESSAGE",texte_final) - message= ' valeur hors domaine \n' - message=message+ ' SOUS-EPAISSEUR NUMERO :%d \n'%bid[1] - message=message+ ' BORD INFERIEUR :%.2f \n'%YI - message=message+ ' BORDS PLAQUE :%.2f \n'%(ALPHAR*RC+LTCLIM) - UTMESS('F', "MACR_ASCOUF_MAIL", message) - COORYI.append(YI) - COORYS.append(YS) -# -# tri des bornes d'intervalles en abscisse -# - TAMPON = [] - for j in range(len(MCL_SOUS_EPAIS)): - TAMPON.append((COORYI[j],2*j+1)) - TAMPON.append((COORYS[j],2*j+2)) - TAMPON.sort() - IORDO2=[] - for j in range(2*len(MCL_SOUS_EPAIS)): - IORDO2.append(TAMPON[j][1]) - echo_mess.append( '\n') - echo_mess.append( 'TRI DES INTERVALLES I ET S ABSC. CURV. LONGIT. : \n') - echo_mess.append( '----------------------------------------------- \n') - for j in range(2*len(MCL_SOUS_EPAIS)): - if fmod(IORDO2[j],2): - echo_mess.append( '%d) SOUS-EP NO %d <> YI = %.2f \n'%(j+1,IORDO1[IORDO2[j]/2],TAMPON[j][0])) - else: - echo_mess.append( '%d) SOUS-EP NO %d <> YS = %.2f \n'%(j+1,IORDO1[IORDO2[j]/2-1],TAMPON[j][0])) -# - texte_final=string.join(echo_mess) - aster.affiche('MESSAGE',texte_final) - return TAMPON,IORDO1,IORDO2,COORYI,COORYS -# -# -################################################################################ -################################################################################ -################################################################################ -# MACR_ASCOUF_MAIL ASCNBE -# APPELEE DANS : ASCSYM et ASCPRE -# CALCUL DU NOMBRE D'ELEMENTS LONGI ET CIRCONF. DANS LES SOUS-EPAISSEURS -# -#-----------------DONNEES FOURNIES PAR L UTILISATEUR-------------------- -# -# COORXG = ABSCISSE DU BORD GAUCHE DE LA SOUS-EPAISSEUR I -# COORXD = ABSCISSE DU BORD DROIT DE LA SOUS-EPAISSEUR I -# COORYI = ORDONNEE DU BORD INFERIEUR DE LA SOUS-EPAISSEUR I -# COORYS = ORDONNEE DU BORD SUPERIEUR DE LA SOUS-EPAISSEUR I -# BD = ABSCISSE DU BORD DROIT DE LA ZONE CIRCONF J -# BG = ABSCISSE DU BORD GAUCHE DE LA ZONE CIRCONF J -# BS = ORDONNEE DU BORD SUPERIEUR DE LA ZONE LONGI J -# BI = ORDONNEE DU BORD INFERIEUR DE LA ZONE LONGI J -# DNX = DENSITE ET NOMBRE D'ELEMENTS CIRCONF. DE LA ZONE J -# DNY = DENSITE ET NOMBRE D'ELEMENTS LONGIT. DE LA ZONE J -# INDSEX = NUMERO DE SOUS-EPAISSEUR CONTENU DANS LA ZONE CIRCONF J -# INDSEY = NUMERO DE SOUS-EPAISSEUR CONTENU DANS LA ZONE LONGI J -# RM = RAYON MOYEN DU COUDE -# RC = RAYON DE CINTRAGE DU COUDE -# IABSC1 = CORRESPONDANCE ABSCISSE CURVILIGNE CIRCONF. SOUS-EP. I -# IORDO1 = CORRESPONDANCE ABSCISSE CURVILIGNE LONGIT. SOUS-EP. I -# -#----------------------DONNEES RENVOYEES----------------------- -# -# NLX = NOMBRE TOTAL D'ELEMENTS CIRCONF. DE LA SOUS-EPAISSEUR K -# NLY = NOMBRE TOTAL D'ELEMENTS LONGIT. DE LA SOUS-EPAISSEUR K -# -# ------------------------------------------------------------------------------ -def ASCNBE(MCL_SOUS_EPAIS,COORXG,COORXD,COORYI,COORYS,BD,BG,BS,BI,DNX,DNY,RM,RC, - INDSEX,INDSEY,IABSC1,IORDO1): -# -# calcul du nombre d'elements longi. et circonf. dans les sous-epaisseurs: -# - echo_mess=['MACR_ASCOUF_MAIL ASCNBE \n',] - echo_mess.append( '\n') - echo_mess.append( 'DETERMINATION DU NOMBRE D''ELEMENTS DANS LES SOUS-EPAISSEURS :\n') - echo_mess.append( '------------------------------------------------------------\n') - NLX=[0]*len(MCL_SOUS_EPAIS) - NLY=[0]*len(MCL_SOUS_EPAIS) - for j in range(len(BD)): - if INDSEX[j]!=0: -# calcul au passage du nombre d'elements sur chaque zone circonf. - RNBEL = (BD[j]-BG[j])*360./(DNX[2*j]*2.*pi*RM) - RNBEL2 = RNBEL - floor(RNBEL) - if RNBEL2 <= 0.5 : NBEL=int(floor(RNBEL)) - else : NBEL=int(floor(RNBEL))+1 - if NBEL <= 1 : NBEL=2 -# calcul au passage du nombre d'elements sur chaque sous-epaisseur circonf. - for i in range(len(MCL_SOUS_EPAIS)): - l=IABSC1[i]-1 - if ((COORXG[l]=COORXG[l] and BD[j]<=COORXD[l])\ - or (COORXG[l]>=COORXD[l] and (BG[j]<=COORXG[l] or BD[j]>=COORXD[l]))): - NLX[i]=NLX[i]+NBEL - echo_mess.append( 'SOUS-EP NO %d ZONE CIRC. NO %d NB ELEM. = %d \n'%(i+1,j+1,NBEL)) - - for j in range(len(BS)): - if INDSEY[j]!=0: -# calcul au passage du nombre d'elements sur chaque zone longi. - RNBEL = ((BS[j]-BI[j])*360.)/(DNY[2*j]*2.*pi*RC) - RNBEL2 = RNBEL - floor(RNBEL) - if RNBEL2 <= 0.5 : NBEL=int(floor(RNBEL)) - else : NBEL=int(floor(RNBEL))+1 - if NBEL <= 1 : NBEL=2 -# calcul au passage du nombre d'elements sur chaque sous-epaisseur circonf. - i=0 - for i in range(len(MCL_SOUS_EPAIS)): - l=IORDO1[i]-1 - if (BI[j]>=COORYI[l] and BS[j]<=COORYS[l]): - NLY[i]=NLY[i]+NBEL - echo_mess.append( 'SOUS-EP NO %d ZONE LONGI. NO %d NB ELEM. = %d \n'%(i+1,j+1,NBEL) ) - - for j in range(len(NLX)): - echo_mess.append( 'SOUS-EP NO %d NBE TOTAL ELEMENTS CIRCONF. : %d \n'%(j+1,NLX[j])) - echo_mess.append( 'SOUS-EP NO %d NBE TOTAL ELEMENTS LONGI. : %d \n'%(j+1,NLY[j])) - -# - texte_final=string.join(echo_mess) - aster.affiche('MESSAGE',texte_final) - return NLX,NLY -# -################################################################################ -################################################################################ -################################################################################ -# MACR_ASCOUF_MAIL ASCSYM -# PREPARATION DES DONNEES POUR LE MAILLAGE DE PLAQUE AVEC -# SOUS-EPAISSEURS : -# CAS D UNE SOUS-EPAISSEUR DANS LE PLAN DE SYMETRIE -# CONSTRUCTION D UN QUART DU MAILLAGE -# - CALCUL TABLEAU TRIE DES ABSCISSES ET ORDONNEES DES CENTRES -# - CALCUL TABLEAU DES ZONES COUVERTES PAR LES SOUS-EPAISSEURS -# -#-----------------DONNEES FOURNIES PAR L UTILISATEUR-------------------- -# -# RM = RAYON MOYEN DU COUDE -# RC = RAYON DE CINTRAGE DU COUDE -# ALPHA = ANGLE DU COUDE -# LT = LONGUEUR DE L EMBOUT DU COTE CHARGEMENT -# LGV = LONGUEUR DE L EMBOUT DU COTE CONDITIONS AUX LIMITES -# NBSEP = NOMBRE DE SOUS-EPAISSEURS -# -#----------------------DONNEES RENVOYEES----------------------- -# -# NZONEX = NOMBRE DE ZONES CIRCONFERENTIELLES -# NZONEY = NOMBRE DE ZONES LONGITUDINALES -# -# ------------------------------------------------------------------------------ -def ASCSYM(MCL_SOUS_EPAIS,RM,RC,ALPHA,LTCHAR,LTCLIM): - ier=0 - echo_mess=['MACR_ASCOUF_MAIL ASCSYM \n',] - DERAFC = 18. - DERAFL = 5. - INDSEX = [] - INDSEY = [] - BG = [] - BD = [] - INDBG = [] - INDBD = [] - DNX = [] - -# -# --- tri des donnees sous-ep. en circonferentiel - TAMPON,IABSC1,IABSC2,COORXD,COORXG=ASCTCI(MCL_SOUS_EPAIS,RM) -# -# --- calcul des zones en circonferentiel -# - ssep=MCL_SOUS_EPAIS[0] - if (ssep.ISCP BORNE INF. = %.2f \n'\ - ' / BORNE SUP. = %.2f * SOUS-EPAISSEUR'%(j+1,BI[j],BS[j])) - else: - echo_mess.append( 'ZONE NO %d <> BORNE INF. = %.2f \n'\ - ' / BORNE SUP. = %.2f'%(j+1,BI[j],BS[j])) - -# calcul du nombre d'elements longi. et circonf. dans les soue-ep - NLX,NLY=ASCNBE(MCL_SOUS_EPAIS,COORXG,COORXD,COORYI,COORYS,BD,BG,BS,BI, - DNX,DNY,RM,RC,INDSEX,INDSEY,IABSC1,IORDO1) - - texte_final=string.join(echo_mess) - aster.affiche('MESSAGE',texte_final) - return ier,NLX,NLY,NZONEX,NZONEY,BG,BD,BI,BS,INDBG,INDBD,INDBI,INDBS,DNX,DNY -################################################################################ -################################################################################ -################################################################################ -################################################################################ -# MACR_ASCOUF_MAIL ASCPRE -# PREPARATION DES DONNEES POUR LE MAILLAGE DE PLAQUE -# SOUS-EPAISSEURS : -# - CALCUL TABLEAU TRIE DES ABSCISSES ET ORDONNEES DES CENTRES -# - CALCUL TABLEAU DES ZONES COUVERTES PAR LES SOUS-EPAISSEURS -# -#-----------------DONNEES FOURNIES PAR L UTILISATEUR-------------------- -# -# RM = RAYON MOYEN DU COUDE -# RC = RAYON DE CINTRAGE DU COUDE -# ALPHA = ANGLE DU COUDE -# LT = LONGUEUR DE L EMBOUT DU COTE CHARGEMENT -# LGV = LONGUEUR DE L EMBOUT DU COTE CONDITIONS AUX LIMITES -# NBSEP = NOMBRE DE SOUS-EPAISSEURS -# SYME = "QUART" DE STRUCTURE, "DEMI" STRUCTURE OU BIEN "ENTIER" -# -#----------------------DONNEES RENVOYEES----------------------- -# -# NZONEX = NOMBRE DE ZONES CIRCONFERENTIELLES -# NZONEY = NOMBRE DE ZONES LONGITUDINALES -# -# ------------------------------------------------------------------------------ -def ASCPRE(MCL_SOUS_EPAIS,RM,RC,ALPHA,SYME,LTCHAR,LTCLIM): - ier=0 - echo_mess=['MACR_ASCOUF_MAIL ASCPRE \n',] - ALPHAR = 2.*ALPHA*pi/360. - DERAFC = 18. - DERAFL = 5. - EPSI = 0.001 - NBSEP = len(MCL_SOUS_EPAIS) - echo_mess.append( 'RECHERCHE DES ZONES DE SOUS-EPAISSEURS DANS LE COUDE\n' ) - -# tri des donnees sous-epaisseurs en circonferentiel - TAMPON,IABSC1,IABSC2,COORXD,COORXG=ASCTCI(MCL_SOUS_EPAIS,RM) -# --- calcul des recouvrements de zones en circonferentiel -# - NZONEX=0 - j=0 - ICE=1 - NBGAU=0 - NBDRO=0 - TYPG=0 - TYPD=0 - go10=1 - go20=1 -# - BG =[] - BD =[] - INDBG =[] - INDBD =[] - DNX =[] - INDSEX=[] -# - - while go10: - - j=j+1 -# -# definition de la zone courante (borne gauche, borne droite) -# -# TYPG = type de la borne: -# 0 : borne gauche sous-epaisseur -# 1 : borne droite sous-epaisseur -# 2 : centre sous-epaisseur -# - if j>2*NBSEP and ICE= 2*NBSEP : - MIND = TAMPON[2*NBSEP-1][0] - MING = MIND - if fmod(IABSC2[2*NBSEP-1],2): - TYPG = 0 - NUMG = IABSC1[IABSC2[2*NBSEP-1]/2] - else: - TYPG = 1 - NUMG = IABSC1[IABSC2[2*NBSEP-1]/2-1] - TYPD=TYPG - NUMD=NUMG - else: - MING=TAMPON[j-1][0] - MIND=TAMPON[j][0] - if fmod(IABSC2[j-1],2): - TYPG = 0 - NUMG = IABSC1[IABSC2[j-1]/2] - else: - TYPG = 1 - NUMG = IABSC1[IABSC2[j-1]/2-1] - if fmod(IABSC2[j],2): - TYPD = 0 - NUMD = IABSC1[IABSC2[j]/2] - else: - TYPD = 1 - NUMD = IABSC1[IABSC2[j]/2-1] - if fabs(MING-MIND)2*NBSEP and ICE>=NBSEP: - break #on sort de la boucle - - while go20: - i=ICE - if i<=NBSEP: -# recherche des centres a intercaler - INDC=IABSC1[i-1] - if i>1: -# le centre est deja le meme que precedent - if fabs(MCL_SOUS_EPAIS[INDC-1].ISCP-MCL_SOUS_EPAIS[IABSC1[i-2]-1].ISCP) < EPSI : - ICE=ICE+1 - continue - if MCL_SOUS_EPAIS[INDC-1].ISCP < MING : -# le centre est la nouvelle borne gauche - j=j-1 - MIND = MING - TYPD = TYPG - NUMD = NUMG - MING = MCL_SOUS_EPAIS[INDC-1].ISCP - TYPG = 2 - NUMG = INDC - ICE = ICE+1 - elif MCL_SOUS_EPAIS[INDC-1].ISCP < MIND : -# le centre est la nouvelle borne droite - MIND = MCL_SOUS_EPAIS[INDC-1].ISCP - TYPD = 2 - NUMD = INDC - ICE = ICE+1 - continue - else:pass - NZONEX=NZONEX+1 -# -# codes d'intervalles de zones -# 0 0 = zone sous-ep. -# 0 1 = sous-ep. a droite de la zone -# 1 0 = sous-ep. a gauche de la zone -# 1 1 = sous-ep. a droite et a gauche de la zone -# -# cas ou la premiere zone ne commence pas au bord de la plaque - if MING>0. and NZONEX==1 : - BG.append(0.) - BD.append(MING) - if TYPG==0: - INDBG.append(0) - INDBD.append(1) - DNX.append(DERAFC) - DNX.append(0) - INDSEX.append(0) - elif TYPG==1 or TYPG==2: - INDBG.append(0) - INDBD.append(0) - DNX.append(MCL_SOUS_EPAIS[NUMG-1].IDENC) - DNX.append(0) - INDSEX.append(NUMG) - else: pass - NZONEX=NZONEX+1 -# - BG.append(MING) - BD.append(MIND) -# - if TYPG == 0: -# borne gauche zone = borne gauche ssep - NBGAU=NBGAU+1 - INDBG.append(0) - INDBD.append(0) - if TYPD == 0: -# borne droite zone = borne gauche ssep - DNX.append(MCL_SOUS_EPAIS[NUMG-1].IDENC) - DNX.append(0) - INDSEX.append(NUMG) - elif TYPD == 1 or TYPD == 2: -# borne droite zone = borne droite ssep : TYPD=1 -# borne droite zone = centre ssep : TYPD=2 - LTMP=[] - LTMP.append((MCL_SOUS_EPAIS[NUMG-1].IDENC,NUMG)) - LTMP.append((MCL_SOUS_EPAIS[NUMD-1].IDENC,NUMD)) - LTMP.sort() - DNX.append(LTMP[0][0]) - DNX.append(0) - INDSEX.append(LTMP[0][1]) - else: pass -# - elif TYPG == 1: -# borne gauche zone = borne droite ssep - NBDRO = NBDRO+1 - if TYPD == 0: -# borne droite zone = borne gauche ssep - if NBDRO==NBGAU: - INDBG.append(1) - INDBD.append(1) - DNX.append(DERAFC) - DNX.append(0) - INDSEX.append(0) - else: -# cas tordu: une sous-ep enveloppe le tout - INDBG.append(0) - INDBD.append(0) - DNX.append(MCL_SOUS_EPAIS[NUMG-1].IDENC) - DNX.append(0) - INDSEX.append(NUMG) - elif TYPD == 1 or TYPD == 2: -# borne droite zone = borne droite ssep : TYPD=1 -# borne droite zone = centre ssep : TYPD=2 - INDBG.append(0) - INDBD.append(0) - DNX.append(MCL_SOUS_EPAIS[NUMD-1].IDENC) - DNX.append(0) - INDSEX.append(NUMD) - else: pass -# - elif TYPG == 2: -# borne gauche zone = centre ssep - INDBG.append(0) - INDBD.append(0) - if TYPD == 0: -# borne droite zone = borne gauche ssep - DNX.append(MCL_SOUS_EPAIS[NUMG-1].IDENC) - DNX.append(0) - INDSEX.append(NUMG) - elif TYPD == 1 or TYPD == 2: -# borne droite zone = borne droite ssep : TYPD=1 -# borne droite zone = centre ssep : TYPD=2 - LTMP=[] - LTMP.append((MCL_SOUS_EPAIS[NUMG-1].IDENC,NUMG)) - LTMP.append((MCL_SOUS_EPAIS[NUMD-1].IDENC,NUMD)) - LTMP.sort() - DNX.append(LTMP[0][0]) - DNX.append(0) - INDSEX.append(LTMP[0][1]) - else:pass - else:pass - if j<=(2*NBSEP-2) or ICE<=NBSEP or (TYPD==2 and j<2*NBSEP): - iout=0 - break #on retourne dans la boucle go10 - else : - iout=1 - break #on sort definitivement - if iout:break - - if MIND<2.*pi*RM: - NZONEX=NZONEX+1 - BG.append(MIND) - BD.append(2.*pi*RM) - if TYPD==0 or TYPD==2: - INDBG.append(0) - INDBD.append(0) - DNX.append(MCL_SOUS_EPAIS[NUMD-1].IDENC) - DNX.append(0) - INDSEX.append(NUMD) - elif TYPD==1: - INDBG.append(1) - INDBD.append(0) - DNX.append(DERAFC) - DNX.append(0) - INDSEX.append(0) - else:pass - -# au cas ou 2.*pi*RM correspond a une borne d'intevalle de sous-ep ou a -# un centre de sous-ep. - if fabs(BG[NZONEX-1]-BD[NZONEX-1]) BORNE GAUCHE = %.2f \n'\ - ' / BORNE DROITE = %.2f * SOUS-EPAISSEUR'%(j+1,BG[j],BD[j])) - else: - echo_mess.append( 'ZONE NO %d <> BORNE GAUCHE = %.2f \n'\ - ' / BORNE DROITE = %.2f'%(j+1,BG[j],BD[j])) - - -# --- tri des donnees sous-ep. en axial - TAMPON,IORDO1,IORDO2,COORYI,COORYS=ASCTLO(MCL_SOUS_EPAIS,RC,ALPHA,LTCHAR,LTCLIM) - - BI = [] - BS = [] - INDBI = [] - INDBS = [] - DNY = [] - INDSEY = [] - - if SYME == 'DEMI': -# calcul des zones en axial : -# zones (0,bord inferieur) et (bord inferieur,centre sous-ep.) - ssep = MCL_SOUS_EPAIS[0] - BI.append(0.) - BI.append(ssep.ISLP-ssep.ILONP/2.) - BS.append(ssep.ISLP-ssep.ILONP/2.) - BS.append(ssep.ISLP) - INDBI.append(0) - INDBI.append(0) - INDBS.append(1) - INDBS.append(0) - DNY.append(DERAFL) - DNY.append(0) - DNY.append(ssep.IDENL) - DNY.append(0) - INDSEY.append(0) - INDSEY.append(1) - NZONEY=1 -# - else: -# -# calcul des recouvrements de zones en axial - j = 0 - ICE = 1 - NBINF = 0 - NBSUP = 0 - TYPI=0 - TYPS=0 - go40=1 - go50=1 - NZONEY=0 -# - while go40: - j=j+1 -# -# definition de la zone courante (borne inf, borne sup) -# -# typi = type de la borne -# 0 : borne inf. sous-ep. -# 1 : borne sup. sous-ep. -# 2 : centre sous-ep. -# - if TYPS==2: -# cas ou la borne sup. de la zone prec. etait un centre - MINI=MINS - TYPI=TYPS - NUMI=NUMS - MINS=TAMPON[j-1][0] - if fmod(IORDO2[j-1],2): - TYPS = 0 - NUMS = IORDO1[IORDO2[j-1]/2] - else: - TYPS = 1 - NUMS = IORDO1[IORDO2[j-1]/2-1] - j=j-1 - else: - if j>= 2*NBSEP : - MINI = TAMPON[2*NBSEP-1][0] - MINS = MINI - if fmod(IORDO2[2*NBSEP-1],2): - TYPI = 0 - NUMI = IORDO1[IORDO2[2*NBSEP-1]/2] - else: - TYPI = 1 - NUMI = IORDO1[IORDO2[2*NBSEP-1]/2-1] - TYPS=TYPI - NUMS=NUMI - else: - MINI=TAMPON[j-1][0] - MINS=TAMPON[j][0] - if fmod(IORDO2[j-1],2): - TYPI = 0 - NUMI = IORDO1[IORDO2[j-1]/2] - else: - TYPI = 1 - NUMI = IORDO1[IORDO2[j-1]/2-1] - if fmod(IORDO2[j],2): - TYPS = 0 - NUMS = IORDO1[IORDO2[j]/2] - else: - TYPS = 1 - NUMS = IORDO1[IORDO2[j]/2-1] - if fabs(MINI-MINS)1: -# le centre est deja le meme que le precedent - if fabs(MCL_SOUS_EPAIS[INDC-1].ISLP-MCL_SOUS_EPAIS[IORDO1[i-2]-1].ISLP)0. and NZONEY==1: - first=0 - BI.append(0.) - BS.append(MINI) - if TYPI==0: - INDBI.append(0) - INDBS.append(1) - DNY.append(DERAFL) - DNY.append(0) - INDSEY.append(0) - elif TYPI==1 or TYPI==2: - INDBI.append(0) - INDBS.append(0) - DNY.append(MCL_SOUS_EPAIS[NUMI-1].IDENL) - DNY.append(0) - INDSEY.append(NUMI) - else:pass - NZONEY = NZONEY+1 -# - BI.append(MINI) - BS.append(MINS) - - if TYPI==0: -# borne inferieure zone = borne inferieure ssep - NBINF = NBINF+1 - INDBI.append(0) - INDBS.append(0) - if TYPS==0: -# borne superieure zone = borne inferieur ssep - DNY.append(MCL_SOUS_EPAIS[NUMI-1].IDENL) - DNY.append(0) - INDSEY.append(NUMI) - elif TYPS==1 or TYPS==2: -# borne superieure zone = borne superieure ssep:TYPS==1 -# borne superieure zone = centre ssep:TYPS==2 - LTMP=[] - LTMP.append((MCL_SOUS_EPAIS[NUMI-1].IDENL,NUMI)) - LTMP.append((MCL_SOUS_EPAIS[NUMS-1].IDENL,NUMS)) - LTMP.sort() - DNY.append(LTMP[0][0]) - DNY.append(0) - INDSEY.append(LTMP[0][1]) - else:pass - elif TYPI==1: -# borne inferieure zone=borne superieure ssep - NBSUP = NBSUP+1 - if TYPS==0: -# borne superieure zone = borne inferieur ssep - if NBSUP==NBINF: - INDBI.append(1) - INDBS.append(1) - DNY.append(DERAFL) - DNY.append(0) - INDSEY.append(0) - else: -# cas tordu: une sous-ep. enveloppe le tout - INDBI.append(0) - INDBS.append(0) - DNY.append(MCL_SOUS_EPAIS[NUMI-1].IDENL) - DNY.append(0) - INDSEY.append(NUMI) - elif TYPS==1 or TYPS==2: -# borne superieure zone = borne superieure ssep:TYPS==1 -# borne superieure zone = centre ssep:TYPS==2 - INDBI.append(0) - INDBS.append(0) - DNY.append(MCL_SOUS_EPAIS[NUMS-1].IDENL) - DNY.append(0) - INDSEY.append(NUMS) - else:pass - elif TYPI==2: -# borne inferieure zone = centre ssep - INDBI.append(0) - INDBS.append(0) - if TYPS==0: -# borne superieure zone = borne inferieure ssep - DNY.append(MCL_SOUS_EPAIS[NUMI-1].IDENL) - DNY.append(0) - INDSEY.append(NUMI) - elif TYPS==1 or TYPS==2: -# borne superieure zone = borne superieure ssep - LTMP=[] - LTMP.append((MCL_SOUS_EPAIS[NUMI-1].IDENL,NUMI)) - LTMP.append((MCL_SOUS_EPAIS[NUMS-1].IDENL,NUMS)) - LTMP.sort() - DNY.append(LTMP[0][0]) - DNY.append(0) - INDSEY.append(LTMP[0][1]) - else:pass - else:pass - if j<=(2*NBSEP-2) or TYPS==2: - iout=0 - break #on retourne dans la boucle go40 - else: - iout=1 - break #on sort definitivement - if iout:break - -# cas ou la derniere zone ne finit pas au bout de la plaque - if MINS BORNE INF. = %.2f \n'\ - ' / BORNE SUP. = %.2f * SOUS-EPAISSEUR'%(j+1,BI[j],BS[j])) - else: - echo_mess.append( 'ZONE NO %d <> BORNE INF. = %.2f \n'\ - ' / BORNE SUP. = %.2f '%(j+1,BI[j],BS[j])) - -# calcul du nombre d'elements longi. et circonf. dans les sous-ep - NLX,NLY=ASCNBE(MCL_SOUS_EPAIS,COORXG,COORXD,COORYI,COORYS,BD,BG,BS,BI, - DNX,DNY,RM,RC,INDSEX,INDSEY,IABSC1,IORDO1) - - - texte_final=string.join(echo_mess) - aster.affiche('MESSAGE',texte_final) - return ier,NLX,NLY,NZONEX,NZONEY,BG,BD,BI,BS,INDBG,INDBD,INDBI,INDBS,DNX,DNY - -################################################################################ -################################################################################ -################################################################################ -# MACR_ASCOUF_MAIL write_file_dgib_ASCFDO -# -# ECRIT DANS UN FICHIER LES DONNES GIBI DE LA PROCEDURE -# "PLAQUE FISSUREE" -# - -# ------------------------------------------------------------------------------ -def write_file_dgib_ASCFDO(nomFichierDATG,RM,RC,ALPHA,NBTRAN,EP1,EP2,EPI,TETA1, - TETA2,LTRAN,SUREP,LTCHAR,LTCLIM,TYPBOL,AXEAP,AXECP,NT,NS,NC, - SFP,ORIEN,AZIM,RC0,RC2,RC3,POSIT,EPSI,NIVMAG,SYME, loc_datg) : - - if TYPBOL!= None: - if TYPBOL=='CUVE' : TYPEMB = 'typcuv' - if TYPBOL=='GV' : TYPEMB = 'typegv' - if TYPBOL=='ASP_MPP' : TYPEMB = 'typapp' - else: - TYPEMB =' ' - - if POSIT =='DEB_INT' : - POSIT2 = 'interne' - else: - POSIT2 = 'externe' - if SYME[:6]=='ENTIER' : ZSYME = 'entier' - elif SYME[:5]=='QUART' : ZSYME = 'quart' - else : ZSYME = 'demi' - C=AXECP/2. - TETAF=AZIM*pi/180. - - POIVIR = ' ;\n' - texte='* DEBUT PARAMETRES UTILISATEUR\n' - texte=texte+'*\n' - texte=texte+'c = '+str(C) +POIVIR - texte=texte+'a = '+str(AXEAP) +POIVIR - texte=texte+'nt = '+str(NT) +POIVIR - texte=texte+'ns = '+str(NS) +POIVIR - texte=texte+'nc = '+str(NC) +POIVIR - texte=texte+'rm = '+str(RM) +POIVIR - texte=texte+'rc = '+str(RC) +POIVIR - texte=texte+'alphac = '+str(ALPHA) +POIVIR - texte=texte+'nbtranep = '+str(NBTRAN) +POIVIR - texte=texte+'ep1 = '+str(EP1) +POIVIR - texte=texte+'ep2 = '+str(EP2) +POIVIR - texte=texte+'epi = '+str(EPI) +POIVIR - texte=texte+'teta1 = '+str(TETA1) +POIVIR - texte=texte+'teta2 = '+str(TETA2) +POIVIR - texte=texte+'ltran = '+str(LTRAN) +POIVIR - texte=texte+'posfis = '+str(SFP) +POIVIR - texte=texte+'ksiref = '+str(ORIEN) +POIVIR - texte=texte+'surep = '+str(SUREP) +POIVIR - texte=texte+'teta_f = '+str(TETAF) +POIVIR - texte=texte+'rc0 = '+str(RC0) +POIVIR - texte=texte+'rc2 = '+str(RC2) +POIVIR - texte=texte+'rc3 = '+str(RC3) +POIVIR - texte=texte+"pos = '"+POSIT2+"'" +POIVIR - texte=texte+'lt = '+str(LTCHAR) +POIVIR - texte=texte+'lgv = '+str(LTCLIM) +POIVIR - texte=texte+"typembou = '"+TYPEMB+"'" +POIVIR - texte=texte+"zsyme = '"+ZSYME+"'" +POIVIR - texte=texte+'epsif = '+str(EPSI) +POIVIR - texte=texte+'nivmag = '+str(NIVMAG) +POIVIR - texte=texte+'*\n' - texte=texte+'* FIN PARAMETRES UTILISATEUR\n' - texte=texte+'opti donn ' - texte=texte+"'"+loc_datg+'ascouf_fiss_v4.datg'+"';\n" - fdgib=open(nomFichierDATG,'w') - fdgib.write(texte) - fdgib.close() - -################################################################################ -################################################################################ -################################################################################ -# MACR_ASCOUF_MAIL write_file_dgib_ASCSQO -# -# ECRIT DANS UN FICHIER LES DONNEES GIBI DE LA PROCEDURE -# "PLAQUE SOUS-EPAISSEUR" -# -#-----------------DONNEES FOURNIES PAR L'UTILISATEUR-------------------- -# -# RM = RAYON MOYEN DU COUDE -# RC = RAYON DE CINTRAGE DU COUDE -# ALPHA = ANGLE DU COUDE -# NBTRAN = NOMBRE DE TRANSITION D'EPAISSEUR (0, 1 OU 2) -# EP1 = EPAISSEUR DU COUDE (COTE EMBOUT 1 SI TRANSITION) -# EP2 = EPAISSEUR DU COUDE (COTE EMBOUT 2 SI TRANSITION) -# EPI = EPAISSEUR DU COUDE INTERMEDIAIRE SI TRANSITION A 2 PENTES -# TETA1 = ANGLE DE LA PREMIERE TRANSITION D'EPAISSEUR EVENTUELLE -# TETA2 = ANGLE DE LA DEUXIEME TRANSITION D'EPAISSEUR EVENTUELLE -# LTRAN = LONGUEUR ENTRE FIN DE L'EMBOUT 1 ET DEBUT DE TRANSITION -# LTCHAR = LONGUEUR DE L'EMBOUT DU COTE CHARGEMENT -# LCLIM = LONGUEUR DE L'EMBOUT DU COTE CONDITIONS AUX LIMITES -# GEOM = TYPE DE GEOMETRIE MODELISEE (COUDE OU TUBE) -# SYME = "QUART" DE STRUCTURE, "DEMI" STRUCTURE OU BIEN "ENTIER" -# NBEP = NOMBRE D'ELEMENTS DANS LE COUDE -# NLX = NOMBRE D'ELEMENTS CIRCONF. DE LA SOUS-EPAISSEUR -# NLY = NOMBRE D'ELEMENTS LONGI DE LA SOUS-EPAISSEUR - -# ------------------------------------------------------------------------------ -def write_file_dgib_ASCSQO(nomFichierDATG,TYPELE,RM,RC,ALPHA,NBTRAN,EP1,EP2, - EPI,TETA1,MCL_SOUS_EPAIS,TETA2,LTRAN,LTCHAR,LTCLIM,GEOM, - SYME,NBEP,NLX,NLY,NIVMAG,loc_datg) : - - ssep= MCL_SOUS_EPAIS[0] - POIVIR = ' ;\n' - texte=' nivmag = '+str(NIVMAG) +POIVIR - texte=texte+' option dime 3 elem '+TYPELE+' nive nivmag echo 0'+POIVIR - texte=texte+'*\n' - texte=texte+'coory = table '+POIVIR - texte=texte+'coorz = table '+POIVIR - texte=texte+'prof = table '+POIVIR - texte=texte+'posit = table '+POIVIR - texte=texte+'axisym = table '+POIVIR - texte=texte+'axecir = table '+POIVIR - texte=texte+'axelon = table '+POIVIR - texte=texte+'sousep = table '+POIVIR - texte=texte+'coorzc = table '+POIVIR - texte=texte+'axelonc = table '+POIVIR - texte=texte+'*\n' - texte=texte+'* DEBUT PARAMETRES UTILISATEUR\n' - texte=texte+'*\n' - texte=texte+'* parametres generaux\n' - texte=texte+'*\n' - texte=texte+' pirad = '+str(pi) +POIVIR - texte=texte+' rm = '+str(RM) +POIVIR - texte=texte+' rc = '+str(RC) +POIVIR - texte=texte+' alpha = '+str(ALPHA) +POIVIR - texte=texte+' lt1 = '+str(LTCHAR) +POIVIR - texte=texte+' lt2 = '+str(LTCLIM) +POIVIR - texte=texte+' nbtranep = '+str(NBTRAN) +POIVIR - texte=texte+' ep1 = '+str(EP1) +POIVIR - texte=texte+' ep2 = '+str(EP2) +POIVIR - texte=texte+' epI = '+str(EPI) +POIVIR - texte=texte+' teta1 = '+str(TETA1) +POIVIR - texte=texte+' teta2 = '+str(TETA2) +POIVIR - texte=texte+' ltran = '+repr(LTRAN) +POIVIR - if GEOM == 'COUDE': - texte=texte+" zcoude = 'oui' "+POIVIR - else: - texte=texte+" zcoude = 'non' "+POIVIR - if SYME == 'ENTIER': - texte=texte+" zsyme = 'entier' "+POIVIR - elif SYME == 'QUART': - texte=texte+" zsyme = 'quart' "+POIVIR - else: - texte=texte+" zsyme = 'demi' "+POIVIR - if TYPELE == 'CU20': - texte=texte+" zquad = 'oui' "+POIVIR - else: - texte=texte+" zquad = 'non' "+POIVIR - SCP=pi*RM - texte=texte+' nxep = '+str(NBEP) +POIVIR - texte=texte+'*\n' - texte=texte+'* Caracteristiques de la sous-epaisseur\n' - texte=texte+'*\n' - texte=texte+' tysep = '+str(ssep.ICIRP) +POIVIR - texte=texte+' tzsep = '+str(ssep.ILONP) +POIVIR - texte=texte+' prof . 1 = '+str(ssep['PROFONDEUR']) +POIVIR - texte=texte+' ycsep = '+str(SCP-pi*RM) +POIVIR - texte=texte+' theta = '+str(ssep.IPHIC) +POIVIR - texte=texte+' zcsep = '+repr(ssep.ISLP) +POIVIR - - texte=texte+" posit . 1 = '"+str(ssep['SOUS_EPAIS'].lower())+"'"+POIVIR - texte=texte+' nby = '+str(int(NLX[0])) +POIVIR - texte=texte+' nbz = '+str(int(NLY[0])) +POIVIR - texte=texte+' nbxse = '+str(ssep['NB_ELEM_RADI']) +POIVIR - texte=texte+' axelonc . 1 = '+str(ssep['AXE_LONGI'])+POIVIR - if ssep['POSI_CURV_LONGI']!=None: - texte=texte+' coorzc . 1 = '+repr(ssep['POSI_CURV_LONGI'])+POIVIR - else: - DZC=ssep.BETA*pi*(RC+(RM+EP1/2.)*cos(pi/2.))/180. - texte=texte+' coorzc . 1 = '+repr(DZC)+POIVIR - if ssep['TYPE']=='AXIS': - texte=texte+" zaxis = 'oui' "+POIVIR - else: - texte=texte+" zaxis = 'non' "+POIVIR - if ssep['EMPREINTE'] == 'OUI': - texte=texte+" sousep . 1 = 'oui'"+POIVIR - else: - texte=texte+" sousep . 1 = 'non'"+POIVIR - texte=texte+'*\n' - texte=texte+'* FIN PARAMETRES UTILISATEUR \n' - texte=texte+'opti donn ' - texte=texte+"'"+loc_datg+'ascouf_ssep_mono_v1.datg'+"'"+POIVIR - fdgib=open(nomFichierDATG,'w') - fdgib.write(texte) - fdgib.close() -################################################################################ -################################################################################ -################################################################################ -# MACR_ASCOUF_MAIL write_subpart_file_pgib_POST -# -# APPELEE DANS : write_file_pgib_ASCSQ2 , write_file_pgib_ASCSD2 -# DEFINIE UNE CHAINE DE CARACTERES UTILISEE LORS DE L'ECRITURE DU -# FICHIER GIBI DE POST-TRAITEMENTS -# -#-----------------DONNEES FOURNIES PAR L'UTILISATEUR-------------------- -# -# NLX = NOMBRE D'ELEMENTS CIRCONF. DE LA SOUS-EPAISSEUR -# NLY = NOMBRE D'ELEMENTS LONGI DE LA SOUS-EPAISSEUR -# -#-----------------DONNEE RENVOYEE PAR ASTER-------------------- -# -# texte = chaine de caracteres contenant des instructions gibi -# de post-traitements -# -# ------------------------------------------------------------------------------ -def write_subpart_file_pgib_POST(MCL_SOUS_EPAIS,NLX,NLY): - CAR3 = ('fdro','exdr','extr','exga','fgau','inga','intr','indr') - - POIVIR = ' ;\n' - texte='* DEBUT POINTS DE POST-TRAITEMENT\n' - texte=texte+'*\n' - issep=0 - for ssep in MCL_SOUS_EPAIS: - issep=issep+1 - texte=texte+'*\n' - texte=texte+'* sous-epaisseur No '+str( issep)+'\n' - texte=texte+'*\n' - if ssep['TYPE'] == 'ELLI': - texte=texte+'*\n' - texte=texte+'* plans circonf longi et colonne centrale \n' - texte=texte+'*\n' - texte=texte+'pcirc'+str( issep)+' = circo .'+str(issep).rjust(4)+POIVIR - texte=texte+'plong'+str( issep)+' = longi .'+str(issep).rjust(4)+POIVIR - texte=texte+'pcent'+str( issep)+' = centr .'+str(issep).rjust(4)+POIVIR - texte=texte+'*\n' - texte=texte+'* ligaments tous les 45 degres a epaisseur minimale \n' - texte=texte+'*\n' - texte=texte+'isep = '+str( issep)+POIVIR - for k in range(8): - texte=texte+'ilig = '+str(k+1)+POIVIR - texte=texte+'rlig = ilig/10. + isep'+POIVIR - texte=texte+str(CAR3[k])+str( issep)+' = lig45 . rlig'+POIVIR - if ssep['TYPE'] == 'ELLI': - texte=texte+'*\n' - texte=texte+"* ligaments circonferentiels a l'epaisseur minimale\n" - texte=texte+'*\n' - texte=texte+'isep = '+str(issep)+POIVIR - for k in range(2*NLX[issep-1]+1): - texte=texte+'ilig = '+str(k+1)+POIVIR - texte=texte+'rlig = ilig/100. + isep'+POIVIR - texte=texte+'cir'+str(issep)+'_'+str(k+1)+' = ligcir . rlig'+POIVIR - texte=texte+'*\n' - texte=texte+"* ligaments longitudinaux a l'epaisseur minimale\n" - texte=texte+'* \n' - for k in range(2*NLY[issep-1]+1): - texte=texte+'ilig = '+str(k+1)+POIVIR - texte=texte+'rlig = ilig/100. + isep'+POIVIR - texte=texte+'lon'+str(issep)+'_'+str(k+1)+' = liglon . rlig'+POIVIR - texte=texte+'* FIN POINTS DE POST-TRAITEMENT\n' - return texte - -################################################################################ -################################################################################ -################################################################################ -# MACR_ASCOUF_MAIL write_file_pgib_ASCSQ2 -# -# ECRIT DANS UN FICHIER LES DONNEES GIBI DE LA PROCEDURE -# "PLAQUE SOUS-EPAISSEURS" -# IL S'AGIT DE LA DEUXIEME PARTIE ( APRES LES DONNEES UTILISATEUR ) -# -# -#-----------------DONNEES FOURNIES PAR L'UTILISATEUR-------------------- -# -# NLX = NOMBRE TOTAL D'ELEMENTS CIRCONF. DE LA SOUS-EPAISSEUR K -# NLY = NOMBRE TOTAL D'ELEMENTS LONGIT. DE LA SOUS-EPAISSEUR K - -# ------------------------------------------------------------------------------ -def write_file_pgib_ASCSQ2(MCL_SOUS_EPAIS,NLX,NLY): - POIVIR = ' ;\n' - texte=write_subpart_file_pgib_POST(MCL_SOUS_EPAIS,NLX,NLY) - texte=texte+'*\n' - texte=texte+'p1 = 0. 0. (-1.*lt1)'+POIVIR - texte=texte+'p2 = 0. 0. (coor 3 bou3)'+POIVIR - texte=texte+'ma = coude et p1 et p2'+POIVIR - texte=texte+"opti sauv form 'fort.8'"+POIVIR - texte=texte+'sort ma'+POIVIR - texte=texte+'sauv form ma'+POIVIR - texte=texte+'fin'+POIVIR - fpgib=open('fort.71','w') - fpgib.write(texte) - fpgib.close() - -################################################################################ -################################################################################ -################################################################################ -# MACR_ASCOUF_MAIL write_file_pgib_ASCSP1 -# -# ECRIT DANS UN FICHIER LES DONNEES GIBI DE LA PROCEDURE -# "PLAQUE SOUS-EPAISSEURS" -# IL S'AGIT DE LA PREMIERE PARTIE ( AVANT LES DONNEES UTILISATEUR ) -# -# -# ------------------------------------------------------------------------------ -def write_file_dgib_ASCSP1(nomFichierDATG,TYPELE,MCL_SOUS_EPAIS,NIVMAG,loc_datg): - - POIVIR = ' ;\n' - texte=' nivmag = '+str(NIVMAG)+POIVIR - texte=texte+' option dime 3 elem '+TYPELE+' nive nivmag echo 0 '+POIVIR - texte=texte+'*\n' - texte=texte+'bg = table '+POIVIR - texte=texte+'bd = table '+POIVIR - texte=texte+'bi = table '+POIVIR - texte=texte+'bs = table '+POIVIR - texte=texte+'indbg = table '+POIVIR - texte=texte+'indbd = table '+POIVIR - texte=texte+'indbi = table '+POIVIR - texte=texte+'indbs = table '+POIVIR - texte=texte+'axecir = table '+POIVIR - texte=texte+'axelon = table '+POIVIR - texte=texte+'axelonc = table '+POIVIR - texte=texte+'coorzc = table '+POIVIR - texte=texte+'prof = table '+POIVIR - texte=texte+'posit = table '+POIVIR - texte=texte+'coory = table '+POIVIR - texte=texte+'coorz = table '+POIVIR - texte=texte+'deny = table '+POIVIR - texte=texte+'nbely = table '+POIVIR - texte=texte+'denz = table '+POIVIR - texte=texte+'nbelz = table '+POIVIR - texte=texte+'axisym = table '+POIVIR - texte=texte+'sousep = table '+POIVIR - texte=texte+'* \n' - texte=texte+'opti donn ' - texte=texte+"'"+loc_datg+'ascouf_ssep_mult_v1.datg'+"';\n" - fdgib=open(nomFichierDATG,'w') - fdgib.write(texte) - fdgib.close() - -################################################################################ -################################################################################ -################################################################################ -# MACR_ASCOUF_MAIL write_file_pgib_ASCSDO -# -# ECRIT DANS UN FICHIER LES DONNEES GIBI DE LA PROCEDURE -# "PLAQUE SOUS-EPAISSEURS" -# -#-----------------DONNEES FOURNIES PAR L'UTILISATEUR-------------------- -# -# RM = RAYON MOYEN DU COUDE -# RC = RAYON DE CINTRAGE DU COUDE -# ALPHA = ANGLE DU COUDE -# EP = EPAISSEUR DU COUDE -# LTCHAR = LONGUEUR DE L'EMBOUT DU COTE CHARGEMENT -# LCLIM = LONGUEUR DE L'EMBOUT DU COTE CONDITIONS AUX LIMITES -# GEOM = TYPE DE GEOMETRIE MODELISEE (COUDE OU TUBE) -# SYME = QUART DE STRUCTURE SI 'OUI' -# INDBG = INDICATEUR BORD GAUCHE DE LA ZONE CIRCONF J -# INDBD = INDICATEUR BORD DROIT DE LA ZONE CIRCONF J -# BG = ABSCISSE DU BORD GAUCHE DE LA ZONE CIRCONF J -# BD = ABSCISSE DU BORD DROIT DE LA ZONE CIRCONF J -# BI = ORDONNEE DU BORD INFERIEUR DE LA ZONE LONGI J -# BS = ORDONNEE DU BORD SUPERIEUR DE LA ZONE LONGI J -# INDBI = INDICATEUR BORD INFERIEUR DE LA ZONE LONGI J -# INDBS = INDICATEUR BORD SUPERIEUR DE LA ZONE LONGI J -# INDSEX = NUMERO DE SOUS-EPAISSEUR CONTENU DANS LA ZONE CIRCONF J -# INDSEY = NUMERO DE SOUS-EPAISSEUR CONTENU DANS LA ZONE LONGI J -# DNX = DENSITE ET NOMBRE D'ELEMENTS CIRCONF. DE LA ZONE J -# DNY = DENSITE ET NOMBRE D'ELEMENTS LONGIT. DE LA ZONE J -# NZONEX = NOMBRE DE ZONES CIRCONFERENTIELLES -# NZONEY = NOMBRE DE ZONES LONGITUDINALES -# -# ------------------------------------------------------------------------------ -def write_file_pgib_ASCSDO(RM,RC,ALPHA,EP,LTCLIM,LTCHAR,NBEP, - NZONEX,NZONEY,BG,BD,BI,BS,INDBG,INDBD,INDBI,INDBS, - DNX,DNY,MCL_SOUS_EPAIS,GEOM,SYME): - - POIVIR = ' ;\n' - NY=20 - DELTAY=2.*pi*RM/NY - - def nint(x): - if 0(ALPHA*RC*pi/180.0) : - message= ' valeur hors domaine de validite \n' - message=message+' sous-epaisseur numero : %d \n'%isep - message=message+' abscisse curv. longit. : %.2f \n'%ssep['POSI_CURV_LONGI'] - message=message+' valeur maximale autorisee : %.2f \n'%(ALPHA*RC*pi/180.0) - UTMESS('F', "MACR_ASCOUF_MAIL", message) - LDEFAU = ssep['POSI_CURV_LONGI'] + ssep['AXE_LONGI']/2.0 - BETA = 0.0 - else: - BETA=ssep['POSI_ANGUL'] - if (BETA<0.) or (BETA>ALPHA) : - message= ' valeur hors domaine de validite \n' - message=message+' sous-epaisseur numero : %d \n'%isep - message=message+' position angulaire centre sous-ep : %.2f \n'%BETA - message=message+' valeur limite autorisee : %.2f \n'%ALPHA - UTMESS('F', "MACR_ASCOUF_MAIL", message) - LDEFAU = (BETA*RC*pi/180.0) + ssep['AXE_LONGI']/2.0 -# - if ssep['POSI_CURV_CIRC']!=None: - if ssep['POSI_CURV_CIRC']>(2*pi*RM) : - message= ' valeur hors domaine de validite \n' - message=message+' sous-epaisseur numero : %d \n'%isep - message=message+' abscisse curv. circonf. : %.2f \n'%ssep['POSI_CURV_CIRC'] - message=message+' valeur limite autorisee : %.2f \n'%(2*pi*RM) - UTMESS('F', "MACR_ASCOUF_MAIL", message) - if ssep['POSI_CURV_CIRC']!=(pi*RM) and ssep['TYPE']=='AXIS': - message= ' le centre d une sous-epaisseur \n' - message=message+' axisymetrique est impose en intrados (pi*RM) \n' - UTMESS('F', "MACR_ASCOUF_MAIL", message) - else: - ssep.IPHIC=ssep['AZIMUT'] - if ssep['AZIMUT']!=180. and ssep['TYPE']=='AXIS': - message= ' le centre d une sous-epaisseur \n' - message=message+' axisymetrique est impose en intrados \n' - message=message+' l azimut est fixe a 180 degres \n' - UTMESS('F', "MACR_ASCOUF_MAIL", message) -# l_ITYPE.append(ssep['TYPE' ]) -# l_ICIRC.append(ssep['AXE_CIRC' ]) -# l_ILONC.append(ssep['AXE_LONGI' ]) -# l_IPROC.append(ssep['PROFONDEUR' ]) -# l_ISLC.append( ssep['POSI_CURV_LONGI']) -# l_IBETC.append(BETA) - ssep.BETA=BETA -# l_ISCC.append( ssep['POSI_CURV_CIRC' ]) -# l_IPHIC.append(ssep['AZIMUT' ]) -# l_IPOS.append( ssep['SOUS_EPAIS' ]) -# l_INBEL.append(ssep['NB_ELEM_LONGI' ]) -# l_INBEC.append(ssep['NB_ELEM_CIRC' ]) -# l_IEVID.append(ssep['EMPREINTE' ]) - - if SOUS_EPAIS_COUDE!=None and COUDE['NB_ELEM_EPAIS']!=3 : - message= ' le nombre d elements dans l \n' - message=message+' epaisseur du coude n est pas parametrable pour \n' - message=message+' la version 2 de la procedure de plaque avec sous \n' - message=message+' -epaisseur : mot-cle NB_ELEM_EPAIS ignore \n' - UTMESS('A', "MACR_ASCOUF_MAIL", message) -# -################################################################################ -# --- verifications de coherences --- -################################################################################ -# -# donnees globales - if COUDE['TRANSFORMEE']=='COUDE' or COUDE['TRAN_EPAIS']=='NON' : - if SUREP<0. or SUREP>(RM-EP1/2.0): - message= ' valeur hors domaine de validite \n' - message=message+' surepaisseur : \n',SUREP - message=message+' valeur limite autorisee (RM-EP1/2) : %.2f \n'%(RM-EP1/2.0) - UTMESS('F', "MACR_ASCOUF_MAIL", message) - if RC<=(RM+EP1/2.0): - message= ' valeur hors domaine de validite \n' - message=message+' le rayon de cintrage : %.2f \n',RC - message=message+' doit etre superieur a (RM+EP1/2) : %.2f \n'%(RM+EP1/2.0) - UTMESS('F', "MACR_ASCOUF_MAIL", message) -# -# coude fissure -# - if FISS_COUDE!=None: - if (RM/EP1)<5. or (RM/EP1)>50.: - message= ' valeur hors domaine de validite (5,50) \n' - message=message+' rapport RM/EP1 : %.2f \n'%(RM/EP1) - UTMESS('F', "MACR_ASCOUF_MAIL", message) - if FISS_COUDE['ABSC_CURV']!=None: - if SF<0. or SF>(ALPHA*RC*pi/180.0) : - message= ' valeur hors domaine de validite \n' - message=message+' abscisse curviligne centre fissure : %.2f \n'%SF - message=message+' valeur limite autorisee : %.2f \n'%(ALPHA*RC*pi/180.0) - UTMESS('F', "MACR_ASCOUF_MAIL", message) - if (NT-2*(NT/2))!=0: - message= ' valeur hors domaine de validite \n' - message=message+' nombre de tranches : %d \n'%NT - UTMESS('F', "MACR_ASCOUF_MAIL", message) - if FISS_COUDE['ABSC_CURV'] and ((BETA<0.) or (BETA>ALPHA)): - message= ' valeur hors domaine de validite \n' - message=message+' position angulaire centre fissure : %.2f \n'%BETA - message=message+' posi_angul doit etre >= 0 et <= %.2f \n'%ALPHA - UTMESS('F', "MACR_ASCOUF_MAIL", message) -# -# transition d epaisseur -# - if NBTRAN!=0: - LCOUDE = ALPHA * RC * pi / 180.0 - DEXT = 2.0*RM + EP1 - if (LTRANLCOUDE) : - message= ' valeur hors domaine de validite \n' - message=message+' debut transition d epaisseur : %.2f \n'%LTRAN - message=message+' valeur minimale autorisee : %.2f \n'%LDEFAU - message=message+' valeur maximale autorisee : %.2f \n'%LCOUDE - UTMESS('F', "MACR_ASCOUF_MAIL", message) - if (TETA1<0.) or (TETA1>30.) : - message= ' valeur hors domaine de validite \n' - message=message+' angle de transition TETA1 : %.2f \n'%TETA1 - message=message+' valeur minimale autorisee : %.2f \n'%0. - message=message+' valeur maximale autorisee : %.2f \n'%30. - UTMESS('F', "MACR_ASCOUF_MAIL", message) -# -# transition d epaisseur a une pente -# - if NBTRAN==1: - if (EP1<12.) or (EP1>80.) : - message= ' valeur hors domaine de validite \n' - message=message+' epaisseur avant la transition : %.2f \n'%EP1 - message=message+' valeur minimale autorisee : %.2f \n'%12. - message=message+' valeur maximale autorisee : %.2f \n'%80. - UTMESS('F', "MACR_ASCOUF_MAIL", message) - if (EP2<20.) or (EP2>110.) : - message= ' valeur hors domaine de validite \n' - message=message+' epaisseur apres la transition : %.2f \n'%EP2 - message=message+' valeur minimale autorisee : %.2f \n'%20. - message=message+' valeur maximale autorisee : %.2f \n'%110. - UTMESS('F', "MACR_ASCOUF_MAIL", message) - if (EP1>EP2) : - message= ' l epaisseur avant la transition \n' - message=message+' doit etre inferieure \n' - message=message+' a celle apres la transition \n' - UTMESS('F', "MACR_ASCOUF_MAIL", message) - LTRANF = LTRAN + ((EP2-EP1)/(tan(TETA1))) - if (LTRANF>LCOUDE) : - message= ' valeur hors domaine de validite \n' - message=message+' fin transition d epaisseur : %.2f \n'%LTRANF - message=message+' valeur limite autorisee : %.2f \n'%LCOUDE - UTMESS('F', "MACR_ASCOUF_MAIL", message) - if DEXT<112. or DEXT>880. : - message= ' valeur hors domaine de validite\n' - message=message+' diam ext du tube avant transition: %.2f \n'%DEXT - message=message+' valeur minimum autorisee : %.2f \n'%112. - message=message+' valeur maximum autorisee : %.2f \n'%880. - UTMESS('F', "MACR_ASCOUF_MAIL", message) -# -# transition d epaisseur a une pente -# - else: - if (TETA2<0.) or (TETA2>45.) : - message= ' valeur hors domaine de validite\n' - message=message+' angle de transition TETA2: %.2f \n'%TETA2 - message=message+' valeur minimum autorisee : %.2f \n'%0. - message=message+' valeur maximum autorisee : %.2f \n'%45. - UTMESS('F', "MACR_ASCOUF_MAIL", message) - if (EP1<7.) or (EP1>35.) : - message= ' valeur hors domaine de validite\n' - message=message+' epaisseur avant 1ere transition: %.2f \n'%EP1 - message=message+' valeur minimum autorisee : %.2f \n'%7. - message=message+' valeur maximum autorisee : %.2f \n'%35. - UTMESS('F', "MACR_ASCOUF_MAIL", message) - if (EP2<15.) or (EP2>40.) : - message= ' valeur hors domaine de validite\n' - message=message+' epaisseur avant 2eme transition: %.2f \n'%EP2 - message=message+' valeur minimum autorisee : %.2f \n'%15. - message=message+' valeur maximum autorisee : %.2f \n'%40. - UTMESS('F', "MACR_ASCOUF_MAIL", message) - if (EPI<15.) or (EPI>40.) : - message= ' valeur hors domaine de validite\n' - message=message+' epaisseur intermediaire: %.2f \n'%EPI - message=message+' valeur minimum autorisee : %.2f \n'%15. - message=message+' valeur maximum autorisee : %.2f \n'%40. - UTMESS('F', "MACR_ASCOUF_MAIL", message) - if (EP1>EPI) : - message= ' valeur hors domaine de validite\n' - message=message+' l epaisseur avant la transition \n' - message=message+' doit etre inferieure a l epaisseur intermediaire \n' - UTMESS('F', "MACR_ASCOUF_MAIL", message) - if (EP2LCOUDE) : - message= ' valeur hors domaine de validite\n' - message=message+' fin transition d epaisseur: %.2f \n'%LTRANF - message=message+' valeur limite autorisee : %.2f \n'%LCOUDE - UTMESS('F', "MACR_ASCOUF_MAIL", message) - if (DEXT<77.) or (DEXT>355.) : - message= ' valeur hors domaine de validite\n' - message=message+' diam ext du tube avant transition: %.2f \n'%LTRANF - message=message+' valeur minimum autorisee : %.2f \n'%77. - message=message+' valeur maximum autorisee : %.2f \n'%355. - UTMESS('F', "MACR_ASCOUF_MAIL", message) -# -################################################################################ -# --- calcul taille initiale des defauts sur la plaque --- -################################################################################ -# -# - if FISS_COUDE!=None: - DSF=(FISS_COUDE['ABSC_CURV']!=None) - AXEAP,AXECP,SFP = ASCFIS(ALPHA, RM, RC, EP1, SUREP, GEOM, FPROF, - DGAXEC, AZIM, POSIT, SF, DSF, BETA, ORIEN) - elif MCL_SOUS_EPAIS!=None : - ier= ASCSEP(MCL_SOUS_EPAIS,ALPHA,RM,RC,EP1,GEOM,SYME) - for ssep in MCL_SOUS_EPAIS: - ssep.IDENL = ssep.ILONP/ssep['NB_ELEM_LONGI']*180./(pi*RC) - ssep.IDENC = ssep.ICIRP/ssep['NB_ELEM_CIRC']*180./(pi*RM) - if SYME=='QUART' : -# quart de structure - ier,NLX,NLY,NZONEX,NZONEY,BG,BD,BI,BS,INDBG,INDBD,INDBI,INDBS,DNX,DNY\ - = ASCSYM(MCL_SOUS_EPAIS,RM,RC,ALPHA,LTCHAR,LTCLIM) - else : -# demi-structure ou entiere - ier,NLX,NLY,NZONEX,NZONEY,BG,BD,BI,BS,INDBG,INDBD,INDBI,INDBS,DNX,DNY\ - = ASCPRE(MCL_SOUS_EPAIS,RM,RC,ALPHA,SYME,LTCHAR,LTCLIM) -# -# - loc_gibi=aster.repout() - logiel = EXEC_MAILLAGE['LOGICIEL' ] - UNITD = EXEC_MAILLAGE['UNITE_DATG'] - UNITP = EXEC_MAILLAGE['UNITE_MGIB'] - if logiel=='GIBI98' : logiel = loc_gibi+'gibi98' - elif logiel=='GIBI2000': logiel = loc_gibi+'gibi2000' - else : - UTMESS('F', "MACR_ASCOUF_MAIL", "seuls gibi98 et gibi2000 sont appelables") -# -# --- ecriture sur le fichier .datg de la procedure --- -# -# Nom du fichier de commandes pour GIBI - nomFichierDATG = 'fort.'+str(UNITD) -# Nom du fichier de maillage GIBI - nomFichierGIBI = 'fort.'+str(UNITP) - loc_datg = aster.repdex() -# - if FISS_COUDE!=None: -# procedure coude fissure (MOT-CLE FISS_COUDE) - write_file_dgib_ASCFDO(nomFichierDATG,RM,RC,ALPHA,NBTRAN,EP1,EP2,EPI,TETA1, - TETA2,LTRAN,SUREP,LTCHAR,LTCLIM,TYPBOL,AXEAP,AXECP,NT,NS,NC,SFP, - ORIEN,AZIM,RC0,RC2,RC3,POSIT,EPSI,NIVMAG,SYME,loc_datg) - elif MCL_SOUS_EPAIS!=None : - if SOUS_EPAIS_MULTI==None : -# procedure coude sous-ep.: (MOT-CLE SOUS_EPAIS_COUDE) - write_file_dgib_ASCSQO(nomFichierDATG,TYPELE,RM,RC,ALPHA,NBTRAN,EP1,EP2, - EPI,TETA1,MCL_SOUS_EPAIS,TETA2,LTRAN,LTCHAR,LTCLIM,GEOM, - SYME,NBEP,NLX,NLY,NIVMAG,loc_datg) - write_file_pgib_ASCSQ2(MCL_SOUS_EPAIS,NLX,NLY) - else: -# procedure coude sous-ep.:(MOT-CLE SOUS_EPAIS_MULTI) - write_file_dgib_ASCSP1(nomFichierDATG,TYPELE,MCL_SOUS_EPAIS,NIVMAG,loc_datg) - write_file_pgib_ASCSDO(RM,RC,ALPHA,EP1,LTCLIM,LTCHAR,NBEP, - NZONEX,NZONEY,BG,BD,BI,BS,INDBG,INDBD,INDBI,INDBS, - DNX,DNY,MCL_SOUS_EPAIS,GEOM,SYME) - write_file_pgib_ASCSP2(MCL_SOUS_EPAIS,NLX,NLY) - else: -# procedure coude regle - write_file_dgib_ASCRDO(nomFichierDATG,TYPELE,NIVMAG,TYPBOL,ALPHA,RC,RM,EP1,SUREP, - LTCLIM,LTCHAR,NBEP,loc_datg) - - -# GIBI - EXEC_LOGICIEL( LOGICIEL = logiel , - ARGUMENT = ( _F(NOM_PARA=nomFichierDATG), - _F(NOM_PARA=nomFichierGIBI), ), ) -# PRE_GIBI - PRE_GIBI() - - if SYME == 'QUART' : self.DeclareOut('nomres',self.sd) -# LIRE_MAILLAGE - nomres=LIRE_MAILLAGE(INFO=INFO) - -# DEFI_GROUP 1 - - motscles={} - l_CREA_GROUP_NO=[] - l_CREA_GROUP_NO.append('BORD1') - l_CREA_GROUP_NO.append('CLGV') - l_CREA_GROUP_NO.append('BORD2') - l_CREA_GROUP_NO.append('PEAUINT') - l_CREA_GROUP_NO.append('PEAUEXT') - -# cas des fissures axisymetriques - if FISS_COUDE!=None: - if FISS_COUDE['AXIS']=='OUI': - motscles['CREA_GROUP_MA']=[] - motscles['CREA_GROUP_MA'].append(_F(GROUP_MA = 'FONDFISS', - NOM = 'MAIL_ORI', - POSITION = 'INIT' , ),) - -# conversion des groupes de mailles en groupes du bloc fissure - if FISS_COUDE!=None: - if SYME == 'ENTIER': - l_CREA_GROUP_NO.append('NOLIG1') - l_CREA_GROUP_NO.append('FACE1') - l_CREA_GROUP_NO.append('NOLIG2') - l_CREA_GROUP_NO.append('FACE2') - l_CREA_GROUP_NO.append('FONDFISS') - - motscles['CREA_GROUP_NO']=[] - motscles['CREA_GROUP_NO'].append(_F(GROUP_MA=tuple(l_CREA_GROUP_NO))) - -# conversion des groupes de mailles en groupes de noeuds pour les -# ligaments des sous-ep. - if MCL_SOUS_EPAIS!=None: - issep=0 - for ssep in MCL_SOUS_EPAIS: - issep=issep+1 - if ssep['TYPE']=='ELLI': - for k in range(2*NLX[issep-1]+1): - chtmp=str(issep)+'_'+str(k+1) - ch1='CIR'+chtmp - ch2='ICI'+chtmp - motscles['CREA_GROUP_NO'].append(_F(NOM = ch2, - GROUP_MA = ch1,),) - motscles['CREA_GROUP_NO'].append(_F(NOM = 'IPCEN'+str(issep), - GROUP_MA = 'PCENT'+str(issep),),) - for k in range(2*NLY[issep-1]+1): - chtmp=str(issep)+'_'+str(k+1) - ch1='LON'+chtmp - ch2='ILO'+chtmp - motscles['CREA_GROUP_NO'].append(_F(NOM = ch2, - GROUP_MA = ch1,),) - for k in range(2*NLX[issep-1]+1): - chtmp=str(issep)+'_'+str(k+1) - ch1='ICI'+chtmp - ch2='OCI'+chtmp - ch3='ECI'+chtmp - motscles['CREA_GROUP_NO'].append(_F(NOM = ch2, - INTERSEC = ('PEAUEXT',ch1),),) - motscles['CREA_GROUP_NO'].append(_F(NOM = ch3, - INTERSEC = ('PEAUINT',ch1),),) - motscles['CREA_GROUP_NO'].append(_F(NOM = 'OPCEN'+str(issep), - INTERSEC = ('PEAUEXT','IPCEN'+str(issep),),),) - motscles['CREA_GROUP_NO'].append(_F(NOM = 'EPCEN'+str(issep), - INTERSEC = ('PEAUINT','IPCEN'+str(issep),),),) - for k in range(2*NLY[issep-1]+1): - chtmp=str(issep)+'_'+str(k+1) - ch1='ILO'+chtmp - ch2='OLO'+chtmp - ch3='ELO'+chtmp - motscles['CREA_GROUP_NO'].append(_F(NOM = ch2, - INTERSEC = ('PEAUEXT',ch1),),) - motscles['CREA_GROUP_NO'].append(_F(NOM = ch3, - INTERSEC = ('PEAUINT',ch1),),) - for k in range(2*NLX[issep-1]+1): - chtmp=str(issep)+'_'+str(k+1) - ch1='CIR'+chtmp - ch2='ICI'+chtmp - ch3='OCI'+chtmp - ch4='ECI'+chtmp - motscles['CREA_GROUP_NO'].append(_F(OPTION = 'SEGM_DROI_ORDO', - NOM = ch1, - GROUP_NO = ch2, - GROUP_NO_ORIG = ch3, - GROUP_NO_EXTR = ch4, - PRECISION = PRECIS, - CRITERE = CRITER,),) - motscles['CREA_GROUP_NO'].append(_F(OPTION = 'SEGM_DROI_ORDO', - NOM = 'PCENT'+str(issep), - GROUP_NO = 'IPCEN'+str(issep), - GROUP_NO_ORIG = 'OPCEN'+str(issep), - GROUP_NO_EXTR = 'EPCEN'+str(issep), - PRECISION = PRECIS, - CRITERE = CRITER,),) - for k in range(2*NLY[issep-1]+1): - chtmp=str(issep)+'_'+str(k+1) - ch1='LON'+chtmp - ch2='ILO'+chtmp - ch3='OLO'+chtmp - ch4='ELO'+chtmp - motscles['CREA_GROUP_NO'].append(_F(OPTION = 'SEGM_DROI_ORDO', - NOM = ch1, - GROUP_NO = ch2, - GROUP_NO_ORIG = ch3, - GROUP_NO_EXTR = ch4, - PRECISION = PRECIS, - CRITERE = CRITER,),) -# 1/ noms intermediaires des groupes de noeuds representant les ligaments -# des sections: TU,MI,GV et sous-ep. - for k in range(8): - motscles['CREA_GROUP_NO'].append(_F( NOM = CAR3[k]+str(issep), - GROUP_MA = CAR6[k]+str(issep),),) - - for k in range(3): - if SYME == 'ENTIER' or k!=2: - for j in range(8): - motscles['CREA_GROUP_NO'].append(_F( NOM = CAR3[j]+SECT[k], - GROUP_MA = CAR6[j]+SECT[k],),) - -# 2/ determination et nommage des noeuds origine et extremite des groupes de noeuds -# representant les ligaments de la ou des sections: sous-ep. - issep=0 - for ssep in MCL_SOUS_EPAIS: - issep=issep+1 - for k in range(8): - motscles['CREA_GROUP_NO'].append(_F( NOM = CAR4[k]+str(issep), - INTERSEC = ('PEAUEXT',CAR3[k]+str(issep),),),) - motscles['CREA_GROUP_NO'].append(_F( NOM = CAR5[k]+str(issep), - INTERSEC = ('PEAUINT',CAR3[k]+str(issep),),),) -# 3/ nommage final des groupes de noeuds representant les ligaments -# de la ou des sections: sous-ep. - for k in range(8): - motscles['CREA_GROUP_NO'].append(_F(OPTION = 'SEGM_DROI_ORDO', - NOM = CAR6[k]+str(issep), - GROUP_NO = CAR3[k]+str(issep), - GROUP_NO_ORIG = CAR4[k]+str(issep), - GROUP_NO_EXTR = CAR5[k]+str(issep), - PRECISION = PRECIS, - CRITERE = CRITER,),) - -# 4/ determination et nommage des noeuds origine et extremite des groupes de noeuds -# representant les ligaments des sections: TU,MI,GV - for k in range(3): - if SYME == 'ENTIER' or k!=2: - for j in range(8): - motscles['CREA_GROUP_NO'].append(_F( NOM = CAR4[j]+SECT[k], - INTERSEC = ('PEAUEXT',CAR3[j]+SECT[k],),),) - motscles['CREA_GROUP_NO'].append(_F( NOM = CAR5[j]+SECT[k], - INTERSEC = ('PEAUINT',CAR3[j]+SECT[k],),),) -# 5/ nommage final des groupes de noeuds representant les ligaments des sections: TU,MI,GV - for j in range(8): - motscles['CREA_GROUP_NO'].append(_F(OPTION = 'SEGM_DROI_ORDO', - NOM = CAR6[j]+SECT[k], - GROUP_NO = CAR3[j]+SECT[k], - GROUP_NO_ORIG = CAR4[j]+SECT[k], - GROUP_NO_EXTR = CAR5[j]+SECT[k], - PRECISION = PRECIS, - CRITERE = CRITER,),) - - - nomres=DEFI_GROUP(reuse =nomres, - MAILLAGE=nomres, - **motscles ) -# -# DEFI_GROUP 2 - if FISS_COUDE!=None: -# creation des groupes petit axe et grand axe fissure par -# intersection de groupes existants - motscles={} - motscles['CREA_GROUP_NO']=[] - l_peau=[] - l_intersec=[] - if POSIT == 'DEB_INT': - l_peau.append('PEAUINT') - else: - l_peau.append('PEAUEXT') - - if SYME == 'ENTIER' : - l_intersec.append('FACE1') - motscles['CREA_GROUP_NO'].append(_F(NOM = 'P_AXE_1', - INTERSEC = ('NOLIG1','FACE1'),),) - motscles['CREA_GROUP_NO'].append(_F(NOM = 'G_AXE_1', - INTERSEC = tuple(l_peau+l_intersec),),) - l_intersec=[] - l_intersec.append('FACE2') - motscles['CREA_GROUP_NO'].append(_F(NOM = 'P_AXE_2', - INTERSEC = ('NOLIG2','FACE2'),),) - motscles['CREA_GROUP_NO'].append(_F(NOM = 'G_AXE_2', - INTERSEC = tuple(l_peau+l_intersec),),) - - nomres=DEFI_GROUP(reuse =nomres, - MAILLAGE=nomres, - **motscles ) - -# AFFE_MODELE - __MODELE=AFFE_MODELE( MAILLAGE=nomres, - AFFE=_F( GROUP_MA = 'COUDE' , - PHENOMENE = 'MECANIQUE' , - MODELISATION = '3D' , ) - ) - -# MODI_MAILLAGE 1 - motscles={} - if GEOM == 'COUDE': - motscles['TUBE_COUDE']=[] - motscles['TUBE_COUDE'].append(_F(ANGLE=ALPHA, - R_CINTR=RC, - L_TUBE_P1=LTCHAR),) - motscles['PLAQ_TUBE']=[] - D_PLAQ_TUBE={} - D_PLAQ_TUBE['DEXT']=DEXT - D_PLAQ_TUBE['EPAIS']=EP1 - D_PLAQ_TUBE['L_TUBE_P1']=LTCHAR - if SYME == 'QUART' : D_PLAQ_TUBE['COUTURE']='NON' - if FISS_COUDE!=None: - D_PLAQ_TUBE['AZIMUT']=AZIM - elif SOUS_EPAIS_COUDE!=None : - D_PLAQ_TUBE['AZIMUT']=MCL_SOUS_EPAIS[0].IPHIC - else:pass - motscles['PLAQ_TUBE'].append(_F(**D_PLAQ_TUBE),) - nomres=MODI_MAILLAGE( reuse =nomres, - MAILLAGE=nomres, - **motscles ) - -# MODI_MAILLAGE 2 - motscles={} - motscles['ORIE_PEAU_3D']=_F(GROUP_MA=('PEAUINT','EXTUBE'),) - if FISS_COUDE!=None: - if FISS_COUDE['FISSURE'] == 'DEB_INIT': - motscles['ORIE_PEAU_3D']=_F(GROUP_MA=('PEAUINT','EXTUBE','FACE1','FACE2'),) - nomres=MODI_MAILLAGE(reuse =nomres, - MAILLAGE=nomres, - MODELE =__MODELE, - **motscles) - -# CREA_MAILLAGE - if SYME != 'QUART': - self.DeclareOut('nomre2',self.sd) - motscles={} - motscles['CREA_POI1']=[] - motscles['CREA_POI1'].append(_F(NOM_GROUP_MA='P1', - GROUP_NO='P1'),) - if TYPBOL == None : - motscles['CREA_POI1'].append(_F(NOM_GROUP_MA='P2', - GROUP_NO='P2'),) - nomre2=CREA_MAILLAGE( MAILLAGE=nomres, - **motscles) - else: - nomre2=nomres - - -# IMPRESSSION - if IMPRESSION!=None: - if IMPRESSION.__class__.__name__ !='MCList' : IMPRESSION =[IMPRESSION,] - for impr in IMPRESSION : -# - motscles={} - if impr['FORMAT']=='IDEAS' : motscles['VERSION'] =impr['VERSION'] - if impr['FORMAT']=='CASTEM' : motscles['NIVE_GIBI'] =impr['NIVE_GIBI'] - if impr['UNITE']!=None : motscles['UNITE'] =impr['UNITE'] - impr_resu = _F( MAILLAGE = nomre2,) -# - IMPR_RESU( RESU = impr_resu, - FORMAT= impr['FORMAT'],**motscles) - - - - return ier - - diff --git a/Aster/Cata/cataSTA81/Macro/macr_aspic_calc_ops.py b/Aster/Cata/cataSTA81/Macro/macr_aspic_calc_ops.py deleted file mode 100644 index 2bef7b6c..00000000 --- a/Aster/Cata/cataSTA81/Macro/macr_aspic_calc_ops.py +++ /dev/null @@ -1,804 +0,0 @@ -#@ MODIF macr_aspic_calc_ops Macro DATE 05/09/2005 AUTEUR DURAND C.DURAND -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - -def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM, - FOND_FISS_1,FOND_FISS_2,CHARGE,RESU_THER,AFFE_MATERIAU,EQUILIBRE, - PRES_REP,ECHANGE,TORS_CORP,TORS_TUBU,COMP_INCR,COMP_ELAS, - THETA_3D,OPTION,SOLVEUR,CONVERGENCE,NEWTON,RECH_LINEAIRE, - INCREMENT,PAS_AZIMUT,IMPRESSION,INFO,TITRE ,**args): - """ - Ecriture de la macro MACR_ASPIC_CALC - """ - from Accas import _F - import types - from Utilitai.Utmess import UTMESS - ier=0 -#------------------------------------------------------------------ - # On recopie le mot cle affe_materiau pour le proteger - mc_AFFE_MATERIAU=AFFE_MATERIAU -#------------------------------------------------------------------ - # On importe les definitions des commandes a utiliser dans la macro - AFFE_MODELE =self.get_cmd('AFFE_MODELE' ) - AFFE_MATERIAU =self.get_cmd('AFFE_MATERIAU' ) - AFFE_CARA_ELEM =self.get_cmd('AFFE_CARA_ELEM' ) - AFFE_CHAR_THER_F =self.get_cmd('AFFE_CHAR_THER_F') - THER_LINEAIRE =self.get_cmd('THER_LINEAIRE' ) - AFFE_CHAR_MECA =self.get_cmd('AFFE_CHAR_MECA' ) - STAT_NON_LINE =self.get_cmd('STAT_NON_LINE' ) - CALC_ELEM =self.get_cmd('CALC_ELEM' ) - POST_RELEVE_T =self.get_cmd('POST_RELEVE_T' ) - IMPR_TABLE =self.get_cmd('IMPR_TABLE' ) - POST_RCCM =self.get_cmd('POST_RCCM' ) - DEFI_FOND_FISS =self.get_cmd('DEFI_FOND_FISS' ) - CALC_THETA =self.get_cmd('CALC_THETA' ) - CALC_G_THETA_T =self.get_cmd('CALC_G_THETA_T' ) - CALC_G_LOCAL_T =self.get_cmd('CALC_G_LOCAL_T' ) - IMPR_RESU =self.get_cmd('IMPR_RESU' ) - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - -#------------------------------------------------------------------ -# data - GRMAIL= ('EQUERRE','PEAUINT','EXCORP1','EXCORP2','EXTUBU','LEVRTUBU','LEVRCORP') - NOMNOE= ('P1_CORP','P2_CORP','P_TUBU ') - IMPRT1= ('NUME_ORDRE','INTITULE','RESU' ,'NOM_CHAM', - 'ABSC_CURV' ,'COOR_X' ,'COOR_Y','COOR_Z' , - 'SIXX' ,'SIXY' ,'SIXZ' ) - IMPRT2= ('NUME_ORDRE','INTITULE','RESU' ,'NOM_CHAM', - 'ABSC_CURV' ,'COOR_X' ,'COOR_Y','COOR_Z' , - 'SIYY' ,'SIXY' ,'SIYZ' ) - IMPRT3= ('NUME_ORDRE','INTITULE','RESU' ,'NOM_CHAM', - 'ABSC_CURV' ,'COOR_X' ,'COOR_Y','COOR_Z' , - 'TEMP' ) - APPRES= ('PEAUINT ','LEVRTUBU','LEVRCORP') -#------------------------------------------------------------------ -# - i=0 - for mate in mc_AFFE_MATERIAU: - if mate['RCCM']=='OUI' : - i=i+1 - MRCCM=mate['MATER'] - if i>1 : - UTMESS('E', "MACR_ASPIC_CALC", "vous affectez plus d un materiau contenant l option rccm") -# - if (TYPE_MAILLAGE[:4]=='SAIN') and (TUBULURE==None) : - UTMESS('E', "MACR_ASPIC_CALC", "pour les piquages sains, TUBULURE doit etre renseigne") -# - if EQUILIBRE['NOEUD'] not in ('P1_CORP','P2_CORP') : - UTMESS('E', "MACR_ASPIC_CALC", "EQUILIBRE[NOEUD] : on attend P1_CORP ou P2_CORP") -# - if PRES_REP['EFFE_FOND']=='OUI' : - if PRES_REP['NOEUD']==None : - UTMESS('E', "MACR_ASPIC_CALC", "il faut preciser un noeud pour EFFE_FOND") - if PRES_REP['NOEUD'] not in ('P1_CORP','P2_CORP') : - UTMESS('E', "MACR_ASPIC_CALC", "PRES_REP[NOEUD] : on attend P1_CORP ou P2_CORP") - if PRES_REP['NOEUD']==EQUILIBRE['NOEUD'] : - UTMESS('E', "MACR_ASPIC_CALC", "on ne peut appliquer un EFFE_FOND sur PRES_REP[NOEUD] car ce noeud est bloque") -# - if TORS_CORP!=None : - for tors in TORS_CORP : - if tors['NOEUD'] not in ('P1_CORP','P2_CORP') : - UTMESS('E', "MACR_ASPIC_CALC", "TORS_CORP[NOEUD] : on attend P1_CORP ou P2_CORP") - if tors['NOEUD']==EQUILIBRE['NOEUD'] : - UTMESS('E', "MACR_ASPIC_CALC", "on ne peut appliquer un torseur sur TORS_CORP[NOEUD] car ce noeud est bloque") -# - if (TYPE_MAILLAGE[:4]=='SAIN') and (THETA_3D!=None) : - UTMESS('E', "MACR_ASPIC_CALC", "si TYPE_MAILLAGE SAIN : mecanique de la rupture impossible") -# - if OPTION in ('CALC_G_MAX','CALC_G_MAX_LOCAL') : - if BORNES==None : - UTMESS('E', "MACR_ASPIC_CALC", "mot-clef obligatoire avec cette option") -# - if IMPRESSION!=None : - if IMPRESSION['FORMAT'] in ('IDEAS','CASTEM') : - if IMPRESSION['NOM_CHAM']==None : - UTMESS('E', "MACR_ASPIC_CALC", "impression de resultats demandée sans preciser le nom des champs cf. la documentation utilisateur : U4.PC.20.") -# -#------------------------------------------------------------------ -# -# --- commande AFFE_MODELE --- -# - if MODELE!=None : self.DeclareOut('modele',MODELE) - mcfact=[] - if (PRES_REP['PRES_LEVRE']=='OUI') and (TYPE_MAILLAGE[-4:]=='_DEB') : - mcfact.append(_F(GROUP_MA=GRMAIL, PHENOMENE='MECANIQUE',MODELISATION='3D' )) - else: - mcfact.append(_F(GROUP_MA=GRMAIL[:-2],PHENOMENE='MECANIQUE',MODELISATION='3D' )) - mcfact.append( _F(GROUP_MA='P1_CORP' ,PHENOMENE='MECANIQUE',MODELISATION='DIS_TR')) - mcfact.append( _F(GROUP_MA='P2_CORP' ,PHENOMENE='MECANIQUE',MODELISATION='DIS_TR')) - mcfact.append( _F(GROUP_MA='P_TUBU' ,PHENOMENE='MECANIQUE',MODELISATION='DIS_TR')) - modele = AFFE_MODELE( MAILLAGE = MAILLAGE , - AFFE = mcfact ) - if ECHANGE!=None : # modele thermique - __modthe = AFFE_MODELE( MAILLAGE = MAILLAGE , - AFFE = _F(GROUP_MA =GRMAIL[:-2], - PHENOMENE ='THERMIQUE', - MODELISATION='3D' ) ) -# -# --- commande AFFE_MATERIAU --- -# - if CHAM_MATER!=None : self.DeclareOut('affmat',CHAM_MATER) - mcfact=[] - for mater in mc_AFFE_MATERIAU : - if mater['TOUT']!=None : mcfact.append(_F(TOUT =mater['TOUT' ],MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF'])) - else : mcfact.append(_F(GROUP_MA=mater['GROUP_MA'],MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF'])) - affmat = AFFE_MATERIAU( MAILLAGE = MAILLAGE , - MODELE = modele , - AFFE = mcfact ) -# -# --- commande AFFE_CARA_ELEM --- -# - if CARA_ELEM!=None : self.DeclareOut('carael',CARA_ELEM) - carael = AFFE_CARA_ELEM( MODELE = modele , - DISCRET = ( _F( GROUP_MA='P1_CORP' , - CARA ='K_TR_D_N', - VALE = ( 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 ) ), - _F( GROUP_MA='P2_CORP' , - CARA ='K_TR_D_N', - VALE = ( 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 ) ), - _F( GROUP_MA='P_TUBU' , - CARA ='K_TR_D_N', - VALE = ( 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 ) ), ) ) -# -# --- commande AFFE_CHAR_THER_F --- -# condition aux limites -# - if ECHANGE!=None : - __chther = AFFE_CHAR_THER_F( MODELE = __modthe , - ECHANGE=( _F(GROUP_MA='PEAUTUBU', - COEF_H =ECHANGE['COEF_H_TUBU'], - TEMP_EXT=ECHANGE['TEMP_EXT'],), - _F(GROUP_MA='PEAUCORP', - COEF_H =ECHANGE['COEF_H_CORP'], - TEMP_EXT=ECHANGE['TEMP_EXT'],),)) -# -# --- calcul thermique --- -# - if RESU_THER!=None : self.DeclareOut('resuth',RESU_THER) - mcsimp={} - if INCREMENT['NUME_INST_INIT']!=None : mcsimp['NUME_INIT']=INCREMENT['NUME_INST_INIT'] - if INCREMENT['NUME_INST_FIN' ]!=None : mcsimp['NUME_FIN' ]=INCREMENT['NUME_INST_FIN' ] - mcfact=_F(LIST_INST=INCREMENT['LIST_INST'],**mcsimp) - resuth = THER_LINEAIRE( MODELE = __modthe , - CHAM_MATER = affmat , - TEMP_INIT = _F(STATIONNAIRE='OUI',), - EXCIT = _F(CHARGE=__chther,), - INCREMENT = mcfact, ) -# - if CHARGE!=None : self.DeclareOut('chmeth',CHARGE) - chmeth = AFFE_CHAR_MECA( MODELE = modele , - TEMP_CALCULEE = resuth ) -# -# --- commande AFFE_CHAR_MECA --- -# condition aux limites -# - if EQUILIBRE['NOEUD']=='P1_CORP' : - NENCAS = EQUILIBRE['NOEUD'] - AEFOCO = 'EXCORP2' - ATORCO = 'P2_CORP' - LINTC = 'L_INT_C2' - elif EQUILIBRE['NOEUD']=='P2_CORP' : - NENCAS = EQUILIBRE['NOEUD'] - AEFOCO = 'EXCORP1' - ATORCO = 'P1_CORP' - LINTC = 'L_INT_C1' - __conlim = AFFE_CHAR_MECA( MODELE = modele , - LIAISON_ELEM = ( _F( OPTION ='3D_POU' , - GROUP_MA_1='EXCORP1', - GROUP_NO_2='P1_CORP'), - _F( OPTION ='3D_POU' , - GROUP_MA_1='EXCORP2' , - GROUP_NO_2='P2_CORP'), - _F( OPTION ='3D_POU' , - GROUP_MA_1='EXTUBU', - GROUP_NO_2='P_TUBU'), ), - DDL_IMPO = _F( GROUP_NO = NENCAS , - DX = 0.0 , - DY = 0.0 , - DZ = 0.0 , - DRX = 0.0 , - DRY = 0.0 , - DRZ = 0.0 , ) ) -# -# --- commande AFFE_CHAR_MECA --- -# chargement mecanique : pres_rep, effet de fond -# - motscles={} - if (PRES_REP['PRES_LEVRE']=='OUI') and (TYPE_MAILLAGE[-4:]=='_DEB') : - motscles['PRES_REP' ]= _F(GROUP_MA=APPRES, PRES=PRES_REP['PRES']) - else : - motscles['PRES_REP' ]= _F(GROUP_MA=APPRES[0],PRES=PRES_REP['PRES']) - if PRES_REP['EFFE_FOND' ]!=None : - motscles['EFFE_FOND' ]=(_F(GROUP_MA ='EXTUBU ', - GROUP_MA_INT='L_INT_TU', - PRES =PRES_REP['PRES']), - _F(GROUP_MA =AEFOCO, - GROUP_MA_INT=LINTC, - PRES =PRES_REP['PRES'])) - __chpres = AFFE_CHAR_MECA( MODELE = modele ,**motscles) -# -# --- commande AFFE_CHAR_MECA --- -# chargement mecanique : torseur sur le corps -# - if TORS_CORP!=None: - __chtrc = [None]*6 - i=0 - for tors in TORS_CORP : - mcsimp={} - if tors['FX']!=None : mcsimp['FX']=tors['FX'] - if tors['FY']!=None : mcsimp['FY']=tors['FY'] - if tors['FZ']!=None : mcsimp['FZ']=tors['FZ'] - if tors['MX']!=None : mcsimp['MX']=tors['MX'] - if tors['MY']!=None : mcsimp['MY']=tors['MY'] - if tors['MZ']!=None : mcsimp['MZ']=tors['MZ'] - mcfact=_F(GROUP_NO=ATORCO,**mcsimp) - __chtrc[i] = AFFE_CHAR_MECA( MODELE = modele , - FORCE_NODALE = mcfact , ) - i=i+1 -# -# --- commande AFFE_CHAR_MECA --- -# chargement mecanique : torseur sur la tubulure -# - if TORS_TUBU!=None: - __chtrt = [None]*6 - i=0 - for tors in TORS_TUBU : - mcsimp={} - if tors['FX']!=None : mcsimp['FX']=tors['FX'] - if tors['FY']!=None : mcsimp['FY']=tors['FY'] - if tors['FZ']!=None : mcsimp['FZ']=tors['FZ'] - if tors['MX']!=None : mcsimp['MX']=tors['MX'] - if tors['MY']!=None : mcsimp['MY']=tors['MY'] - if tors['MZ']!=None : mcsimp['MZ']=tors['MZ'] - mcfact=_F(GROUP_NO='P_TUBU ',**mcsimp) - __chtrt[i] = AFFE_CHAR_MECA( MODELE = modele , - FORCE_NODALE = mcfact , ) - i=i+1 -# -# --- commande STAT_NON_LINE --- -# - motscles={} -# - mcfex=[] # mot clé facteur EXCIT - mcfex.append(_F(CHARGE=__conlim,)) - if ECHANGE!=None : - mcfex.append(_F(CHARGE=chmeth,)) - if PRES_REP['FONC_MULT']!=None : - mcfex.append(_F(CHARGE=__chpres,FONC_MULT=PRES_REP['FONC_MULT'])) - else : - mcfex.append(_F(CHARGE=__chpres,)) - if TORS_CORP!=None: - i=0 - for tors in TORS_CORP : - if tors['FONC_MULT']!=None : - mcfex.append(_F(CHARGE=__chtrc[i],FONC_MULT=tors['FONC_MULT'])) - else : - mcfex.append(_F(CHARGE=__chtrc[i],)) - i=i+1 - if TORS_TUBU!=None: - i=0 - for tors in TORS_TUBU : - if tors['FONC_MULT']!=None : - mcfex.append(_F(CHARGE=__chtrt[i],FONC_MULT=tors['FONC_MULT'])) - else : - mcfex.append(_F(CHARGE=__chtrt[i],)) - i=i+1 - motscles['EXCIT'] =mcfex -# - mcfci=[] # mot clé facteur COMP_INCR :obligatoire pour les noeuds discrets - if COMP_INCR!=None : - mcfci.append(_F(TOUT ='OUI' ,RELATION=COMP_INCR['RELATION'])) - mcfci.append( _F(GROUP_MA=NOMNOE,RELATION='ELAS')) - motscles['COMP_INCR'] =mcfci -# - if COMP_ELAS!=None : - motscles['COMP_ELAS'] =_F(GROUP_MA=GRMAIL[:-2] ,RELATION=COMP_ELAS['RELATION']) -# - dSolveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste) - for i in dSolveur.keys(): - if dSolveur[i]==None : del dSolveur[i] -# - dConverg=CONVERGENCE[0].cree_dict_valeurs(CONVERGENCE[0].mc_liste) - for i in dConverg.keys(): - if dConverg[i]==None : del dConverg[i] -# - dNewton=NEWTON[0].cree_dict_valeurs(NEWTON[0].mc_liste) - for i in dNewton.keys(): - if dNewton[i]==None : del dNewton[i] -# - dRechlin=RECH_LINEAIRE[0].cree_dict_valeurs(RECH_LINEAIRE[0].mc_liste) - for i in dRechlin.keys(): - if dRechlin[i]==None : del dRechlin[i] -# - dIncrem=INCREMENT[0].cree_dict_valeurs(INCREMENT[0].mc_liste) - for i in dIncrem.keys(): - if dIncrem[i]==None : del dIncrem[i] -# - if TITRE!=None : - motscles['TITRE' ] =TITRE - motscles ['SOLVEUR' ] =dSolveur - motscles ['CONVERGENCE' ] =dConverg - motscles ['NEWTON' ] =dNewton - motscles ['RECH_LINEAIRE'] =dRechlin - motscles ['INCREMENT' ] =dIncrem - self.DeclareOut('nomres',self.sd) - nomres = STAT_NON_LINE( MODELE = modele , - CHAM_MATER = affmat , - CARA_ELEM = carael , - INFO = INFO , **motscles) -# - nomres = CALC_ELEM( reuse = nomres, - RESULTAT = nomres , - TOUT_ORDRE = 'OUI' , - OPTION = ('SIEF_ELNO_ELGA','VARI_ELNO_ELGA','EQUI_ELNO_SIGM') , - INFO = INFO ,) -# -#----------------------------------------------------------------------- - if TYPE_MAILLAGE[:4]=='SAIN' : -#----------------------------------------------------------------------- -# -# --- post traitement : POST_RELEVE_T --- azimuts droits -# -# ---- champs de contrainte SI, SII ET SIII ---- -# - if TYPE_MAILLAGE=='SAIN_GROS' : NBAZIM = 40 - else : NBAZIM = 48 - mcfact=[] - TYPSOU=None - if TUBULURE!=None : TYPSOU = TUBULURE['TYPE'] - for i in range(1,NBAZIM+1,PAS_AZIMUT): - if i<10 : NUME = '0'+str(i) - else : NUME = str(i) - mcsimp={} - if TYPSOU=='TYPE_1': - mcsimp['REPERE' ]='CYLINDRIQUE', - mcsimp['ORIGINE']=( 0.0 , 0.0 , 0.0 ) - mcsimp['AXE_Z' ]=( 0.0 , 0.0 , 1.0 ) - INTITD = 'AZI_'+NUME+'_D-REP_CYL' - else: - mcsimp['REPERE' ]='LOCAL' - mcsimp['VECT_Y' ]=( 0.0 , 0.0 , 1.0 ) - INTITD = 'AZI_'+NUME+'_D-REP_LOC' - mcsimp['INTITULE' ]=INTITD - mcsimp['GROUP_NO' ]='LD'+str(i) - mcfact.append( _F( RESULTAT = nomres, - TOUT_ORDRE ='OUI', - NOM_CHAM ='SIEF_ELNO_ELGA', - PRECISION =55.E-1, - TOUT_CMP ='OUI', - OPERATION ='EXTRACTION',**mcsimp)) - __noposd=POST_RELEVE_T(ACTION = mcfact, - TITRE = '-- TRAITEMENT DES AZIMUTS DROITS --') -# -# --- IMPR_TABLE dans un repere cylindrique ou local -# des champs de contrainte SI, SII ET SIII -# - if TYPSOU=='TYPE_1' : nompara=IMPRT1 - else : nompara=IMPRT2 - IMPR_TABLE(TABLE = __noposd, - NOM_PARA = nompara ) -# -# ---- Pm, Pm+Pb sur les lignes de depouillement ---- -# - if mc_AFFE_MATERIAU[0]['RCCM']=='OUI': - mcfact=[] - for i in range(1,NBAZIM+1,PAS_AZIMUT): - if i<10 : NUME = '0'+str(i) - else : NUME = str(i) - mcsimp={} - mcsimp['INTITULE' ]='LD'+str(i) - mcsimp['GROUP_NO' ]='LD'+str(i) - mcsimp['RESULTAT' ]=nomres - mcsimp['TOUT_ORDRE' ]='OUI' - mcsimp['NOM_CHAM' ]='SIEF_ELNO_ELGA' - mcsimp['PRECISION' ]=55.E-1 - mcsimp['TOUT_CMP' ]='OUI' - mcsimp['OPERATION' ]='EXTRACTION' - mcfact.append( _F(**mcsimp) ) - __prelsd=POST_RELEVE_T(ACTION=mcfact) - __pmpbsd=POST_RCCM(OPTION = 'PM_PB', - TYPE_RESU_MECA = 'EVOLUTION', - TYPE_RESU = 'VALE_MAX', - MATER = MRCCM, - TRANSITOIRE = _F(TABL_RESU_MECA = __prelsd,), - TITRE = '-- TRAITEMENT DES AZIMUTS DROITS --',) - IMPR_TABLE(TABLE = __pmpbsd, ) -# -# ---- champ de temperature, si il a ete calcule, sur les lignes de depouillement ---- -# - if ECHANGE!=None : - mcfact=[] - for i in range(1,NBAZIM+1,PAS_AZIMUT): - if i<10 : NUME = '0'+str(i) - else : NUME = str(i) - mcsimp={} - mcsimp['GROUP_NO' ]='LD'+str(i) - mcsimp['RESULTAT' ]=resuth - mcsimp['TOUT_ORDRE' ]='OUI' - mcsimp['NOM_CHAM' ]='TEMP' - mcsimp['PRECISION' ]=55.E-1 - mcsimp['TOUT_CMP' ]='OUI' - mcsimp['INTITULE' ]='AZI_'+NUME+'_D' - mcsimp['OPERATION' ]='EXTRACTION' - mcfact.append( _F(**mcsimp) ) - __rthazd=POST_RELEVE_T(ACTION=mcfact) - IMPR_TABLE(TABLE = __rthazd, ) -# -# ---- parametres caracterisant la distribution de temperature, -# si elle a ete calculee, dans l epaisseur du ligament ---- -# - mcfact=[] - for i in range(1,NBAZIM+1,PAS_AZIMUT): - if i<10 : NUME = '0'+str(i) - else : NUME = str(i) - mcsimp={} - mcsimp['GROUP_NO' ]='LD'+str(i) - mcsimp['RESULTAT' ]=resuth - mcsimp['TOUT_ORDRE' ]='OUI' - mcsimp['NOM_CHAM' ]='TEMP' - mcsimp['PRECISION' ]=55.E-1 - mcsimp['TOUT_CMP' ]='OUI' - mcsimp['INTITULE' ]='AZI_'+NUME+'_D' - mcsimp['OPERATION' ]='MOYENNE' - mcfact.append( _F(**mcsimp) ) - __rmothd=POST_RELEVE_T(ACTION=mcfact) - IMPR_TABLE(TABLE = __rmothd, ) -# -#----------------------------------------------------------------------- -# -# --- post traitement : POST_RELEVE_T --- azimuts inclines -# --- champs de contrainte SI, SII ET SIII ---- -# - mcfact=[] - for i in range(1,NBAZIM+1,PAS_AZIMUT): - if i<10 : NUME = '0'+str(i) - else : NUME = str(i) - mcsimp={} - mcsimp['GROUP_NO' ]='LI'+str(i) - mcsimp['RESULTAT' ]=nomres - mcsimp['TOUT_ORDRE' ]='OUI' - mcsimp['NOM_CHAM' ]='SIEF_ELNO_ELGA' - mcsimp['PRECISION' ]=55.E-1 - mcsimp['TOUT_CMP' ]='OUI' - mcsimp['REPERE' ]='LOCAL' - mcsimp['VECT_Y' ]=( 0.0 , 0.0 , 1.0 ) - mcsimp['INTITULE' ]='AZI_'+NUME+'_I-REP_LOC' - mcsimp['OPERATION' ]='EXTRACTION' - mcfact.append( _F(**mcsimp) ) - __noposi=POST_RELEVE_T(ACTION=mcfact) - IMPR_TABLE(TABLE = __noposi, ) -# -# ---- Pm, Pm+Pb sur les lignes de depouillement ---- -# - if mc_AFFE_MATERIAU[0]['RCCM']=='OUI': - mcfact=[] - for i in range(1,NBAZIM+1,PAS_AZIMUT): - if i<10 : NUME = '0'+str(i) - else : NUME = str(i) - mcsimp={} - mcsimp['INTITULE' ]='LI'+str(i) - mcsimp['GROUP_NO' ]='LI'+str(i) - mcsimp['RESULTAT' ]=nomres - mcsimp['TOUT_ORDRE' ]='OUI' - mcsimp['NOM_CHAM' ]='SIEF_ELNO_ELGA' - mcsimp['PRECISION' ]=55.E-1 - mcsimp['TOUT_CMP' ]='OUI' - mcsimp['OPERATION' ]='EXTRACTION' - mcfact.append( _F(**mcsimp) ) - __prelsi=POST_RELEVE_T(ACTION=mcfact) - __pmpbsi=POST_RCCM(OPTION = 'PM_PB', - TYPE_RESU_MECA = 'EVOLUTION', - TYPE_RESU = 'VALE_MAX', - MATER = MRCCM, - TRANSITOIRE = _F(TABL_RESU_MECA = __prelsi,), - TITRE = '-- TRAITEMENT DES AZIMUTS INCLINES --',) - IMPR_TABLE(TABLE = __pmpbsi, ) -# -# ---- champs de temperature,si il a ete calcule, sur les lignes de depouillement ---- -# - if ECHANGE!=None : - mcfact=[] - for i in range(1,NBAZIM+1,PAS_AZIMUT): - if i<10 : NUME = '0'+str(i) - else : NUME = str(i) - mcsimp={} - mcsimp['GROUP_NO' ]='LI'+str(i) - mcsimp['RESULTAT' ]=resuth - mcsimp['TOUT_ORDRE' ]='OUI' - mcsimp['NOM_CHAM' ]='TEMP' - mcsimp['PRECISION' ]=55.E-1 - mcsimp['TOUT_CMP' ]='OUI' - mcsimp['INTITULE' ]='AZI_'+NUME+'_I' - mcsimp['OPERATION' ]='EXTRACTION' - mcfact.append( _F(**mcsimp) ) - __rthazi=POST_RELEVE_T(ACTION=mcfact) - IMPR_TABLE(TABLE = __rthazi, - NOM_PARA = IMPRT3 ) -# -# ---- parametres caracterisant la distribution de temperature, -# si elle a ete calculee, dans l epaisseur du ligament ---- -# - mcfact=[] - for i in range(1,NBAZIM+1,PAS_AZIMUT): - if i<10 : NUME = '0'+str(i) - else : NUME = str(i) - mcsimp={} - mcsimp['GROUP_NO' ]='LI'+str(i) - mcsimp['RESULTAT' ]=resuth - mcsimp['TOUT_ORDRE' ]='OUI' - mcsimp['NOM_CHAM' ]='TEMP' - mcsimp['PRECISION' ]=55.E-1 - mcsimp['TOUT_CMP' ]='OUI' - mcsimp['INTITULE' ]='AZI_'+NUME+'_I' - mcsimp['OPERATION' ]='MOYENNE' - mcfact.append( _F(**mcsimp) ) - __rmothi=POST_RELEVE_T(ACTION=mcfact) - IMPR_TABLE(TABLE = __rmothi, ) -# -#----------------------------------------------------------------------- - elif TYPE_MAILLAGE[:4]=='FISS' : -#----------------------------------------------------------------------- -# - NOMGRO=[] - NOMGRE=[] - TABMA8=[] - NOMMA =[] - if TYPE_MAILLAGE in ('FISS_COUR_DEB','FISS_LONG_DEB','FISS_AXIS_DEB','FISS_COUR_NONDEB') : - NBFIS = 1 - NOMGRO.append(('P_FON1' ,'P_FIS1' ),) - NOMGRE.append(('P_FON2' ,'P_FIS2' ),) - TABMA8.append('FONDFISS') - if TYPE_MAILLAGE in ('FISS_COUR_DEB','FISS_LONG_DEB') : FERME=0 - else : - FERME=1 - NOMMA.append('MAIL_ORI') - elif TYPE_MAILLAGE in ('FISS_LONG_NONDEB','FISS_AXIS_NONDEB') : - NBFIS = 2 - NOMGRO.append(('P_FON1' ,'P_FIS1' ),) - NOMGRE.append(('P_FON2' ,'P_FIS2' ),) - NOMGRO.append(('PI_FON1','PI_FIS1'),) - NOMGRE.append(('PI_FON2','PI_FIS2'),) - TABMA8.append('FOND_SUP') - TABMA8.append('FOND_INF') - if TYPE_MAILLAGE=='FISS_LONG_NONDEB' : FERME=0 - else : - FERME=1 - NOMMA.append('MA_ORI_S') - NOMMA.append('MA_ORI_I') -# - if ECHANGE!=None: -# -# ---- champs de temperature en fond de fissure -# si il a ete calcule, cas 1 fond de fissure ---- -# - if NBFIS==1: - __rthfis=POST_RELEVE_T(ACTION=_F(GROUP_NO ='FONDFISS', - RESULTAT =resuth, - TOUT_ORDRE ='OUI', - NOM_CHAM ='TEMP', - PRECISION =55.E-1, - TOUT_CMP ='OUI', - INTITULE ='FONDFISS', - OPERATION ='EXTRACTION',)) - IMPR_TABLE(TABLE = __rthfis, ) -# -# ---- champs de temperature en fond de fissure -# si il a ete calcule, cas 2 fonds de fissure ---- -# - elif NBFIS==2: -# - __rthfis1=POST_RELEVE_T(ACTION=_F(GROUP_NO ='FOND_SUP', - RESULTAT =resuth, - TOUT_ORDRE ='OUI', - NOM_CHAM ='TEMP', - PRECISION =55.E-1, - TOUT_CMP ='OUI', - INTITULE ='FOND_SUP', - OPERATION ='EXTRACTION',)) - IMPR_TABLE(TABLE = __rthfis1, ) - __rthfis2=POST_RELEVE_T(ACTION=_F(GROUP_NO ='FOND_INF', - RESULTAT =resuth, - TOUT_ORDRE ='OUI', - NOM_CHAM ='TEMP', - PRECISION =55.E-1, - TOUT_CMP ='OUI', - INTITULE ='FOND_INF', - OPERATION ='EXTRACTION',)) - IMPR_TABLE(TABLE = __rthfis2, ) -# -# boucle sur le nombre de fond de fissure -# - fond3d = [None]*2 - for j in range(NBFIS): - if FOND_FISS_1!=None : self.DeclareOut('fond3d_0',FOND_FISS_1) - if FOND_FISS_2!=None : self.DeclareOut('fond3d_1',FOND_FISS_2) -# -# --- commande DEFI_FOND_FISS --- -# - motscles={} - if not FERME: - motscles['FOND_FISS']=_F(GROUP_MA =TABMA8[j], - GROUP_NO_ORIG=NOMGRO[j][0], - GROUP_NO_EXTR=NOMGRE[j][0],) - motscles['VECT_GRNO_ORIG']=NOMGRO[j] - motscles['VECT_GRNO_EXTR']=NOMGRE[j] - else: - if TYPE_MAILLAGE.find('AXIS')!=-1 : grnoorig=NOMGRE[j][0] -# si AXIS, P_FON1 est remplace par P_FON2 pour -# fermer le fond de fissure - else : grnoorig=NOMGRO[j][0] - motscles['FOND_FERME']=_F(GROUP_MA =TABMA8[j], - GROUP_NO_ORIG=grnoorig, - GROUP_MA_ORIG=NOMMA[j],) - fond3d[j]=DEFI_FOND_FISS( MAILLAGE = MAILLAGE, - LEVRE_SUP = _F(GROUP_MA='LEVRCORP',), - LEVRE_INF = _F(GROUP_MA='LEVRTUBU',),**motscles) - if THETA_3D!=None: - for tht3d in THETA_3D : -# -# --- commande CALC_THETA --- -# - __theta = CALC_THETA( MODELE = modele, - FOND_FISS = fond3d[j], - THETA_3D = _F( TOUT = 'OUI', - MODULE = 1.0 , - R_INF = tht3d['R_INF'], - R_SUP = tht3d['R_SUP'], ) ) -# -# --- commande CALC_G_THETA_T --- -# - montit = 'G_THETA AVEC R_INF = '+str(tht3d['R_INF'])+' ET R_SUP = '+str(tht3d['R_SUP']) - motscles={} - if COMP_ELAS!=None: motscles['COMP_ELAS']= _F(TOUT = 'OUI', - RELATION = COMP_ELAS['RELATION'],) - if COMP_INCR!=None: motscles['COMP_INCR']= _F(RELATION = COMP_INCR['RELATION'],) - __gtheta = CALC_G_THETA_T( MODELE = modele, - CHAM_MATER = affmat, - THETA = __theta, - RESULTAT = nomres, - TOUT_ORDRE = 'OUI', - TITRE = montit,**motscles) - IMPR_TABLE(TABLE = __gtheta, ) -# -# recherche du g max -# - if OPTION=='CALC_G_MAX' : - if BORNES!=None: - mcfact=[] - for born in BORNES : - mcfact.append(_F( NUME_ORDRE = born['NUME_ORDRE'] , - VALE_MIN = born['VALE_MIN' ] , - VALE_MAX = born['VALE_MAX' ] ) ) - __gbil = CALC_G_THETA_T( MODELE = modele, - CHAM_MATER = affmat, - THETA = __theta, - RESULTAT = nomres, - TOUT_ORDRE = 'OUI', - COMP_ELAS = _F(TOUT = 'OUI', - RELATION = COMP_ELAS['RELATION'],), - TITRE = montit, - OPTION = OPTION, - BORNES = mcfact,) - IMPR_TABLE(TABLE = __gbil, ) -# -# --- commande CALC_G_LOCAL_T --- -# - montit = 'G_LOCAL AVEC R_INF = '+str(tht3d['R_INF'])+' ET R_SUP = '+str(tht3d['R_SUP']) - motscles={} - if COMP_ELAS!=None: motscles['COMP_ELAS' ]= _F(TOUT = 'OUI', - RELATION = COMP_ELAS['RELATION'],) - if FERME: - motscles['LISSAGE_THETA']= 'LAGRANGE' - motscles['LISSAGE_G' ]= 'LAGRANGE' - __glocal = CALC_G_LOCAL_T( MODELE = modele, - CHAM_MATER = affmat, - FOND_FISS = fond3d[j], - RESULTAT = nomres, - TOUT_ORDRE = 'OUI', - R_INF = tht3d['R_INF'], - R_SUP = tht3d['R_SUP'], - TITRE = montit,**motscles) -# -# recherche du g max local -# - if OPTION=='CALC_G_MAX_LOCAL' : - if BORNES!=None: - motscles={} - mcfact=[] - if FERME: - motscles['LISSAGE_THETA']= 'LAGRANGE' - motscles['LISSAGE_G' ]= 'LAGRANGE' - for born in BORNES : - mcfact.append(_F( NUME_ORDRE = born['NUME_ORDRE'] , - VALE_MIN = born['VALE_MIN' ] , - VALE_MAX = born['VALE_MAX' ] ) ) - motscles['BORNES']=mcfact - __glbil = CALC_G_LOCAL_T( MODELE = modele, - CHAM_MATER = affmat, - FOND_FISS = fond3d[j], - RESULTAT = nomres, - TOUT_ORDRE = 'OUI', - COMP_ELAS = _F(TOUT = 'OUI', - RELATION = COMP_ELAS['RELATION'],), - TITRE = montit, - OPTION = 'CALC_G_MAX', - R_INF = tht3d['R_INF'], - R_SUP = tht3d['R_SUP'],**motscles) - IMPR_TABLE(TABLE = __glbil, ) -# -# --- commande IMPR_RESU --- -# - if IMPRESSION!=None: - mcfresu =[] - motscles={} - motsclei={} - if IMPRESSION['FORMAT'] in ('IDEAS','CASTEM') : - ncham =[] - if IMPRESSION['NOM_CHAM']!=None : - if type(IMPRESSION['NOM_CHAM']) in (types.TupleType,types.ListType) : ncham= IMPRESSION['NOM_CHAM'] - else : ncham=[IMPRESSION['NOM_CHAM'],] - if len(ncham)==3 : motscles['NOM_CHAM' ]=('DEPL','EQUI_ELNO_SIGM') - elif (len(ncham)==1) and (ncham[0][:4]!='TEMP') : - motscles['NOM_CHAM' ]= ncham[0]['NOM_CHAM'] - elif (len(ncham)==2) and (ncham[0][:4]!='TEMP') and (ncham[1][:4]!='TEMP') : - motscles['NOM_CHAM' ]=(ncham[0]['NOM_CHAM'],ncham[1]['NOM_CHAM']) - elif (len(ncham)==2) and (ncham[0][:4]=='TEMP') : - motscles['NOM_CHAM' ]= ncham[1]['NOM_CHAM'] - elif (len(ncham)==2) and (ncham[1][:4]=='TEMP') : - motscles['NOM_CHAM' ]= ncham[0]['NOM_CHAM'] - if IMPRESSION['TOUT_ORDRE']!=None : - motscles['TOUT_ORDRE']= IMPRESSION['TOUT_ORDRE'] - elif IMPRESSION['NUME_ORDRE']!=None : - motscles['NUME_ORDRE']= IMPRESSION['NUME_ORDRE'] - elif IMPRESSION['INST']!=None : - motscles['INST' ]= IMPRESSION['INST'] - if IMPRESSION['FORMAT']=='IDEAS' : - motsclei['VERSION' ]= IMPRESSION['VERSION'] - if IMPRESSION['FORMAT']=='CASTEM' : - motsclei['NIVE_GIBI' ]= IMPRESSION['NIVE_GIBI'] - mcfresu.append(_F(MAILLAGE=MAILLAGE,RESULTAT=nomres,**motscles)) - if ECHANGE!=None: - motscles={} - if IMPRESSION['FORMAT'] in ('IDEAS','CASTEM') : - if len(ncham)==3 : motscles['NOM_CHAM' ]=('TEMP',) - elif (len(ncham)==1) and (ncham[0][:4]=='TEMP') : - motscles['NOM_CHAM' ]= ncham[0]['NOM_CHAM'] - elif (len(ncham)==2) and (ncham[0][:4]=='TEMP') : - motscles['NOM_CHAM' ]= ncham[0]['NOM_CHAM'] - elif (len(ncham)==2) and (ncham[1][:4]=='TEMP') : - motscles['NOM_CHAM' ]= ncham[1]['NOM_CHAM'] - if IMPRESSION['TOUT_ORDRE']!=None : - motscles['TOUT_ORDRE']= IMPRESSION['TOUT_ORDRE'] - elif IMPRESSION['NUME_ORDRE']!=None : - motscles['NUME_ORDRE']= IMPRESSION['NUME_ORDRE'] - elif IMPRESSION['INST']!=None : - motscles['INST' ]= IMPRESSION['INST'] - if IMPRESSION['FORMAT']=='IDEAS' : - motsclei['VERSION' ]= IMPRESSION['VERSION'] - if IMPRESSION['FORMAT']=='CASTEM' : - motsclei['NIVE_GIBI' ]= IMPRESSION['NIVE_GIBI'] - mcfresu.append(_F(RESULTAT=nomres,**motscles)) - IMPR_RESU( MODELE = modele, - RESU = mcfresu, - FORMAT=IMPRESSION['FORMAT'],**motsclei) -# - return ier diff --git a/Aster/Cata/cataSTA81/Macro/macr_aspic_mail_ops.py b/Aster/Cata/cataSTA81/Macro/macr_aspic_mail_ops.py deleted file mode 100644 index 11af02c8..00000000 --- a/Aster/Cata/cataSTA81/Macro/macr_aspic_mail_ops.py +++ /dev/null @@ -1,910 +0,0 @@ -#@ MODIF macr_aspic_mail_ops Macro DATE 19/09/2005 AUTEUR DURAND C.DURAND -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - - -from math import sqrt,cos,sin,pi,pow,tan - -# Ecriture du fichier GIBI principal (dgib) - ASPID0 -def write_file_dgib_ASPID0(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ZMAX, H, - ALPHA, JEU, EPC, DEC, XMAX, TYPMAI, THETA, TYPELE, - ITYPSO, DPENE, NIVMAG, loc_datg) : - - import aster -# Ouverture du fichier d'entrée de commandes - fdgib=open(nomFichierDATG,'w') - POIVIR = ' ; \n' - texte='****************************************************************\n' - texte=texte+'opti echo 0 ; \n' - texte=texte+'epT1 = '+str(EPT1) +POIVIR - texte=texte+'DeT1 = '+str(DET1) +POIVIR - texte=texte+'d1 = '+str(D1) +POIVIR - texte=texte+'d2 = '+str(D2) +POIVIR - texte=texte+'epT2 = '+str(EPT2) +POIVIR - texte=texte+'DeT2 = '+str(DET2) +POIVIR - texte=texte+'Zmax = '+str(ZMAX) +POIVIR - texte=texte+'type_s = '+str(ITYPSO) +POIVIR - texte=texte+'d_pene = '+str(DPENE) +POIVIR - texte=texte+'h = '+str(H) +POIVIR - texte=texte+'angl_s = '+str(ALPHA) +POIVIR - texte=texte+'jeu = '+str(JEU) +POIVIR - texte=texte+'epC = '+str(EPC) +POIVIR - texte=texte+'DeC = '+str(DEC) +POIVIR - texte=texte+'Xmax = '+str(XMAX) +POIVIR - texte=texte+'typmai = MOT '+TYPMAI +POIVIR - texte=texte+'theta = '+str(THETA) +POIVIR - texte=texte+'typele = MOT '+TYPELE +POIVIR - texte=texte+'typ_eque = MOT '+'SAINE' +POIVIR - texte=texte+'nivmag = '+str(NIVMAG) +POIVIR - texte=texte+'* \n' - texte=texte+'opti donn ' - texte=texte+"'"+loc_datg+'aspic.datg'+"';\n" - aster.affiche('MESSAGE',texte) - fdgib.write(texte) - fdgib.close() - -# Ecriture du fichier GIBI principal (dgib) - ASPID1 -def write_file_dgib_ASPID1(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ZMAX, H, - ALPHA, JEU, EPC, DEC, XMAX, TYPMAI,THETA, - A,C,EPS, RC0, NS,NC,NT,POSI, NDT,FETIRF,FETIRP, - TFISS,ZETA,ITYPSO,DPENE, NIVMAG, loc_datg) : - - import aster -# Ouverture du fichier d'entrée de commandes - fdgib=open(nomFichierDATG,'w') - POIVIR = ' ; \n' - texte='****************************************************************\n' - texte=texte+'opti echo 0 ; \n' - texte=texte+'epT1 = '+str(EPT1) +POIVIR - texte=texte+'DeT1 = '+str(DET1) +POIVIR - texte=texte+'d1 = '+str(D1) +POIVIR - texte=texte+'d2 = '+str(D2) +POIVIR - texte=texte+'epT2 = '+str(EPT2) +POIVIR - texte=texte+'DeT2 = '+str(DET2) +POIVIR - texte=texte+'Zmax = '+str(ZMAX) +POIVIR - texte=texte+'type_s = '+str(ITYPSO) +POIVIR - texte=texte+'d_pene = '+str(DPENE) +POIVIR - texte=texte+'h = '+str(H) +POIVIR - texte=texte+'angl_s = '+str(ALPHA) +POIVIR - texte=texte+'jeu = '+str(JEU) +POIVIR - texte=texte+'epC = '+str(EPC) +POIVIR - texte=texte+'DeC = '+str(DEC) +POIVIR - texte=texte+'Xmax = '+str(XMAX) +POIVIR - texte=texte+'typmai = MOT '+TYPMAI +POIVIR - texte=texte+'theta = '+str(THETA) +POIVIR - texte=texte+'a = '+str(A) +POIVIR - texte=texte+'c = '+str(C) +POIVIR - texte=texte+'zeta = '+str(ZETA) +POIVIR - texte=texte+'eps = '+str(EPS) +POIVIR - texte=texte+'rc0 = '+str(RC0) +POIVIR - texte=texte+'ns = '+str(NS) +POIVIR - texte=texte+'nc = '+str(NC) +POIVIR - texte=texte+'nt = '+str(NT) +POIVIR - texte=texte+'dir_fiss = MOT '+POSI +POIVIR - texte=texte+'pos_fiss = MOT '+TFISS +POIVIR - texte=texte+'ndt = '+str(NDT) +POIVIR - texte=texte+'f_etir_f = '+str(FETIRF) +POIVIR - texte=texte+'f_etir_p = '+str(FETIRP) +POIVIR - texte=texte+'typ_eque = MOT '+'FISS_LON' +POIVIR - texte=texte+'nivmag = '+str(NIVMAG) +POIVIR - texte=texte+'* \n' - texte=texte+'opti donn ' - texte=texte+"'"+loc_datg+'aspic_v2.datg'+"';\n" - aster.affiche('MESSAGE',texte) - fdgib.write(texte) - fdgib.close() - -# Ecriture du fichier GIBI principal (dgib) - ASPID2 -def write_file_dgib_ASPID2(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ZMAX, - H, ALPHA, JEU, EPC, DEC, XMAX, TYPMAI, - THETA, A, C, EPS, RC0, RC1, RC2, RC3, - ALP,BETA, NS, NC, NT, POSI ,NDT,NSDT,TFISS, - ZETA,ITYPSO,DPENE, NIVMAG, loc_datg) : -# - import aster - CALPHA = cos(ALPHA*pi/180.) - SALPHA = sin(ALPHA*pi/180.) - CTHETA = cos(THETA*pi/180.) - STHETA = sin(THETA*pi/180.) -# - AOLD = A -# - if (ITYPSO == 1) : -# PIQUAGE TYPE 1 - if (POSI == 'DROIT') : -# PIQUAGE DROIT - if (TFISS == 'DEB_INT') : -# POSITION INTERNE - SGAMMA = STHETA * (DET1/2.0)/( (DEC/2.0) -EPC) - SGAMME = STHETA * (DET1/2.0)/( (DEC/2.0) ) - RAPPA = sqrt(1.0 - pow(SGAMMA,2)) - RAPPE = sqrt(1.0 - pow(SGAMME,2)) - AP = A - (1.0 - RAPPA)*A - RAPP = (AP/EPC*RAPPE) + (1.0-(AP/EPC))*RAPPA - XA = (DET1/2.0) * CTHETA - YA = (DET1/2.0) * STHETA - ZA = ((DEC/2.0) -EPC) * sqrt(1.0 - pow(SGAMMA,2)) - ZA0 = (DEC/2.0) - EPC - XA0 = DET1/2.0 - XN0 = XA0 - YN0 = 0.0 - ZN0 = ZA0 + A - XN = XN0 * CTHETA - YN = XN0 * STHETA - SGAMN = YN / ZN0 - ZN = ZN0 * sqrt(1.0 - (SGAMN*SGAMN)) - D0N0 = sqrt( pow((XA0 - XN0),2) + pow((ZA0 - ZN0),2) ) - DN = sqrt( pow((XA - XN),2) + pow((YA - YN),2) + pow((ZA - ZN),2) ) - RAPP = D0N0 / DN - ECART = (1.0 - RAPP) * D0N0 - A = A - ECART - elif (TFISS == 'DEB_EXT') : -# POSITION EXTERNE - SGAMME = STHETA * (DET1/2.0)/ (DEC/2.0) - RAPPE = sqrt(1.0 - pow(SGAMME,2)) - A = A -(1.0 - RAPPE)*A - - elif (POSI == 'INCLINE') : -# PIQUAGE INCLINE - SGAMMA = STHETA * (DET1/2.0)/ ( (DEC/2.0) -EPC) - XA = (DET1/2.0) * CTHETA - YA = (DET1/2.0) * STHETA - ZA = ((DEC/2.0) - EPC) * sqrt(1.0 - pow(SGAMMA,2)) - ZA0 = (DEC/2.0) - EPC - ZD0 = DEC/2.0 - XA0 = DET1/2.0 - XD0 = XA0 + (tan(ALPHA*pi/180.0) * EPC) - A0D0 = sqrt( pow((ZD0 - ZA0),2) + pow((XD0 - XA0),2) ) - EPSIL = STHETA * tan(ALPHA*pi/180.0) - PHI = (EPSIL * ZA) - YA - DELTA = pow(PHI,2) - ((1 + pow(EPSIL,2))*(pow(PHI,2) - (pow((DEC/2.0),2)*pow(EPSIL,2)))) - if (STHETA > 0) : - YD = ( sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) - else : - YD = ( -1.0*sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) - - ZD = sqrt(pow((DEC/2.0),2) - pow(YD,2)) - - if ( (abs(THETA - 0.0) < 1.e-3) or ((abs(THETA - 180.0)) < 1.e-3) ) : - XD = CTHETA * XD0 - else : - XD = YD / tan(THETA*pi/180.0) - - AD = sqrt( pow((XA - XD),2) + pow((YA - YD),2) + pow((ZA - ZD),2) ) - RAPP = A0D0 / AD - - if (TFISS == 'DEB_EXT') : - XN0 = XD0 - A*SALPHA - YN0 = 0.0 - ZN0 = ZD0 - A*CALPHA - XN = XN0 * CTHETA - YN = XN0 * STHETA - DNXY = sqrt(pow(XD,2) + pow(YD,2)) - sqrt(pow(XN,2) + pow(YN,2)) - DNXY0 = XD0 - XN0 - RAPP = DNXY/DNXY0 - # Correction necessaire dans le cas theta et/ou alpha grand - if (RAPP < 0.5) : - DXY = sqrt(pow(XD,2) + pow(YD,2) ) - XN = XN * DXY/XD0 - YN = YN * DXY/XD0 - SGAMN = YN / ZN0 - ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2)) - D0N0 = sqrt( pow((XD0 - XN0),2) + pow((ZD0 - ZN0),2) ) - DN = sqrt( pow((XD - XN),2) + pow((YD - YN),2) + pow((ZD - ZN),2) ) - RAPP = D0N0 / DN - ECART = (RAPP - 1.0) * D0N0 - A = A + ECART - - if (TFISS == 'DEB_INT') : - XN0 = XA0 + A*SALPHA - YN0 = 0.0 - ZN0 = ZA0 + A*CALPHA - XN = XN0 * CTHETA - YN = XN0 * STHETA - SGAMN = YN / ZN0 - ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2)) - D0N0 = sqrt( pow((XA0 - XN0),2) + pow((ZA0 - ZN0),2) ) - DN = sqrt( pow((XA - XN),2) + pow((YA - YN),2) + pow((ZA - ZN),2) ) - RAPP = D0N0 / DN - ECART = (RAPP - 1.0) * D0N0 - A = A + ECART - - elif (ITYPSO == 2) : -# PIQUAGE TYPE 2 - if (POSI == 'DROIT') : -# PIQUAGE DROIT - SGAMMI = STHETA * ((DET1/2.0) - EPT1)/(DEC/2.0) - XI = ((DET1/2.0) - EPT1) * CTHETA - YI = ((DET1/2.0) - EPT1) * STHETA - ZI = (DEC/2.0) * sqrt(1.0 - pow(SGAMMI,2)) - XI0 = (DET1/2.0) -EPT1 - YI0 = 0.0 - ZI0 = (DEC/2.0) - - SGAMMA = STHETA * (DET1/2.0)/((DEC/2.0) -EPC) - YA = (DET1/2.0) * STHETA - ZA = ((DEC/2.0) - EPC) * sqrt(1.0 - pow(SGAMMA,2)) - TGALP = H / EPC - EPSIL = STHETA * TGALP - PHI = (EPSIL * ZA) - YA - DELTA = pow(PHI,2) - (1.0 + pow(EPSIL,2))*(pow(PHI,2) - pow((DEC/2.0),2)*pow(EPSIL,2)) - if (STHETA > 0) : - YD = (sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) - else : - YD = (-1.0*sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) - - ZD = sqrt( pow((DEC/2.0),2) - pow(YD,2) ) - if ( (abs(THETA - 0.0) < 1.0e-3) or - (abs(THETA - 180.0) < 1.0e-3) or - (abs(THETA + 180.0) < 1.0e-3) or - (abs(THETA + 90.0) < 1.0e-3) or - (abs(THETA - 90.0) < 1.0e-3) ) : - XD = CTHETA * ((DET1/2.0) + H) - else : - XD = YD / (tan(THETA*pi/180.0)) - - XD0 = (DET1/2.0) + H - YD0 = 0.0 - ZD0 = (DEC/2.0) - - if (TFISS == 'DEB_EXT') : - XN0 = XD0 - A - YN0 = 0.0 - ZN0 = ZI0 - XN = XN0 * CTHETA - YN = XN0 * STHETA - DZID = abs(ZI - ZD) - DXYID = sqrt( pow((XD - XI),2) + pow((YD - YI),2) ) - DXYIN = sqrt( pow((XN - XI),2) + pow((YN - YI),2) ) - DZIN = (DXYIN * DZID) / DXYID - ZN = ZI - DZIN - D0N0 = sqrt( pow((XD0 - XN0),2) + pow((ZD0 - ZN0),2) ) - DN = sqrt( pow((XD - XN),2) + pow((YD - YN),2) + pow((ZD - ZN),2) ) - RAPP = D0N0 / DN - ECART = DN - D0N0 - A = A - ECART - - if (TFISS == 'DEB_INT') : - XN0 = XI0 + A - YN0 = 0.0 - ZN0 = ZI0 - XN = XN0 * CTHETA - YN = XN0 * STHETA - SGAMN = YN / ZN0 - ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2)) - I0N0 = sqrt( pow((XI0 - XN0),2) + pow((ZI0 - ZN0),2) ) - IN = sqrt( pow((XI - XN),2) + pow((YI - YN),2) + pow((ZI - ZN),2) ) - RAPP = I0N0 / IN - ECART = I0N0 * ( 1.0 - RAPP ) - A = A - ECART - - elif (POSI == 'INCLINE') : -# PIQUAGE INCLINE - TGALPHA = SALPHA/CALPHA - REPB = (DEC/2.0) + JEU + (EPT1*TGALPHA) - SGAMB = (STHETA * DET1/2.0 ) / REPB - CGAMB = sqrt(1.0 - pow(SGAMB,2)) - XB = (DET1/2.0) * CTHETA - YB = (DET1/2.0) * STHETA - ZB = ( (DEC/2.0) + JEU + (EPT1*TGALPHA) ) * CGAMB - XB0 = (DET1/2.0) - YB0 = 0.0 - ZB0 = (DEC/2.0) + JEU + (EPT1*TGALPHA) -# - RIT1 = (DET1/2.0) - EPT1 - REPG = (DEC/2.0) + JEU - SGAMG = ((STHETA ) * RIT1) / REPG - CGAMG = sqrt(1.0 - pow(SGAMG,2)) - XG = RIT1 * CTHETA - YG = RIT1 * STHETA - ZG = ((DEC/2.0) + JEU) * CGAMG - XG0 = RIT1 - YG0 = 0.0 - ZG0 = (DEC/2.0) + JEU -# - if (TFISS == 'DEB_INT') : - XN0 = XG0 + A*CALPHA - YN0 = 0.0 - ZN0 = ZG0 + A*SALPHA - XN = XN0 * CTHETA - YN = XN0 * STHETA - SGAMN = YN / ZN0 - ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2)) - G0N0 = sqrt( pow((XG0 - XN0),2) + pow((ZG0 - ZN0),2) ) - GN = sqrt( pow((XG - XN),2) + pow((YG - YN),2) + pow((ZG - ZN),2) ) - RAPP = G0N0 / GN - ECART = (RAPP - 1.0) * G0N0 - A = A + ECART - - if (TFISS == 'DEB_EXT') : - XN0 = XB0 - A*CALPHA - YN0 = 0.0 - ZN0 = ZB0 - A*SALPHA - XN = XN0 * CTHETA - YN = XN0 * STHETA - SGAMN = YN / ZN0 - ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2)) - B0N0 = sqrt( pow((XB0 - XN0),2) + pow((ZB0 - ZN0),2) ) - BN = sqrt( pow((XB - XN),2) + pow((YB - YN),2) + pow((ZB - ZN),2) ) - RAPP = B0N0 / BN - ECART = (RAPP - 1.0) * B0N0 - A = A + ECART - - message= ' CORRECTION PROFONDEUR DEFAUT \n' - message=message+ ' PROFONDEUR SUR PIQUAGE : %.2f \n'%AOLD - message=message+ ' PROFONDEUR SUR EQUERRE : %.2f \n'%A - aster.affiche('MESSAGE',message) - -# Ouverture du fichier d'entrée de commandes - - fdgib=open(nomFichierDATG,'w') - POIVIR = ' ; \n' - texte='****************************************************************\n' - texte=texte+'opti echo 0 ; \n' - texte=texte+'epT1 = '+str(EPT1) +POIVIR - texte=texte+'DeT1 = '+str(DET1) +POIVIR - texte=texte+'d1 = '+str(D1) +POIVIR - texte=texte+'d2 = '+str(D2) +POIVIR - texte=texte+'epT2 = '+str(EPT2) +POIVIR - texte=texte+'DeT2 = '+str(DET2) +POIVIR - texte=texte+'Zmax = '+str(ZMAX) +POIVIR - texte=texte+'type_s = '+str(ITYPSO) +POIVIR - texte=texte+'d_pene = '+str(DPENE) +POIVIR - texte=texte+'h = '+str(H) +POIVIR - texte=texte+'angl_s = '+str(ALPHA) +POIVIR - texte=texte+'jeu = '+str(JEU) +POIVIR - texte=texte+'epC = '+str(EPC) +POIVIR - texte=texte+'DeC = '+str(DEC) +POIVIR - texte=texte+'Xmax = '+str(XMAX) +POIVIR - texte=texte+'typmai = MOT '+TYPMAI +POIVIR - texte=texte+'theta = '+str(THETA) +POIVIR - texte=texte+'a = '+str(A) +POIVIR - texte=texte+'c = '+str(C) +POIVIR - texte=texte+'zeta = '+str(ZETA) +POIVIR - texte=texte+'eps = '+str(EPS) +POIVIR - texte=texte+'rc0 = '+str(RC0) +POIVIR - texte=texte+'rc1 = '+str(RC1) +POIVIR - texte=texte+'rc2 = '+str(RC2) +POIVIR - texte=texte+'rc3 = '+str(RC3) +POIVIR - texte=texte+'alpha = '+str(ALP) +POIVIR - texte=texte+'beta = '+str(BETA) +POIVIR - texte=texte+'ns = '+str(NS) +POIVIR - texte=texte+'nc = '+str(NC) +POIVIR - texte=texte+'nt = '+str(NT) +POIVIR - texte=texte+'dir_fiss = MOT '+POSI +POIVIR - texte=texte+'pos_fiss = MOT '+TFISS +POIVIR - texte=texte+'ndt = '+str(NDT) +POIVIR - texte=texte+'nsdt = '+str(NSDT) +POIVIR - texte=texte+'typ_eque = MOT '+'FISS_COU' +POIVIR - texte=texte+'nivmag = '+str(NIVMAG) +POIVIR - texte=texte+'* \n' - texte=texte+'list epc ;\n' - texte=texte+'opti donn ' - texte=texte+"'"+loc_datg+'aspic.datg'+"';\n" - aster.affiche('MESSAGE',texte) - fdgib.write(texte) - fdgib.close() - -def macr_aspic_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,RAFF_MAIL,TUBULURE, - SOUDURE,CORPS,FISS_SOUDURE,IMPRESSION,INFO, - **args): - """ - Ecriture de la macro MACR_ASPIC_MAIL - """ - from Accas import _F - import types - import aster - from Utilitai.Utmess import UTMESS - ier=0 - -# On importe les definitions des commandes a utiliser dans la macro - EXEC_LOGICIEL =self.get_cmd('EXEC_LOGICIEL') - PRE_GIBI =self.get_cmd('PRE_GIBI') - LIRE_MAILLAGE =self.get_cmd('LIRE_MAILLAGE') - DEFI_GROUP =self.get_cmd('DEFI_GROUP') - MODI_MAILLAGE =self.get_cmd('MODI_MAILLAGE') - AFFE_MODELE =self.get_cmd('AFFE_MODELE') - CREA_MAILLAGE =self.get_cmd('CREA_MAILLAGE') - IMPR_RESU =self.get_cmd('IMPR_RESU') - -# La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - TYPELE = TYPE_ELEM - NIVMAG = EXEC_MAILLAGE['NIVE_GIBI'] -# -# --- raffinement maillage --- -# - TYPMAI = RAFF_MAIL - GROS = (TYPMAI=='GROS') - if GROS : NBAZIT = 40 - else : NBAZIT = 48 -# -# --- caracteristiques de la tubulure --- -# - EPT1 = TUBULURE['E_BASE' ] - DET1 = TUBULURE['DEXT_BASE'] - D1 = TUBULURE['L_BASE' ] - D2 = TUBULURE['L_CHANF' ] - EPT2 = TUBULURE['E_TUBU' ] - DET2 = TUBULURE['DEXT_TUBU'] - ZMAX = TUBULURE['Z_MAX' ] - TYPSOU= TUBULURE['TYPE' ] - DPENE = TUBULURE['L_PENETR' ] - if TYPSOU=='TYPE_2' and DPENE>0.0 : - UTMESS('F', "MACR_ASPIC_MAIL", "les piquages penetrants sont autorises uniquement avec les soudures de type 1") - if TYPSOU=='TYPE_2' : - ITYPSO = 2 - else : - ITYPSO = 1 -# -# --- caracteristiques de la soudure --- -# - H = SOUDURE['H_SOUD' ] - ALPHA = SOUDURE['ANGL_SOUD'] - JEU = SOUDURE['JEU_SOUD' ] -# -# --- caracteristiques du corps --- -# - EPC = CORPS ['E_CORP' ] - DEC = CORPS ['DEXT_CORP'] - XMAX = CORPS ['X_MAX' ] - EPSI = 1.E-03 - RMB = ( DET1 - EPT1 ) / 2.0 - VAL1 = 1.5 * sqrt( RMB**3 / EPT1 ) - VAL3 = 3.0 * sqrt( RMB * EPT1 ) - RMT = ( DET2 - EPT2 ) / 2.0 - VAL2 = 1.5 * sqrt( RMT**3 / EPT2 ) - VAL4 = 3.0 * sqrt( RMT * EPT2 ) - LZMAX = max ( VAL1 , VAL2, VAL3, VAL4 ) - ZMAXC = LZMAX + ( DEC/2.0 ) + D1 + D2 - LOK = ( abs(ZMAX-ZMAXC) <= EPSI * abs(ZMAXC) ) - if not LOK : - message= ' erreur donnees \n' - message=message+ ' Z_MAX FOURNIE : %.2f \n'%ZMAX - message=message+ ' Z_MAX CALCULEE : %.2f \n'%ZMAXC - UTMESS('F', "MACR_ASPIC_MAIL", message) - RMC = ( DEC - EPC ) / 2.0 - VAL1 = 1.5 * sqrt( RMC**3 / EPC ) - VAL2 = 3.0 * sqrt( RMC * EPC ) - LXMAX = max( VAL1 , VAL2 ) - XMAXC = LXMAX + ( DET1 / 2.0 ) - LOK = ( abs(XMAX-XMAXC) <= EPSI * abs(XMAXC) ) - if not LOK : - message= ' erreur donnees \n' - message=message+ ' Z_MAX FOURNIE : %.2f \n'%ZMAX - message=message+ ' Z_MAX CALCULEE : %.2f \n'%ZMAXC - UTMESS('F', "MACR_ASPIC_MAIL", message) - message= ' MACR_ASPIC_MAIL / X_MAX CALCULEE : %.2f \n'%XMAX - message=message+ ' MACR_ASPIC_MAIL / Z_MAX CALCULEE : %.2f \n'%XMAXC - aster.affiche('MESSAGE',message) -# -# --- caracteristiques de la fissure --- -# - SAIN = 0 - FISLON = 0 - FISCOU = 0 - THETA = 0.0 - TFISS = None - if FISS_SOUDURE==None : - SAIN = 1 - else : - if FISS_SOUDURE['TYPE']=='LONGUE' : FISLON = 1 - elif FISS_SOUDURE['TYPE']=='COURTE' : FISCOU = 1 - THETA = FISS_SOUDURE['AZIMUT' ] - EPS = FISS_SOUDURE['ANGL_OUVERTURE'] - AXIS = FISS_SOUDURE['AXIS' ] - POSI = FISS_SOUDURE['POSITION' ] - TFISS = FISS_SOUDURE['FISSURE' ] - A = FISS_SOUDURE['PROFONDEUR' ] - if FISS_SOUDURE['LONGUEUR' ]!=None : - C = FISS_SOUDURE['LONGUEUR' ] - N1 = 1 - else : N1 = 0 - if (TFISS=='DEB_INT') and (POSI=='INCLINE') and (DPENE>0.0) and (JEU>0.0) : - message= ' erreur donnees \n' - message=message+ ' dans le cas de fissures \n' - message=message+ ' inclinees debouchant en peau interne avec \n' - message=message+ ' piquage penetrant le jeu doit etre nul \n' - UTMESS('F', "MACR_ASPIC_MAIL", message) - ZETA = 0.5 - if TFISS not in ('DEB_INT','DEB_EXT') : - if FISS_SOUDURE['LIGA_INT']==None : - message= ' erreur donnees \n' - message=message+ ' dans le cas de fissures internes\n' - message=message+ ' (NON_DEB) le ligament inferieur est obligatoire \n' - UTMESS('F', "MACR_ASPIC_MAIL", message) - LIGA = FISS_SOUDURE['LIGA_INT'] - if POSI=='DROIT' : - if ITYPSO==1 : ZETA = (A+LIGA)/(EPC+H) - else : ZETA = (A+LIGA)/(EPT1+H) - else : - if ITYPSO==1 : ZETA = (A+LIGA)*cos(ALPHA*pi/180.0)/EPC - else : ZETA = (A+LIGA)*cos(ALPHA*pi/180.0)/EPT1 - if ZETA < 0.1 : - UTMESS('F', "MACR_ASPIC_MAIL", "dans le cas de fissures internes (NON_DEB) le ligament est trop petit ") - if ZETA > 0.9 : - UTMESS('F', "MACR_ASPIC_MAIL", "dans le cas de fissures internes (NON_DEB) le ligament est trop grand ") - if LIGA < 0.1*EPC : - UTMESS('F', "MACR_ASPIC_MAIL", "dans le cas de fissures internes (NON_DEB) le ligament est trop petit ") - if (LIGA + 2.0*A) > 0.9*EPC : - UTMESS('F', "MACR_ASPIC_MAIL", "dans le cas de fissures internes (NON_DEB) le ligament est trop grand ") - if N1==0 : - if FISCOU : - UTMESS('F', "MACR_ASPIC_MAIL", "dans le cas de fissures courte il faut preciser la longueur") - if AXIS=='NON' : - UTMESS('F', "MACR_ASPIC_MAIL", "dans le cas de la fissure longue il faut preciser la longueur ou axis=oui ") - C = 0.0 - else : - if AXIS=='OUI' : UTMESS('A', "MACR_ASPIC_MAIL", "fissure axisymetrique : le mot clef ne doit pas etre renseigne") - C = 0.5 * C - LEQU=2.*(pi*(DEC-EPC)-DET1+2.*EPT1) -# -# LPIQ est une valeur qui depend theoriquement de la fissure. la valeur -# ci-dessous est approchee car elle ne sert qu'a calculer les facteurs d'etirement -# - LPIQ=pi*(DET1) - if AXIS=='OUI' : C=100.0*LPIQ - RAPL=LEQU/LPIQ - if FISCOU : - RAP=A/C - CAS1=RAP<0.3499 - CAS3=RAP>0.4999 - CAS2= not (CAS1 or CAS3) - if CAS1 : ALP=0.8 - if CAS2 : ALP=0.4 - if CAS3 : ALP=0.0 - BETA=1.0 - if GROS and not CAS1 : - NDT=1 - NSDT=2 - else : - NDT=2 - NSDT=4 -# - if FISLON : - if GROS : - NDT=2 - FETIRF=30.*RAPL - FETIRP=60.*RAPL - else : - NDT=3 - FETIRF=15.*RAPL - FETIRP=30.*RAPL -# - RC0 = FISS_SOUDURE['RAYON_TORE'] - if (FISCOU and RC0==None) : - if GROS : RC0=0.12 - else : RC0=0.10 - if CAS1 : RC0=0.08 - RC0=RC0*A - if (FISLON and RC0==None) : RC0=A/(NDT+1) -# - RC1 = FISS_SOUDURE['COEF_MULT_RC1'] - if (FISCOU and RC1==None) : - if GROS : RC1=1.2 - else : RC1=1.0 -# - RC2 = FISS_SOUDURE['COEF_MULT_RC2'] - if (FISCOU and RC2==None) : - if GROS : RC2=1.4 - else : RC2=1.2 -# - RC3 = FISS_SOUDURE['COEF_MULT_RC3'] - if (FISCOU and RC3==None) : - if GROS : - if CAS1 : RC3=2.5 - else : RC3=1.0 # valeur non utilisee - else : - if CAS3 : RC3=2.2 - else : RC3=2.0 -# - NT = FISS_SOUDURE['NB_TRANCHE'] - if (FISCOU and NT==None) : - if GROS : NT = 8 - else : NT = 16 - if CAS1 : NT = NT*2 - if (FISLON and NT==None) : NT=0 -# - NS = FISS_SOUDURE['NB_SECTEUR'] - if (FISCOU and NS==None) : - if GROS : NS = 2 - else : NS = 4 - if (FISLON and NS==None) : - if GROS : NS = 2 - else : NS = 4 -# - NC = FISS_SOUDURE['NB_COURONNE'] - if (FISCOU and NC==None) : - if GROS : NC = 3 - else : NC = 4 - if (FISLON and NC==None) : - if GROS : NC = 3 - else : NC = 4 -# - loc_gibi=aster.repout() - logiel = EXEC_MAILLAGE['LOGICIEL' ] - UNITD = EXEC_MAILLAGE['UNITE_DATG'] - UNITS = EXEC_MAILLAGE['UNITE_MGIB'] - if logiel=='GIBI98' : logiel = loc_gibi+'gibi98' - elif logiel=='GIBI2000': logiel = loc_gibi+'gibi2000' - else : - UTMESS('F', "MACR_ASPIC_MAIL", "seuls gibi98 et gibi2000 sont appelables ") -# -# --- ecriture sur le fichier .datg de la procedure --- -# -# Nom du fichier de commandes pour GIBI - nomFichierDATG = 'fort.'+str(UNITD) -# Nom du fichier de maillage GIBI - nomFichierGIBI = 'fort.'+str(UNITS) - loc_datg = aster.repdex() - if SAIN : write_file_dgib_ASPID0(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ZMAX, H, - ALPHA, JEU, EPC, DEC, XMAX, TYPMAI, THETA, TYPELE, - ITYPSO, DPENE, NIVMAG,loc_datg) - if FISLON : write_file_dgib_ASPID1(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ZMAX, H, - ALPHA, JEU, EPC, DEC, XMAX, TYPMAI,THETA, - A,C,EPS, RC0,NS,NC,NT,POSI, NDT,FETIRF,FETIRP, - TFISS,ZETA,ITYPSO,DPENE, NIVMAG,loc_datg) - if FISCOU : write_file_dgib_ASPID2(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ZMAX, - H, ALPHA, JEU, EPC, DEC, XMAX, TYPMAI, - THETA, A, C, EPS, RC0, RC1, RC2, RC3, - ALP,BETA, NS, NC, NT, POSI ,NDT,NSDT,TFISS, - ZETA,ITYPSO,DPENE, NIVMAG,loc_datg) -# - EXEC_LOGICIEL( LOGICIEL = logiel , - ARGUMENT = ( _F(NOM_PARA=nomFichierDATG), - _F(NOM_PARA=nomFichierGIBI), ), ) -# - PRE_GIBI() -# - __MAPROV=LIRE_MAILLAGE(INFO=INFO) -# - motscles={} - motscles['CREA_GROUP_MA']=[] - l_CREA_GROUP_NO=[] - if SAIN : - l_CREA_GROUP_NO.append('S_LAT1') - l_CREA_GROUP_NO.append('S_LAT2') - else : - l_CREA_GROUP_NO.append('S_LAT1_C') - l_CREA_GROUP_NO.append('S_LAT2_C') - l_CREA_GROUP_NO.append('S_LAT1_T') - l_CREA_GROUP_NO.append('S_LAT2_T') - if (TFISS=='NON_DEB') and (FISS_SOUDURE['TYPE']=='LONGUE') : - l_CREA_GROUP_NO.append('PFONDINF') - l_CREA_GROUP_NO.append('PFONDSUP') - else : - l_CREA_GROUP_NO.append('PFONDFIS') - if (TFISS=='NON_DEB') and (FISS_SOUDURE['TYPE']=='COURTE') : - motscles['CREA_GROUP_MA'].append(_F(GROUP_MA = 'FONDFISS', - NOM = 'MAIL_ORI', - POSITION = 'INIT' )) - if (TFISS[:4]=='DEB_') and (AXIS=='OUI') : - motscles['CREA_GROUP_MA'].append(_F(GROUP_MA = 'FONDFISS', - NOM = 'MAIL_ORI', - POSITION = 'INIT' )) - if (TFISS=='NON_DEB') and (FISS_SOUDURE['TYPE']=='LONGUE') : - motscles['CREA_GROUP_MA'].append(_F(GROUP_MA = 'FOND_SUP', - NOM = 'MA_ORI_S', - POSITION = 'INIT' )) - motscles['CREA_GROUP_MA'].append(_F(GROUP_MA = 'FOND_INF', - NOM = 'MA_ORI_I', - POSITION = 'INIT' )) - l_CREA_GROUP_NO.append('S_FOND1') - l_CREA_GROUP_NO.append('S_FOND2') - l_CREA_GROUP_NO.append('EQUERRE') - motscles['CREA_GROUP_NO']=_F(GROUP_MA=l_CREA_GROUP_NO) -# - __MAPROV=DEFI_GROUP(reuse =__MAPROV, - MAILLAGE=__MAPROV, - **motscles ) -# - if not SAIN : - motscles={} - motscles['CREA_GROUP_NO']=[] - if not (TFISS=='NON_DEB') : - motscles['CREA_GROUP_NO'].append(_F(GROUP_MA = 'FONDFISS',)) - if (TFISS=='NON_DEB') and (FISS_SOUDURE['TYPE']=='LONGUE') : - motscles['CREA_GROUP_NO'].append(_F(GROUP_MA = ('FOND_SUP','FOND_INF',),)) - __MAPROV=DEFI_GROUP(reuse =__MAPROV, - MAILLAGE=__MAPROV, - **motscles ) -# - __MAPROV=MODI_MAILLAGE(reuse =__MAPROV, - MAILLAGE=__MAPROV, - EQUE_PIQUA=_F( GROUP_NO = 'EQUERRE' , - E_BASE = EPT1 , - DEXT_BASE = DET1 , - L_BASE = D1 , - L_CHANF = D2 , - TYPE = TYPSOU, - H_SOUD = H , - ANGL_SOUD = ALPHA , - JEU_SOUD = JEU , - E_CORP = EPC , - DEXT_CORP = DEC , - AZIMUT = THETA , - RAFF_MAIL = TYPMAI, - X_MAX = XMAX , ) - ) -# - __MODELE=AFFE_MODELE( MAILLAGE=__MAPROV, - AFFE=_F( GROUP_MA = ('EQUERRE','PEAUINT','EXCORP1','EXCORP2','EXTUBU'), - PHENOMENE = 'MECANIQUE' , - MODELISATION = '3D' , ) - ) -# - motscles={} - if TFISS=='DEB_INT' : - motscles['ORIE_PEAU_3D']=_F(GROUP_MA=('PEAUINT','EXCORP1','EXCORP2','EXTUBU','LEVRTUBU','LEVRCORP'),) - else : - motscles['ORIE_PEAU_3D']=_F(GROUP_MA=('PEAUINT','EXCORP1','EXCORP2','EXTUBU',),) - __MAPROV=MODI_MAILLAGE(reuse =__MAPROV, - MAILLAGE=__MAPROV, - MODELE =__MODELE, - **motscles - ) -# - if SAIN : - __MAPROV=DEFI_GROUP(reuse = __MAPROV, - MAILLAGE = __MAPROV, - CREA_GROUP_NO = _F(GROUP_MA=('NIDXT','NEDXT','NIIXT','NEIXT')) ) -# - for i in range(1,NBAZIT+1): - prec = EPC / 5.0 - __MAPROV=DEFI_GROUP(reuse = __MAPROV, - MAILLAGE = __MAPROV, - CREA_GROUP_NO = ( _F( NOM = 'NID'+str(i) , - GROUP_NO = 'NIDXT' , - NUME_INIT = i , - NUME_FIN = i ,), - _F( NOM = 'NED'+str(i) , - GROUP_NO = 'NEDXT' , - NUME_INIT = i , - NUME_FIN = i ,), - _F( NOM = 'NII'+str(i) , - GROUP_NO = 'NIIXT' , - NUME_INIT = i , - NUME_FIN = i ,), - _F( NOM = 'NEI'+str(i) , - GROUP_NO = 'NEIXT' , - NUME_INIT = i , - NUME_FIN = i ,), - _F( NOM = 'LDN'+str(i) , - GROUP_MA = 'LD' +str(i) ,), - _F( NOM = 'LD' +str(i) , - GROUP_NO = 'LDN'+str(i) , - OPTION = 'SEGM_DROI_ORDO', - PRECISION = prec , - CRITERE = 'ABSOLU' , - GROUP_NO_ORIG = 'NID'+str(i), - GROUP_NO_EXTR = 'NED'+str(i),), - _F( NOM = 'LIN'+str(i) , - GROUP_MA = 'LI' +str(i) ,), - _F( NOM = 'LI' +str(i) , - GROUP_NO = 'LIN'+str(i) , - OPTION = 'SEGM_DROI_ORDO', - PRECISION = prec , - CRITERE = 'ABSOLU' , - GROUP_NO_ORIG = 'NII'+str(i), - GROUP_NO_EXTR = 'NEI'+str(i),),)) -# -# -# --- commande CREA_MAILLAGE --- -# - self.DeclareOut('nomres',self.sd) - nomres=CREA_MAILLAGE( MAILLAGE=__MAPROV, - CREA_POI1 = ( _F( NOM_GROUP_MA = 'P1_CORP ' , - GROUP_NO = 'P1_CORP ' , ), - _F( NOM_GROUP_MA = 'P2_CORP ' , - GROUP_NO = 'P2_CORP ' , ), - _F( NOM_GROUP_MA = 'P_TUBU ' , - GROUP_NO = 'P_TUBU ' , ),) - ) -# - if IMPRESSION!=None: - for impr in IMPRESSION : -# - motscles={} - if impr['FORMAT']=='IDEAS' : motscles['VERSION'] =impr['VERSION'] - if impr['FORMAT']=='CASTEM' : motscles['NIVE_GIBI']=impr['NIVE_GIBI'] - if impr['UNITE']!=None : motscles['UNITE'] =impr['UNITE'] - impr_resu = _F( MAILLAGE = nomres,) -# - IMPR_RESU( RESU = impr_resu, - FORMAT = impr['FORMAT'],**motscles ) -# -# -# --- Verification profondeur fissure (courte débouchante) --- -# - if FISCOU and not (TFISS=='NON_DEB') : - nomres=DEFI_GROUP( reuse=nomres, - MAILLAGE=nomres, - CREA_GROUP_NO=(_F( GROUP_MA = 'LEVRTUBU',), - _F( NOM = 'FONDORDO', - GROUP_MA = 'FONDFISS', - OPTION = 'NOEUD_ORDO',),),); - - nommail=nomres.nom - coord =aster.getvectjev(nommail.ljust(8)+'.COORDO .VALE') - collgrno=aster.getcolljev(nommail.ljust(8)+'.GROUPENO') - - grfo=collgrno['FONDORDO'] - Nbno = len(grfo) - listx = [None]*Nbno - listy = [None]*Nbno - listz = [None]*Nbno - k = 0 - for node in grfo: - listx[k] = coord[3*(node-1)] - listy[k] = coord[3*(node-1)+1] - listz[k] = coord[3*(node-1)+2] - k = k+1 - - XAB = listx[Nbno-1] - listx[0] - YAB = listy[Nbno-1] - listy[0] - ZAB = listz[Nbno-1] - listz[0] - AB = sqrt(XAB*XAB + YAB*YAB +ZAB*ZAB) - d = 0 - for k in range(0,Nbno) : - XAM = listx[k] - listx[0] - YAM = listy[k] - listy[0] - ZAM = listz[k] - listz[0] - Xvect = YAB*ZAM-ZAB*YAM - Yvect = ZAB*XAM-XAB*ZAM - Zvect = XAB*YAM-YAB*XAM - AM = sqrt(Xvect*Xvect+ Yvect*Yvect +Zvect*Zvect) - dk = AM/AB - if dk > d : - XC = listx[k] - YC = listy[k] - ZC = listz[k] - d = max(dk, d) - - grlev=collgrno['LEVRTUBU'] - Nbnol = len(grlev) - listxl = [None]*Nbnol - listyl = [None]*Nbnol - listzl = [None]*Nbnol - k = 0 - for node in grlev: - listxl[k] = coord[3*(node-1)] - listyl[k] = coord[3*(node-1)+1] - listzl[k] = coord[3*(node-1)+2] - k = k+1 - dist = 0 - for k in range(0,Nbnol) : - XAM = listxl[k] - listx[0] - YAM = listyl[k] - listy[0] - ZAM = listzl[k] - listz[0] - Scal = (XAB*XAM + YAB*YAM + ZAB*ZAM)/(AB*AB) - if (abs(Scal) < 0.51) and (abs(Scal) > 0.49) : - Xk = listxl[k] -XC - Yk = listyl[k] -YC - Zk = listzl[k] -ZC - dk = sqrt(Xk**2+ Yk**2 +Zk**2) - dist = max(dk, dist) - - texte=" PROFONDEUR DE LA FISSURE DANS LE MAILLAGE : %.2f \n"%dist - aster.affiche('MESSAGE',texte) -# - return ier - - diff --git a/Aster/Cata/cataSTA81/Macro/macr_cabri_calc_ops.py b/Aster/Cata/cataSTA81/Macro/macr_cabri_calc_ops.py deleted file mode 100644 index da2fa29f..00000000 --- a/Aster/Cata/cataSTA81/Macro/macr_cabri_calc_ops.py +++ /dev/null @@ -1,542 +0,0 @@ -#@ MODIF macr_cabri_calc_ops Macro DATE 07/10/2005 AUTEUR CIBHHPD L.SALMONA -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - - - -def macr_cabri_calc_ops(self,MAILLAGE,MODELE_MECA,MODELE_THER,CHAR_THER, - CHAR_MECA,RESU_THER,RESO_INTE, - AFFE_MATERIAU,DEFI_CHAR_THER,DEFI_CHAR_MECA,RELATION,SOLVEUR,CONVERGENCE,NEWTON, - INCREMENT,CHAM_MATER,**args): - """ - Ecriture de la macro MACR_CABRI_CALC - """ - - ################################################################# - ########## PREPARATION MACRO - ################################################################# - - from Accas import _F - - ier =0 - - # On met certains mots-clefs dans des variables locales pour les proteger - affemateriau = AFFE_MATERIAU - mail = MAILLAGE - resointe = RESO_INTE - - # On importe les definitions des commandes a utiliser dans la macro - # Le nom de la variable doit etre obligatoirement le nom de la commande - DEFI_GROUP = self.get_cmd('DEFI_GROUP') - AFFE_MATERIAU = self.get_cmd('AFFE_MATERIAU') - AFFE_MODELE = self.get_cmd('AFFE_MODELE') - MODI_MAILLAGE = self.get_cmd('MODI_MAILLAGE') - AFFE_CHAR_THER_F = self.get_cmd('AFFE_CHAR_THER_F') - AFFE_CHAR_THER = self.get_cmd('AFFE_CHAR_THER') - AFFE_CHAR_MECA_F = self.get_cmd('AFFE_CHAR_MECA_F') - AFFE_CHAR_MECA = self.get_cmd('AFFE_CHAR_MECA') - DEFI_FONCTION = self.get_cmd('DEFI_FONCTION') - DEFI_LIST_REEL = self.get_cmd('DEFI_LIST_REEL') - THER_LINEAIRE = self.get_cmd('THER_LINEAIRE') - STAT_NON_LINE = self.get_cmd('STAT_NON_LINE') - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # Le concept sortant (de type evol_noli) est nomme 'resumeca' dans - # le contexte de la macro - self.DeclareOut('resumeca',self.sd) - self.DeclareOut('mail',MAILLAGE) - - ################################################################# - ########## PREPARATION DES MODELES - ################################################################# - - # Definition des groupes - mail=DEFI_GROUP(reuse =mail,MAILLAGE=mail, - CREA_GROUP_NO=( - _F(GROUP_MA='M_GOU',NOM='N_M_GOU',), - _F(GROUP_MA='M_JOI',NOM='N_M_JOI',), - _F(GROUP_MA='SCBJ',NOM='N_SCBJ',), - _F(GROUP_MA='SCJB',NOM='N_SCJB',), - _F(GROUP_MA='M_L_AA',NOM='N_M_L_AA',), - _F(GROUP_MA='SCEG',NOM='N_SCEG',), - _F(GROUP_MA='SCGE',NOM='N_SCGE',),),) - - # Creation du modele thermique - if MODELE_THER != None: - self.DeclareOut('modther',MODELE_THER) - - modther=AFFE_MODELE(MAILLAGE=mail, - AFFE=_F(GROUP_MA=('VTOT','M_GOU','M_TUB','M_JOI','SCBJ','SCJB', - 'M_L_AA','M_INT','M_L_SA','M_EXT','SCEG','SCGE',), - PHENOMENE='THERMIQUE', - MODELISATION='3D_DIAG',), - ); - - # Creation du modele mecanique - if MODELE_MECA != None: - self.DeclareOut('modmeca',MODELE_MECA) - - modmeca = AFFE_MODELE(MAILLAGE=mail, - AFFE=_F(GROUP_MA=('VTOT','M_GOU','M_TUB','M_JOI','SCBJ','SCJB', - 'M_L_AA','M_L_SA','SCEG','SCGE','M_INT','M_EXT',), - PHENOMENE='MECANIQUE', - MODELISATION='3D',), - ); - - # Orientation des mailles - mail=MODI_MAILLAGE(reuse =mail, - MAILLAGE=mail, - ORIE_PEAU_3D=(_F(GROUP_MA=('M_INT','M_TUB',),), - _F(GROUP_MA=('M_L_AA','M_JOI','M_L_SA',),),), - MODELE=modmeca,); - - - - # Affectation des materiaux - if CHAM_MATER != None: - self.DeclareOut('_cham',CHAM_MATER) - motscles={} - motscles['AFFE']=[] - for mat in affemateriau: - if mat['TOUT'] == None: - # Creation de mots-cles pour les AFFE_CHAR_MECA - motscles['AFFE'].append(_F(GROUP_MA=mat['GROUP_MA'], - MATER = mat['MATER'], - TEMP_REF = mat['TEMP_REF'],) ) - else: - # Creation de mots-cles pour les AFFE_CHAR_MECA - motscles['AFFE'].append(_F(TOUT='OUI', - MATER = mat['MATER'], - TEMP_REF = mat['TEMP_REF'],) ) - - _cham = AFFE_MATERIAU(MAILLAGE=mail, - MODELE=modther, - AFFE=motscles['AFFE'], - ) - - ################################################################# - ########## CONDITIONS AUX LIMITES THERMIQUES - ################################################################# - # Recuperation des parametres thermiques - - if DEFI_CHAR_THER != None: - temp_ini = DEFI_CHAR_THER['TEMP_INIT'] - if DEFI_CHAR_THER['COEF_H_FLUI']!=None: - coef_int = DEFI_CHAR_THER['COEF_H_FLUI'] - else: - coef_int = DEFI_FONCTION(NOM_PARA='INST', - VALE=(0.0,0.016, - 7200.0,0.016,), - PROL_DROITE='CONSTANT', - PROL_GAUCHE='CONSTANT',); - if DEFI_CHAR_THER['TEMP_EXT_FLUI']!=None: - temp_int = DEFI_CHAR_THER['TEMP_EXT_FLUI'] - else: - temp_int = DEFI_FONCTION(NOM_PARA='INST', - VALE=(0.0,temp_ini,1.0,temp_ini,11.0,60.0, - 600.0,60.0,610.0,280.0,1800.0,280.0,7200.0,280.0,), - PROL_DROITE='CONSTANT', - PROL_GAUCHE='CONSTANT',); - if DEFI_CHAR_THER['COEF_H_AIR']!=None: - coef_ext = DEFI_CHAR_THER['COEF_H_AIR'] - else: - coef_ext = DEFI_FONCTION(NOM_PARA='INST', - VALE=(0.0,1e-05,7200.0,1e-05,), - PROL_DROITE='CONSTANT', - PROL_GAUCHE='CONSTANT',); - - if DEFI_CHAR_THER['TEMP_EXT_AIR']!=None: - temp_ext = DEFI_CHAR_THER['TEMP_EXT_AIR'] - else: - temp_ext = DEFI_FONCTION(NOM_PARA='INST', - VALE=(0.0,20.0,7200.0,20.0,), - PROL_DROITE='CONSTANT', - PROL_GAUCHE='CONSTANT',); - if DEFI_CHAR_THER['LIST_INST']!=None: - transi1 = DEFI_CHAR_THER['LIST_INST'] - else: - transi1 = DEFI_LIST_REEL(DEBUT=0.0, - INTERVALLE=(_F(JUSQU_A=1.0, - NOMBRE=1,), - _F(JUSQU_A=11.0, - NOMBRE=10,), - _F(JUSQU_A=600.0, - NOMBRE=10,), - _F(JUSQU_A=610.0, - NOMBRE=30,), - _F(JUSQU_A=1800.0, - NOMBRE=30,), - _F(JUSQU_A=7200.0, - NOMBRE=10,),),); - else: - temp_ini = DEFI_CHAR_THER['TEMP_INIT'] - coef_int = DEFI_FONCTION(NOM_PARA='INST', - VALE=(0.0,0.016, - 7200.0,0.016,), - PROL_DROITE='CONSTANT', - PROL_GAUCHE='CONSTANT',); - temp_int = DEFI_FONCTION(NOM_PARA='INST', - VALE=(0.0,temp_ini,1.0,temp_ini,11.0,60.0, - 600.0,60.0,610.0,280.0,1800.0,280.0,7200.0,280.0,), - PROL_DROITE='CONSTANT', - PROL_GAUCHE='CONSTANT',); - coef_ext = DEFI_FONCTION(NOM_PARA='INST', - VALE=(0.0,1e-05,7200.0,1e-05,), - PROL_DROITE='CONSTANT', - PROL_GAUCHE='CONSTANT',); - temp_ext = DEFI_FONCTION(NOM_PARA='INST', - VALE=(0.0,20.0,7200.0,20.0,), - PROL_DROITE='CONSTANT', - PROL_GAUCHE='CONSTANT',); - transi1 = DEFI_LIST_REEL(DEBUT=0.0, - INTERVALLE=(_F(JUSQU_A=1.0, - NOMBRE=1,), - _F(JUSQU_A=11.0, - NOMBRE=10,), - _F(JUSQU_A=600.0, - NOMBRE=10,), - _F(JUSQU_A=610.0, - NOMBRE=30,), - _F(JUSQU_A=1800.0, - NOMBRE=30,), - _F(JUSQU_A=7200.0, - NOMBRE=10,),),); - # Que sauver ? - if CHAR_THER != None: - for m in CHAR_THER: - if m['TYPE']=="BRIDE_FLUIDE": - self.DeclareOut('cl_th1',m['CHARGE']) - if m['TYPE']=="BRIDE_AIR": - self.DeclareOut('cl_th2',m['CHARGE']) - if m['TYPE']=="ECROU_GOUJON": - self.DeclareOut('cl_th3',m['CHARGE']) - if m['TYPE']=="BRIDE_JOINT": - self.DeclareOut('cl_th4',m['CHARGE']) - - # Echanges thermiques internes entre le fluide et la bride - cl_th1=AFFE_CHAR_THER_F(MODELE=modther, - ECHANGE=_F(GROUP_MA = 'M_INT', - COEF_H = coef_int, - TEMP_EXT = temp_int,),); - - # Echanges thermiques externes entre bride et air ambiant - cl_th2=AFFE_CHAR_THER_F(MODELE=modther, - ECHANGE=_F(GROUP_MA='M_EXT', - COEF_H=coef_ext, - TEMP_EXT=temp_ext,),); - - # Echanges thermiques entre ecrou et goujon - cl_th3=AFFE_CHAR_THER(MODELE=modther, - LIAISON_GROUP=_F(GROUP_NO_1='N_SCEG', - GROUP_NO_2='N_SCGE', - DDL_1='TEMP', - COEF_MULT_1=1.0, - DDL_2='TEMP', - COEF_MULT_2=-1.0, - COEF_IMPO=0.0,),); - - # Echanges thermiques entre bride et joint - cl_th4=AFFE_CHAR_THER(MODELE=modther, - LIAISON_GROUP=_F(GROUP_NO_1='N_SCBJ', - GROUP_NO_2='N_SCJB', - DDL_1='TEMP', - COEF_MULT_1=1.0, - DDL_2='TEMP', - COEF_MULT_2=-1.0, - COEF_IMPO=0.0,),); - - - - ################################################################# - ########## CALCUL THERMIQUE - ################################################################# - if RESU_THER != None: - self.DeclareOut('resuther',RESU_THER) - - resuther=THER_LINEAIRE(MODELE=modther, - CHAM_MATER=_cham, - EXCIT=(_F(CHARGE=cl_th1,), - _F(CHARGE=cl_th2,), - _F(CHARGE=cl_th3,), - _F(CHARGE=cl_th4,),), - INCREMENT=_F(LIST_INST=transi1,), - TEMP_INIT=_F(VALE=temp_ini,), - TITRE='CABRI THERMIQUE &DATE &HEURE',); - - ################################################################# - ########## CONDITIONS AUX LIMITES MECANIQUES - ################################################################# - # Recuperation des parametres mecaniques - if DEFI_CHAR_MECA != None: - if DEFI_CHAR_MECA['PRETENS']!=None: - f_pret = DEFI_CHAR_MECA['PRETENS'] - else: - f_pret=DEFI_FONCTION(NOM_PARA='INST', - VALE=(0.0,0.0,1.0,-0.02,), - PROL_DROITE='CONSTANT', - PROL_GAUCHE='CONSTANT',); - if DEFI_CHAR_MECA['PRES_REP']!=None: - pre_int = DEFI_CHAR_MECA['PRES_REP'] - else: - pre_int = DEFI_FONCTION(NOM_PARA='INST', - VALE=(0.0,0.0,1.0,0.0,11.0,16.0,), - PROL_DROITE='CONSTANT', - PROL_GAUCHE='CONSTANT',); - if DEFI_CHAR_MECA['EFFE_FOND']!=None: - eff_fond = DEFI_CHAR_MECA['EFFE_FOND'] - else: - eff_fond=DEFI_FONCTION(NOM_PARA='INST', - VALE=(0.0,-0.0,1.0,-0.0,11.0,-20.607059,), - PROL_DROITE='CONSTANT', - PROL_GAUCHE='CONSTANT',); - else: - f_pret=DEFI_FONCTION(NOM_PARA='INST', - VALE=(0.0,0.0,1.0,-0.02,), - PROL_DROITE='CONSTANT', - PROL_GAUCHE='CONSTANT',); - - pre_int = DEFI_FONCTION(NOM_PARA='INST', - VALE=(0.0,0.0,1.0,0.0,11.0,16.0,), - PROL_DROITE='CONSTANT', - PROL_GAUCHE='CONSTANT',); - - eff_fond=DEFI_FONCTION(NOM_PARA='INST', - VALE=(0.0,-0.0,1.0,-0.0,11.0,-20.607059,), - PROL_DROITE='CONSTANT', - PROL_GAUCHE='CONSTANT',); - # Que sauver ? - if CHAR_MECA != None: - for m in CHAR_MECA: - if m['TYPE']=="BLOC_BAS_GOUJ": - self.DeclareOut('cl_me1',m['CHARGE']) - if m['TYPE']=="BLOC_BAS_JOINT": - self.DeclareOut('cl_me2',m['CHARGE']) - if m['TYPE']=="BLOC_LAT_ALES": - self.DeclareOut('cl_me3',m['CHARGE']) - if m['TYPE']=="BLOC_LAT_NALES": - self.DeclareOut('cl_me4',m['CHARGE']) - if m['TYPE']=="PLAN_TUBE": - self.DeclareOut('cl_me5',m['CHARGE']) - if m['TYPE']=="PRES_FLU": - self.DeclareOut('cl_me6',m['CHARGE']) - if m['TYPE']=="EFFET_FOND": - self.DeclareOut('cl_me7',m['CHARGE']) - if m['TYPE']=="CONT_JOINT": - self.DeclareOut('cl_me8',m['CHARGE']) - if m['TYPE']=="DEFO_THER": - self.DeclareOut('cl_me9',m['CHARGE']) - if m['TYPE']=="SERR_ECROU_1": - self.DeclareOut('cl_me10',m['CHARGE']) - if m['TYPE']=="SERR_ECROU_2": - self.DeclareOut('cl_me11',m['CHARGE']) - - - # Blocage bas du goujon - cl_me1=AFFE_CHAR_MECA(MODELE=modmeca, - DDL_IMPO=_F(GROUP_NO='N_M_GOU', - DZ=0.0,), - INFO=2,); - # Blocage bas du joint - cl_me2=AFFE_CHAR_MECA(MODELE=modmeca, - DDL_IMPO=_F(GROUP_NO='N_M_JOI', - DZ=0.0,), - INFO=2,); - - # Blocage lateral, face laterale avec alesage - cl_me3=AFFE_CHAR_MECA(MODELE=modmeca, - DDL_IMPO=_F(GROUP_NO='N_M_L_AA', - DY=0.0,), - INFO=2,); - - # Face laterale sans alesage - cl_me4=AFFE_CHAR_MECA(MODELE=modmeca, - FACE_IMPO=_F(GROUP_MA='M_L_SA', - DNOR=0.0,), - INFO=2,); - - # Condition de planeite de la face de coupe du tube - cl_me5=AFFE_CHAR_MECA(MODELE=modmeca, - LIAISON_UNIF=_F(GROUP_MA='M_TUB', - DDL='DZ',), - INFO=2,); - # Pression due au fluide - cl_me6=AFFE_CHAR_MECA_F(MODELE=modmeca, - PRES_REP=_F(GROUP_MA='M_INT', - PRES=pre_int,), - INFO=2,); - - # Effet de fond - cl_me7=AFFE_CHAR_MECA_F(MODELE=modmeca, - PRES_REP=_F(GROUP_MA='M_TUB', - PRES=eff_fond,), - INFO=2,); - - # Contact zone de joint - cl_me8=AFFE_CHAR_MECA(MODELE=modmeca, - CONTACT=_F(GROUP_MA_MAIT='SCBJ', - GROUP_MA_ESCL='SCJB',), - INFO=2,); - # Deformation thermique - cl_me9=AFFE_CHAR_MECA( MODELE=modmeca, - TEMP_CALCULEE=resuther, - INFO=2,); - - # Serrage ecrou/goujon (pre-tensionnement) - cl_me10=AFFE_CHAR_MECA_F(MODELE=modmeca, - LIAISON_GROUP=_F(GROUP_NO_1='N_SCEG', - GROUP_NO_2='N_SCGE', - DDL_1='DZ', - COEF_MULT_1=1.0, - DDL_2='DZ', - COEF_MULT_2=-1.0, - COEF_IMPO=f_pret,), - INFO=2,); - - cl_me11=AFFE_CHAR_MECA(MODELE=modmeca, - LIAISON_GROUP=_F(GROUP_NO_1='N_SCEG', - GROUP_NO_2='N_SCGE', - DDL_1='DX', - COEF_MULT_1=1.0, - DDL_2='DX', - COEF_MULT_2=-1.0, - COEF_IMPO=0.0,), - INFO=2,); - - - ################################################################# - ########## CALCUL MECANIQUE - ################################################################# - # Options de convergence - solveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste) - - # Elimination des valeurs "None" - for i in solveur.keys(): - if solveur[i]==None : del solveur[i] - - - transi2 = DEFI_LIST_REEL(DEBUT=0.0, - INTERVALLE=(_F(JUSQU_A=1.0, - NOMBRE=2,), - _F(JUSQU_A=11.0, - NOMBRE=20,), - _F(JUSQU_A=600.0, - NOMBRE=20,), - _F(JUSQU_A=610.0, - NOMBRE=20,), - _F(JUSQU_A=1800.0, - NOMBRE=20,), - _F(JUSQU_A=7200.0, - NOMBRE=20,),),); - - # Options d'incrementation - if INCREMENT != None: - if INCREMENT['LIST_INST'] != None: - listinst = INCREMENT['LIST_INST'] - else: - listinst = transi2 - - increment=INCREMENT[0].cree_dict_valeurs(INCREMENT[0].mc_liste) - - # Elimination des valeurs "None" - for i in increment.keys(): - if increment[i]==None : del increment[i] - - increment['LIST_INST'] = listinst - - else: - listinst = transi2 - increment =_F( - LIST_INST = listinst, - ), - - # Options de Newton - newton=NEWTON[0].cree_dict_valeurs(NEWTON[0].mc_liste) - # Elimination des valeurs "None" - for i in newton.keys(): - if newton[i]==None : del newton[i] - - # Options de convergence - convergence=CONVERGENCE[0].cree_dict_valeurs(CONVERGENCE[0].mc_liste) - # Elimination des valeurs "None" - for i in convergence.keys(): - if convergence[i]==None : del convergence[i] - - # Options de comportement - # Type incremental (=1) ou elastique (=0) - comp_incr = 0 - if RELATION: - relation=RELATION - if relation == 'VMIS_ISOT_TRAC': - comp_incr = 1 - else: - comp_incr = 0 - else: - relation = 'ELAS' - comp_incr = 0 - - - # Parametres du calcul - if comp_incr == 1: - resumeca=STAT_NON_LINE(MODELE=modmeca, - CHAM_MATER=_cham, - EXCIT=(_F(CHARGE=cl_me1,), - _F(CHARGE=cl_me2,), - _F(CHARGE=cl_me3,), - _F(CHARGE=cl_me4,), - _F(CHARGE=cl_me5,), - _F(CHARGE=cl_me6,), - _F(CHARGE=cl_me7,), - _F(CHARGE=cl_me8,), - _F(CHARGE=cl_me9,), - _F(CHARGE=cl_me10,), - _F(CHARGE=cl_me11,), - ), - SOLVEUR = solveur, - COMP_INCR =_F(RELATION=relation,RESO_INTE=resointe), - NEWTON = newton, - INCREMENT = increment, - CONVERGENCE = convergence, - TITRE='CABRI THERMOM\xe9CANIQUE &DATE &HEURE',); - else: - resumeca=STAT_NON_LINE(MODELE=modmeca, - CHAM_MATER=_cham, - EXCIT=(_F(CHARGE=cl_me1,), - _F(CHARGE=cl_me2,), - _F(CHARGE=cl_me3,), - _F(CHARGE=cl_me4,), - _F(CHARGE=cl_me5,), - _F(CHARGE=cl_me6,), - _F(CHARGE=cl_me7,), - _F(CHARGE=cl_me8,), - _F(CHARGE=cl_me9,), - _F(CHARGE=cl_me10,), - _F(CHARGE=cl_me11,), - ), - SOLVEUR = solveur, - COMP_ELAS =_F(RELATION=relation,RESO_INTE=resointe), - NEWTON = newton, - INCREMENT = increment, - CONVERGENCE = convergence, - TITRE='CABRI THERMOM\xe9CANIQUE &DATE &HEURE',); - - return ier - diff --git a/Aster/Cata/cataSTA81/Macro/macr_cabri_mail_dat.py b/Aster/Cata/cataSTA81/Macro/macr_cabri_mail_dat.py deleted file mode 100644 index 7d673257..00000000 --- a/Aster/Cata/cataSTA81/Macro/macr_cabri_mail_dat.py +++ /dev/null @@ -1,630 +0,0 @@ -#@ MODIF macr_cabri_mail_dat Macro DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - - -# Données pour les brides standards - - - -# Pour ajouter une bride x: -# Définir un dico_bride_x comme ci-dessous puis ajoutez-le à dico_bride_std - -# dictionnaire pour la description des variables -dico_var_geo = {'nbgouj':'Nombre de goujons de la jonction boulonnée (GOUJ_N_GOUJON)', - 'dint':'Diamètre intérieur de la bride (BRID_D_INT)', - 'dex1':'Diamétre extérieur de la conduite (TUBU_D_EXT)', - 'dex2':'Position (diamètre) du congé de la bride (BRID_D_CONGE)', - 'dex3':'Diamètre de l''épaulement de la bride au niveau de l''interface d''étanchéité (BRID_D_EPAUL)', - 'dtrou':'Position des alésages de la bride permettant l''introduction des goujons (BRID_P_ALESAG)', - 'dext':'Diamètre extérieur de la bride (BRID_D_EXT)', - 'dt':'Diamètre des alésages de la bride permettant l''introduction des goujons (BRID_D_ALESAG)', - 'drd':'Diamètre de la rondelle (GOUJ_D_RONDEL)', - 'dg':'Diamètre des goujons de la jonction boulonnée (GOUJ_D_GOUJON)', - 'dec':'Diamètre de l''écrou (GOUJ_D_ECROU)', - 'rcong':'Rayon du congé de la bride (BRID_R_CONGE)', - 'he':'Epaisseur de la rondelle (GOUJ_E_RONDEL)', - 'e':'Epaisseur de l''écrou (GOUJ_E_ECROU)', - 'hc1':'Hauteur de la bride (BRID_H)', - 'hcg1':'Hauteur de conduite (TUBU_H)', - 'hb':'Hauteur de l''épaulement de la bride au niveau de l''interface d''étanchéité (BRID_H_EPAUL)', - 'htrou':'Hauteur des alésages de la bride permettant l''introduction des goujons (BRID_H_ALESAG)', - 'pf':'Profondeur (épaisseur) des filets des goujons (GOUJ_E_FILET)', - 'j':'Epaisseur du joint au niveau de l''interface d''étanchéité (ETAN_E_JOINT)'} - -dico_var_msh = {'nrad':'Nombre d''éléments radiaux (NBR_RAD)', - 'ncir':'Nombre d''éléments circonférentiels (NBR_CIR)', - 'nver':'Nombre d''éléments verticaux (NBR_VER)', - 'nsect':'Nombre d''éléments de l''alésage (NBR_ALE)', - 'temps':'Temps d''analyse'} - -# dictionnaires des brides standards -dico_bride_A = {'nbgouj': 4, - 'dint': 15.76, - 'dex1': 21.3, - 'dex2': 38., - 'dex3': 48., - 'dtrou': 67., - 'dext': 95., - 'dt': 14., - 'drd': 25., - 'dg': 12., - 'dec': 18., - 'rcong': 3., - 'he': 12., - 'e': 2.5, - 'hc1': 46.5, - 'hcg1': 20, - 'hb': 1.5, - 'htrou': 20., - 'pf': 1.5, - 'j': 2} - -dico_bride_AA = {'nbgouj': 32, - 'dint': 336.5, - 'dex1': 355.6, - 'dex2': 395., - 'dex3': 415., - 'dtrou': 460., - 'dext': 515., - 'dt': 22., - 'drd': 36., - 'dg': 20., - 'dec': 30., - 'rcong': 5., - 'he': 20., - 'e': 3., - 'hc1': 115., - 'hcg1': 115./2., - 'hb': 3., - 'htrou': 47., - 'pf': 2.2, - 'j': 2} - -dico_bride_B = {'nbgouj': 4, - 'dint': 26.64, - 'dex1': 33.4, - 'dex2': 53., - 'dex3': 63., - 'dtrou': 88., - 'dext': 123., - 'dt': 16., - 'drd': 27., - 'dg': 14., - 'dec': 21., - 'rcong': 4., - 'he': 14., - 'e': 2.5, - 'hc1': 59., - 'hcg1': 59./2., - 'hb': 1.5, - 'htrou': 27.5, - 'pf': 1.7, - 'j': 2} -dico_bride_B1 = {'nbgouj': 4, - 'dint': 24.3, - 'dex1': 33.4, - 'dex2': 53., - 'dex3': 63., - 'dtrou': 88., - 'dext': 123., - 'dt': 16., - 'drd': 27., - 'dg': 14., - 'dec': 21., - 'rcong': 4., - 'he': 14., - 'e': 2.5, - 'hc1': 59., - 'hcg1': 59./2., - 'hb': 1.5, - 'htrou': 27.5, - 'pf': 1.7, - 'j': 2} -dico_bride_C = {'nbgouj': 8, - 'dint': 52.48, - 'dex1': 60.3, - 'dex2': 84., - 'dex3': 100., - 'dtrou': 127., - 'dext': 165., - 'dt': 18., - 'drd': 30, - 'dg': 16., - 'dec': 24., - 'rcong': 4., - 'he': 16., - 'e': 3, - 'hc1': 70., - 'hcg1': 70./2., - 'hb': 1.5, - 'htrou': 21., - 'pf': 1.7, - 'j': 2} -dico_bride_D = {'nbgouj': 8, - 'dint': 42.9, - 'dex1': 60.3, - 'dex2': 84., - 'dex3': 100., - 'dtrou': 127., - 'dext': 165., - 'dt': 18., - 'drd': 30, - 'dg': 16., - 'dec': 24., - 'rcong': 5., - 'he': 16., - 'e': 3., - 'hc1': 87.6, - 'hcg1': 87.6/2., - 'hb': 1.5, - 'htrou': 38.5, - 'pf': 1.7, - 'j': 2} -dico_bride_D1 = {'nbgouj': 8, - 'dint': 49.22, - 'dex1': 60.3, - 'dex2': 84., - 'dex3': 100., - 'dtrou': 127., - 'dext': 165., - 'dt': 18., - 'drd': 30, - 'dg': 16., - 'dec': 24., - 'rcong': 5., - 'he': 16., - 'e': 3., - 'hc1': 87.6, - 'hcg1': 87.6/2., - 'hb': 1.5, - 'htrou': 38.5, - 'pf': 1.7, - 'j': 2} -dico_bride_E = {'nbgouj': 8, - 'dint': 83.1, - 'dex1': 88.9, - 'dex2': 117.5, - 'dex3': 135., - 'dtrou': 165., - 'dext': 209., - 'dt': 18., - 'drd': 30., - 'dg': 16., - 'dec': 24., - 'rcong': 5., - 'he': 16., - 'e': 3., - 'hc1': 80., - 'hcg1': 80./2., - 'hb': 2., - 'htrou': 27., - 'pf': 1.7, - 'j': 2} -dico_bride_F = {'nbgouj': 8, - 'dint': 73.66, - 'dex1': 88.9, - 'dex2': 117.5, - 'dex3': 135., - 'dtrou': 165., - 'dext': 209., - 'dt': 18., - 'drd': 30., - 'dg': 16., - 'dec': 24., - 'rcong': 5., - 'he': 16., - 'e': 3., - 'hc1': 89., - 'hcg1': 89./2., - 'hb': 2., - 'htrou': 36., - 'pf': 1.7, - 'j': 2} -dico_bride_FF = {'nbgouj': 32, - 'dint': 396.99, - 'dex1': 406.4, - 'dex2': 440., - 'dex3': 455., - 'dtrou': 485., - 'dext': 535., - 'dt': 18., - 'drd': 30., - 'dg': 16., - 'dec': 24., - 'rcong': 5., - 'he': 16., - 'e': 3., - 'hc1': 99., - 'hcg1': 99./2., - 'hb': 3., - 'htrou': 40., - 'pf': 1.7, - 'j': 2} -dico_bride_G = {'nbgouj': 12, - 'dint': 66.7, - 'dex1': 88.9, - 'dex2': 117.5, - 'dex3': 135., - 'dtrou': 165., - 'dext': 209., - 'dt': 18., - 'drd': 30., - 'dg': 16., - 'dec': 24., - 'rcong': 5., - 'he': 16., - 'e': 3., - 'hc1': 98., - 'hcg1': 98./2., - 'hb': 2., - 'htrou': 45., - 'pf': 1.7, - 'j': 2} -dico_bride_GG = {'nbgouj': 36, - 'dint': 381., - 'dex1': 406.4, - 'dex2': 445., - 'dex3': 460., - 'dtrou': 495., - 'dext': 545., - 'dt': 22., - 'drd': 36, - 'dg': 20., - 'dec': 30., - 'rcong': 5., - 'he': 20., - 'e': 3., - 'hc1': 129., - 'hcg1': 129./2., - 'hb': 3., - 'htrou': 63., - 'pf': 2.2, - 'j': 2} -dico_bride_H = {'nbgouj': 12, - 'dint': 108.2, - 'dex1': 114.3, - 'dex2': 146., - 'dex3': 157., - 'dtrou': 190., - 'dext': 225., - 'dt': 18., - 'drd': 30., - 'dg': 16., - 'dec': 24., - 'rcong': 5., - 'he': 16., - 'e': 3., - 'hc1': 89., - 'hcg1': 89./2., - 'hb': 2., - 'htrou': 33., - 'pf': 1.7, - 'j': 2} -dico_bride_H1 = {'nbgouj': 12, - 'dint': 102.6, - 'dex1': 114.3, - 'dex2': 146., - 'dex3': 157., - 'dtrou': 190., - 'dext': 225., - 'dt': 18., - 'drd': 30., - 'dg': 16., - 'dec': 24., - 'rcong': 5., - 'he': 16., - 'e': 3., - 'hc1': 89., - 'hcg1': 89./2., - 'hb': 2., - 'htrou': 33., - 'pf': 1.7, - 'j': 2} -dico_bride_I = {'nbgouj': 18, - 'dint': 92.1, - 'dex1': 114.3, - 'dex2': 146., - 'dex3': 160., - 'dtrou': 200., - 'dext': 255., - 'dt': 20., - 'drd': 32., - 'dg': 18., - 'dec': 27., - 'rcong': 5., - 'he': 18., - 'e': 3., - 'hc1': 99., - 'hcg1': 99./2., - 'hb': 2., - 'htrou': 43., - 'pf': 2.2, - 'j': 2} -dico_bride_J = {'nbgouj': 18, - 'dint': 87.34, - 'dex1': 114.3, - 'dex2': 146., - 'dex3': 160., - 'dtrou': 200., - 'dext': 255., - 'dt': 20., - 'drd': 32., - 'dg': 18., - 'dec': 27., - 'rcong': 5., - 'he': 18., - 'e': 3., - 'hc1': 111., - 'hcg1': 111./2., - 'hb': 2., - 'htrou': 55., - 'pf': 2.2, - 'j': 2} -dico_bride_J1 = {'nbgouj': 18, - 'dint': 87.3, - 'dex1': 114.3, - 'dex2': 146., - 'dex3': 160., - 'dtrou': 200., - 'dext': 255., - 'dt': 22., - 'drd': 36., - 'dg': 20., - 'dec': 30., - 'rcong': 5., - 'he': 20., - 'e': 3., - 'hc1': 111., - 'hcg1': 111./2., - 'hb': 2., - 'htrou': 55., - 'pf': 2.2, - 'j': 2} -dico_bride_K = {'nbgouj': 8, - 'dint': 161.5, - 'dex1': 168.3, - 'dex2': 192., - 'dex3': 210., - 'dtrou': 235., - 'dext': 280., - 'dt': 18., - 'drd': 30., - 'dg': 16., - 'dec': 24., - 'rcong': 5., - 'he': 16., - 'e': 3., - 'hc1': 84., - 'hcg1': 84./2., - 'hb': 2., - 'htrou': 28., - 'pf': 1.7, - 'j': 2} -dico_bride_L = {'nbgouj': 16, - 'dint': 154.8, - 'dex1': 168.3, - 'dex2': 206., - 'dex3': 220., - 'dtrou': 255., - 'dext': 317., - 'dt': 18., - 'drd': 30., - 'dg': 16., - 'dec': 24., - 'rcong': 5., - 'he': 16., - 'e': 3., - 'hc1': 96., - 'hcg1': 96./2., - 'hb': 2., - 'htrou': 40., - 'pf': 1.7, - 'j': 2} -dico_bride_L1 = {'nbgouj': 16, - 'dint': 154.8, - 'dex1': 168.3, - 'dex2': 206., - 'dex3': 220., - 'dtrou': 255., - 'dext': 317., - 'dt': 20., - 'drd': 32., - 'dg': 18., - 'dec': 27., - 'rcong': 5., - 'he': 18., - 'e': 3., - 'hc1': 96., - 'hcg1': 96./2., - 'hb': 2., - 'htrou': 40., - 'pf': 2.2, - 'j': 2} -dico_bride_M = {'nbgouj': 16, - 'dint': 139.7, - 'dex1': 168.3, - 'dex2': 206., - 'dex3': 220., - 'dtrou': 250., - 'dext': 290., - 'dt': 24., - 'drd': 40., - 'dg': 22., - 'dec': 32., - 'rcong': 5., - 'he': 22., - 'e': 3., - 'hc1': 135., - 'hcg1': 135./2., - 'hb': 3., - 'htrou': 62., - 'pf': 2.2, - 'j': 2} -dico_bride_N = {'nbgouj': 12, - 'dint': 131.9, - 'dex1': 168.3, - 'dex2': 220., - 'dex3': 240., - 'dtrou': 290., - 'dext': 365., - 'dt': 30., - 'drd': 48., - 'dg': 27., - 'dec': 41., - 'rcong': 5., - 'he': 27., - 'e': 4., - 'hc1': 148., - 'hcg1': 148./2., - 'hb': 3., - 'htrou': 75., - 'pf': 2.6, - 'j': 2} -dico_bride_O = {'nbgouj': 12, - 'dint': 211.58, - 'dex1': 219.1, - 'dex2': 248., - 'dex3': 260., - 'dtrou': 292., - 'dext': 335., - 'dt': 20., - 'drd': 32., - 'dg': 18., - 'dec': 27., - 'rcong': 5., - 'he': 18., - 'e': 3., - 'hc1': 87., - 'hcg1': 87./2., - 'hb': 3., - 'htrou': 30., - 'pf': 2.2, - 'j': 2} -dico_bride_P = {'nbgouj': 16, - 'dint': 202.74, - 'dex1': 219.1, - 'dex2': 248., - 'dex3': 260., - 'dtrou': 292., - 'dext': 335., - 'dt': 20., - 'drd': 32, - 'dg': 18., - 'dec': 27., - 'rcong': 5., - 'he': 18., - 'e': 3., - 'hc1': 99., - 'hcg1': 99./2., - 'hb': 3., - 'htrou': 42., - 'pf': 2.2, - 'j': 2} -dico_bride_S = {'nbgouj': 16, - 'dint': 264.62, - 'dex1': 273., - 'dex2': 305., - 'dex3': 315., - 'dtrou': 350., - 'dext': 390., - 'dt': 18., - 'drd': 30., - 'dg': 16., - 'dec': 24., - 'rcong': 5., - 'he': 16., - 'e': 3., - 'hc1': 89., - 'hcg1': 89./2., - 'hb': 3., - 'htrou': 32., - 'pf': 1.7, - 'j': 2} -dico_bride_T = {'nbgouj': 16, - 'dint': 254.56, - 'dex1': 273., - 'dex2': 320., - 'dex3': 340., - 'dtrou': 385., - 'dext': 444., - 'dt': 27., - 'drd': 45., - 'dg': 24., - 'dec': 36., - 'rcong': 5., - 'he': 24., - 'e': 4., - 'hc1': 128., - 'hcg1': 128./2., - 'hb': 3., - 'htrou': 55., - 'pf': 2.6, - 'j': 2} -dico_bride_W = {'nbgouj': 28, - 'dint': 314.76, - 'dex1': 323.9, - 'dex2': 360., - 'dex3': 385., - 'dtrou': 415., - 'dext': 460., - 'dt': 18., - 'drd': 30., - 'dg': 16., - 'dec': 24., - 'rcong': 5., - 'he': 16., - 'e': 3., - 'hc1': 96., - 'hcg1': 96./2., - 'hb': 3., - 'htrou': 37., - 'pf': 1.7, - 'j': 2} - - -# dictionnaire pour faire le lien entre l'option de bride et les valeurs normalisées -dico_bride_std = {'AA':dico_bride_AA, - 'A':dico_bride_A, - 'B':dico_bride_B, - 'B1':dico_bride_B1, - 'C':dico_bride_C, - 'D':dico_bride_D, - 'D1':dico_bride_D1, - 'E':dico_bride_E, - 'F':dico_bride_F, - 'FF':dico_bride_FF, - 'G':dico_bride_G, - 'GG':dico_bride_GG, - 'H':dico_bride_H, - 'H1':dico_bride_H1, - 'I':dico_bride_I, - 'J':dico_bride_J, - 'J1':dico_bride_J1, - 'K':dico_bride_K, - 'L':dico_bride_L, - 'L1':dico_bride_L1, - 'M':dico_bride_M, - 'N':dico_bride_N, - 'O':dico_bride_O, - 'P':dico_bride_P, - 'S':dico_bride_S, - 'T':dico_bride_T, - 'W':dico_bride_W} diff --git a/Aster/Cata/cataSTA81/Macro/macr_cabri_mail_ops.py b/Aster/Cata/cataSTA81/Macro/macr_cabri_mail_ops.py deleted file mode 100644 index 92154545..00000000 --- a/Aster/Cata/cataSTA81/Macro/macr_cabri_mail_ops.py +++ /dev/null @@ -1,461 +0,0 @@ -#@ MODIF macr_cabri_mail_ops Macro DATE 07/02/2005 AUTEUR MABBAS M.ABBAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -import os - -def macr_cabri_mail_ops(self,EXEC_MAILLAGE,RAFF_MAILLAGE,VERI_MAIL,GEOM_BRID, - IMPRESSION,**args): - """ - Ecriture de la macro MACR_CABRI_MAIL - """ - import types - from Accas import _F - - ier=0 - - # On importe les definitions des commandes a utiliser dans la macro - # Le nom de la variable doit etre obligatoirement le nom de la commande - EXEC_LOGICIEL = self.get_cmd('EXEC_LOGICIEL') - LIRE_MAILLAGE = self.get_cmd('LIRE_MAILLAGE') - PRE_GIBI = self.get_cmd('PRE_GIBI') - IMPR_RESU = self.get_cmd('IMPR_RESU') - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # Le concept sortant (de type mail) est nommé 'nomres' dans - # le contexte de la macro - - self.DeclareOut('nomres',self.sd) - - # Chemin de Gibi - import aster - loc_gibi=aster.repout() - gibi2000=loc_gibi+'gibi' - - # Unité pour le fichier maillage produit (format GIBI) - unite_mgib = EXEC_MAILLAGE['UNITE_MGIB'] - # Unité pour le fichier de commandes GIBI - unite_datg = EXEC_MAILLAGE['UNITE_DATG'] - # Niveau gibi - niveau_gibi = EXEC_MAILLAGE['NIVE_GIBI'] - - # Verif mail - ver_apla = VERI_MAIL['APLAT'] - ver_veri = VERI_MAIL['VERIF'] - - # Impression - if IMPRESSION['UNITE']!=None: - imp_unit = IMPRESSION['UNITE'] - imp_unitF = 1 - else: - imp_unitF = 0 - if IMPRESSION['FORMAT']!=None: - imp_form = IMPRESSION['FORMAT'] - imp_formF = 1 - else: - imp_formF = 0 -# if IMPRESSION['FICHIER']!=None: -# imp_fich = IMPRESSION['FICHIER'] -# imp_fichF = 1 -# else: -# imp_fichF = 0 - - # Maillage - nrad = RAFF_MAILLAGE['NB_RADIAL'] - ncir = RAFF_MAILLAGE['NB_CIRCONF'] - nver = RAFF_MAILLAGE['NB_VERTICAL'] - nsect = RAFF_MAILLAGE['NB_ALESAGE'] - temps = 5. - - maillage = {'nrad': nrad, - 'ncir': ncir, - 'nver': nver, - 'nsect': nsect, - 'temps' : temps,} - - # Création du fichier datg - - if GEOM_BRID['NORME'] == 'OUI': - # Bride standard - type_bride = GEOM_BRID['TYPE'] - ### Ecriture du fichier GIBI principal (dgib) - Bride STANDARD - write_file_dgib_STD(unite_mgib,unite_datg,maillage,type_bride) - else: - # Bride quelconque - geo_bride_qqe = {'nbgouj': GEOM_BRID['GOUJ_N_GOUJON'], - 'dint': GEOM_BRID['BRID_D_INT'], - 'dex1': GEOM_BRID['TUBU_D_EXT'], - 'dex2': GEOM_BRID['BRID_D_CONGE'], - 'dex3': GEOM_BRID['BRID_D_EPAUL'], - 'dtrou': GEOM_BRID['BRID_P_ALESAG'], - 'dext': GEOM_BRID['BRID_D_EXT'], - 'dt': GEOM_BRID['BRID_D_ALESAG'], - 'drd': GEOM_BRID['GOUJ_D_RONDEL'], - 'dg': GEOM_BRID['GOUJ_D_GOUJON'], - 'dec': GEOM_BRID['GOUJ_D_ECROU'], - 'rcong': GEOM_BRID['BRID_R_CONGE'], - 'he': GEOM_BRID['GOUJ_E_ECROU'], - 'e': GEOM_BRID['GOUJ_E_RONDEL'], - 'hc1': GEOM_BRID['BRID_H'], - 'hcg1': GEOM_BRID['TUBU_H'], - 'hb': GEOM_BRID['BRID_H_EPAUL'], - 'htrou': GEOM_BRID['BRID_H_ALESAG'], - 'pf': GEOM_BRID['GOUJ_E_FILET'], - 'j': GEOM_BRID['ETAN_E_JOINT']} - ### Ecriture du fichier GIBI principal (dgib) - Bride QUELCONQUE - write_file_dgib_QQE(unite_mgib,unite_datg,maillage,geo_bride_qqe) - - fichier_datg = 'fort.'+str(unite_datg) - fichier_mgib = 'fort.'+str(unite_mgib) - - # Lancement de GIBI - EXEC_LOGICIEL( - LOGICIEL=gibi2000, - ARGUMENT=(_F(NOM_PARA=fichier_datg), - _F(NOM_PARA=fichier_mgib), - ) - ) - # Lecture du maillage GIBI dans ASTER - PRE_GIBI( - UNITE_GIBI = unite_mgib, - ) - - nomres = LIRE_MAILLAGE(VERI_MAIL=_F(APLAT = ver_apla, - VERIF = ver_veri ),) - -# if (imp_fichF == 1): -# print imp_fich - if (imp_formF == 1): - print imp_form - if (imp_unitF == 1): - print imp_unit - # Impression du fichier maillage - if (imp_formF == 1): - if (imp_form == 'CASTEM'): - imp_ngib = IMPRESSION['NIVE_GIBI'] - IMPR_RESU( RESU = _F(MAILLAGE=nomres, ), - FORMAT = 'CASTEM', NIVE_GIBI = imp_ngib ) - if (imp_form == 'IDEAS'): - imp_nver = IMPRESSION['VERSION'] - IMPR_RESU(RESU = _F(MAILLAGE=nomres,), - FORMAT = 'IDEAS', VERSION = imp_nver ) - - return ier - - -############################################################################################## -# Liste des fonctions -############################################################################################## - -############# -## EXTERNES (appelables depuis l'extérieur) -############# - -### Ecriture du fichier GIBI principal (dgib) - Bride STANDARD -# null = write_file_dgib_STD(unite_mgib,unite_datg,msh_bride,geo_bride) - -### Ecriture du fichier GIBI principal (dgib) - Bride QUELCONQUE -# null = write_file_dgib_QQE(unite_mgib,unite_datg,msh_bride,geo_bride) - -### Imprime tout le catalogue des brides standards disponibles dans un fichier texte -# null = print_bride_std(nom_fichier) - -### Catalogue complet des brides standards disponibles -# txt = bride_std() - -############# -## INTERNES (réservées au travail interne) -############# - -### Génération du nom du fichier pour le fichier maillage résultant (format GIBI) -# NomFichier(txt) = name_file_mgib(unite_mgib): - -### Génération du nom du fichier pour le fichier générant le maillage (commandes GIBI) -# NomFichier(txt) = name_file_datg(unite_datg): - -### Récupère un fichier texte DATG -# Txt = text_datg(fichier_datg): - -### Génération du texte pour les variables -# Txt = para_text(dico_var,var): - - - -#============================================================================================= -# Importation des modules Python -#============================================================================================= - -from Macro.macr_cabri_mail_dat import dico_var_geo,dico_var_msh,dico_bride_std - -#============================================================================================= -# Fonctions principales -#============================================================================================= -# Ecriture du fichier GIBI principal (dgib) - Bride STANDARD -def write_file_dgib_STD(unite_mgib,unite_datg,msh_bride,geo_bride): - - # Nom du fichier maillage produit par GIBI - nomFichierMGIB = name_file_mgib(unite_mgib) - - # Nom du fichier de commandes pour GIBI - nomFichierDATG = name_file_datg(unite_datg) - - # Ouverture du fichier d'entrée de commandes - fdgib=open(nomFichierDATG,'w') - - # En-tete - text = "**************************************************************\n" - text = text + "* Fichier GIBI pour le maillage d'une bride \n" - text = text + "**************************************************************\n" - text = text + "\n" - text = text + "* Ce fichier a été généré automatiquement par la macro ASTER MACR_CABRI_MAIL \n" - text = text + "* Ne pas modifier\n" - text = text + "\n" - text = text + "**************************************************************\n" - text = text + "* Type bride: Bride standard \n" - text = text + "**************************************************************\n" - text = text + "titre '"+"Bride standard"+"';\n" - text = text + "** Type bride standard: "+geo_bride+"\n" - - text = text + "\n" - text = text + "nomfich = CHAINE \n" - if len(nomFichierMGIB)>72: - raise Exception, 'Nom de fichier trop long (limité à 72 caractères ' \ - 'pour GIBI) :\n',nomFichierMGIB - elif len(nomFichierMGIB)<=69: - text = text + "'"+nomFichierMGIB+"';\n" - else: - text = text + "'"+nomFichierMGIB[:69]+"'\n" \ - + "'"+nomFichierMGIB[69:]+"';\n" - text = text + "opti dime 3 elem cub8 SAUV FORM nomfich;\n" - text = text + "dens 1;\n" - text = text + "\n" - fdgib.write(text) - - # Procédures internes supplémentaires - text = "**************************************************************\n" - text = text + "* Procédures supplémentaires \n" - text = text + "**************************************************************\n" - text = text + text_datg_pro() - fdgib.write(text) - - # Début de procédure de création du maillage - text = "**************************************************************\n" - text = text + "**************************************************************\n" - text = text + "********* Début de procédure de création du maillage *********\n" - text = text + "**************************************************************\n" - text = text + "**************************************************************\n" - text = text + "\n debproc constru;\n" - fdgib.write(text) - - # Paramètres géométriques - car_bride = dico_bride_std[geo_bride] - text = "**************************************************************\n" - text = text + "* Paramètres géométriques \n" - text = text + "**************************************************************\n" - text = text + para_text(dico_var_geo,car_bride) - fdgib.write(text) - - # Paramètres du maillage - text = "**************************************************************\n" - text = text + "* Paramètres physiques \n" - text = text + "**************************************************************\n" - text = text + para_text(dico_var_msh,msh_bride) - fdgib.write(text) - - # Algorithme du maillage - text = "**************************************************************\n" - text = text + "* Algorithme de maillage \n" - text = text + "**************************************************************\n" - text = text + text_datg_std() - fdgib.write(text) - - # Fermeture du fichier maillage - fdgib.close() - - -# Ecriture du fichier GIBI principal (dgib) - Bride QUELCONQUE -def write_file_dgib_QQE(unite_mgib,unite_datg,msh_bride,geo_bride): - - # Nom du fichier maillage produit par GIBI - nomFichierMGIB = name_file_mgib(unite_mgib) - - # Nom du fichier de commandes pour GIBI - nomFichierDATG = name_file_datg(unite_datg) - - # Ouverture du fichier d'entree de commandes - fdgib=open(nomFichierDATG,'w') - - # En-tete - text = "**************************************************************\n" - text = text + "* Fichier GIBI pour le maillage d'une bride \n" - text = text + "**************************************************************\n" - text = text + "\n" - text = text + "* Ce fichier a été généré automatiquement par la macro ASTER MACR_CABRI_MAIL \n" - text = text + "* Ne pas modifier\n" - text = text + "\n" - text = text + "**************************************************************\n" - text = text + "* Type bride: Bride quelconque\n" - text = text + "**************************************************************\n" - text = text + "titre '"+"Bride Quelconque"+"';\n" - text = text + "\n" - text = text + "nomfich = CHAINE \n" - if len(nomFichierMGIB)>72: - raise Exception, 'Nom de fichier trop long (limité à 72 caractères ' \ - 'pour GIBI) :\n',nomFichierMGIB - elif len(nomFichierMGIB)<=69: - text = text + "'"+nomFichierMGIB+"';\n" - else: - text = text + "'"+nomFichierMGIB[:69]+"'\n" \ - + "'"+nomFichierMGIB[69:]+"';\n" - text = text + "opti dime 3 elem cub8 SAUV FORM nomfich;\n" - text = text + "dens 1;\n" - text = text + "\n" - fdgib.write(text) - - # Procédures internes supplémentaires - text = "**************************************************************\n" - text = text + "* Procédures supplémentaires \n" - text = text + "**************************************************************\n" - text = text + text_datg_pro() - fdgib.write(text) - - # Début de procédure de création du maillage - text = "**************************************************************\n" - text = text + "**************************************************************\n" - text = text + "********* Début de procédure de création du maillage *********\n" - text = text + "**************************************************************\n" - text = text + "**************************************************************\n" - text = text + "\n debproc constru;\n" - fdgib.write(text) - - # Paramètres géométriques - text = "**************************************************************\n" - text = text + "* Paramètres géométriques \n" - text = text + "**************************************************************\n" - text = text + para_text(dico_var_geo,geo_bride) - fdgib.write(text) - - # Paramètres du maillage - text = "**************************************************************\n" - text = text + "* Paramètres physiques \n" - text = text + "**************************************************************\n" - text = text + para_text(dico_var_msh,msh_bride) - fdgib.write(text) - - # Algorithme du maillage - text = "**************************************************************\n" - text = text + "* Algorithme de maillage \n" - text = text + "**************************************************************\n" - text = text + text_datg_qqe() - fdgib.write(text) - - # Fermeture du fichier maillage - fdgib.close() - -# Génération du nom du fichier pour le fichier maillage résultant (format GIBI) -def name_file_mgib(unite_mgib): - cur_dir = os.getcwd() - nomFichier = cur_dir+'/fort.'+str(unite_mgib) - return nomFichier - - -# Génération du nom du fichier pour le fichier générant le maillage (commandes GIBI) -def name_file_datg(unite_datg): - cur_dir = os.getcwd() - nomFichier = cur_dir+'/fort.'+str(unite_datg) - return nomFichier - -# Récupère un fichier texte DATG: texte GIBI pour procédures -def text_datg_pro(): - import aster - loc_datg = aster.repdex() - datg_bridePro = loc_datg+"macr_cabri_mail_proc.datg" - fproc=open(datg_bridePro,'r') - procText = fproc.read() - fproc.close() - - return procText - -# Récupère un fichier texte DATG: texte GIBI pour bride quelconque -def text_datg_qqe(): - import aster - loc_datg = aster.repdex() - datg_brideQqe = loc_datg+"macr_cabri_mail_qqe.datg" - fproc=open(datg_brideQqe,'r') - procText = fproc.read() - fproc.close() - - return procText - -# Récupère un fichier texte DATG: texte GIBI pour bride standard -def text_datg_std(): - import aster - loc_datg = aster.repdex() - datg_brideStd = loc_datg+"macr_cabri_mail_std.datg" - fproc=open(datg_brideStd,'r') - procText = fproc.read() - fproc.close() - - return procText - -# Génération du texte pour les variables -def para_text(dico_var,var): - text = '\n' - for nom_var in var.keys(): - text = text+"* "+dico_var[nom_var]+"\n" - text = text+nom_var+" = "+`var[nom_var]`+";\n" - return text - -#============================================================================================= -# Accès au catalogue des brides standards -# (les brides standards sont décrites dans le fichier Data_Brides.py) -#============================================================================================= - - - -# Imprime tout le catalogue des brides standards disponibles dans un fichier texte -def print_bride_std(nom_fichier): - text = bride_std() - # Ouverture du fichier - finfo=open(nom_fichier,'w') - # Ecriture des infos - finfo.write(text) - # Fermeture du fichier - finfo.close() - -# Catalogue complet des brides standards disponibles -def bride_std(): - # Ligne d'info - text = "Liste des brides standards avec leurs dimensions\n" - # Première ligne - text = text+"\t" - for nom_variable in dico_var_geo.keys(): - text = text + nom_variable+"\t\t" - text = text + "\n" - # Lignes suivantes - for nom_bride in dico_bride_std.keys(): - bride = dico_bride_std[nom_bride] - text = text + nom_bride + '\t' - for nom_var in dico_var_geo.keys(): - chaine = "%f" % (bride[nom_var]) - text = text+chaine+"\t" - text = text + "\n" - return text diff --git a/Aster/Cata/cataSTA81/Macro/macr_cara_poutre_ops.py b/Aster/Cata/cataSTA81/Macro/macr_cara_poutre_ops.py deleted file mode 100644 index 73323770..00000000 --- a/Aster/Cata/cataSTA81/Macro/macr_cara_poutre_ops.py +++ /dev/null @@ -1,810 +0,0 @@ -#@ MODIF macr_cara_poutre_ops Macro DATE 05/09/2005 AUTEUR DURAND C.DURAND -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE JMBHH01 J.M.PROIX - -def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD, - GROUP_MA,ORIG_INER,**args): - """ - Ecriture de la macro MACR_CARA_POUTRE - """ - import types - from Accas import _F - from Utilitai.Utmess import UTMESS - ier=0 - # On importe les definitions des commandes a utiliser dans la macro - # Le nom de la variable doit etre obligatoirement le nom de la commande - LIRE_MAILLAGE =self.get_cmd('LIRE_MAILLAGE') - DEFI_GROUP =self.get_cmd('DEFI_GROUP') - CREA_MAILLAGE =self.get_cmd('CREA_MAILLAGE') - AFFE_MODELE =self.get_cmd('AFFE_MODELE') - DEFI_MATERIAU =self.get_cmd('DEFI_MATERIAU') - AFFE_MATERIAU =self.get_cmd('AFFE_MATERIAU') - DEFI_FONCTION =self.get_cmd('DEFI_FONCTION') - DEFI_CONSTANTE =self.get_cmd('DEFI_CONSTANTE') - AFFE_CHAR_THER =self.get_cmd('AFFE_CHAR_THER') - AFFE_CHAR_THER_F=self.get_cmd('AFFE_CHAR_THER_F') - THER_LINEAIRE =self.get_cmd('THER_LINEAIRE') - CALC_VECT_ELEM =self.get_cmd('CALC_VECT_ELEM') - CALC_MATR_ELEM =self.get_cmd('CALC_MATR_ELEM') - NUME_DDL =self.get_cmd('NUME_DDL') - ASSE_VECTEUR =self.get_cmd('ASSE_VECTEUR') - POST_ELEM =self.get_cmd('POST_ELEM') - CALC_ELEM =self.get_cmd('CALC_ELEM') - INTE_MAIL_2D =self.get_cmd('INTE_MAIL_2D') - POST_RELEVE_T =self.get_cmd('POST_RELEVE_T') - IMPR_TABLE =self.get_cmd('IMPR_TABLE') - IMPR_CO =self.get_cmd('IMPR_CO') - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # Le concept sortant (de type 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: -# UTMESS('F', "MACR_CARA_POUTRE", "Avec GROUP_MA, il faut obligatoirement preciser LIAISON, LONGUEUR ET MATERIAU") -# - __nomlma=LIRE_MAILLAGE(UNITE=UNITE_MAILLAGE,) - - __nomamo=AFFE_MODELE(MAILLAGE=__nomlma, - AFFE=_F(TOUT='OUI', - PHENOMENE='MECANIQUE', - MODELISATION='D_PLAN',), ) - - __nomdma=DEFI_MATERIAU(ELAS=_F(E=1.0,NU=0.,RHO=1.0),) - - - __nomama=AFFE_MATERIAU(MAILLAGE=__nomlma, - AFFE=_F(TOUT='OUI', - MATER=__nomdma,), ) - -# --- CALCUL DES CARACTERISTIQUES GEOMETRIQUES DE LA SECTION : -# ------------------------------------------------------ - - motsimps={} - if GROUP_MA : motsimps['GROUP_MA'] = GROUP_MA - if SYME_X : motsimps['SYME_X'] = SYME_X - if SYME_Y : motsimps['SYME_Y'] = SYME_Y - motsimps['ORIG_INER'] = ORIG_INER - mfact=_F(TOUT='OUI',**motsimps) - 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 = -# --- = DU RAYON DE TORSION SUR TOUT LE MAILLAGE -# --- = ON CREE UN MODELE PLAN 2D THERMIQUE REPRESENTANT LA SECTION = -# --- = DE LA POUTRE CAR ON A A RESOUDRE DES E.D.P. AVEC DES LAPLACIENS= -# ================================================================== - - if GROUP_MA_BORD and not GROUP_MA: -# --- TRANSFORMATION DES GROUP_MA EN GROUP_NO SUR-LESQUELS -# --- ON POURRA APPLIQUER DES CONDITIONS DE TEMPERATURE IMPOSEE : -# --------------------------------------------------------- - motscles={} - if type(GROUP_MA_BORD)==types.StringType: - motscles['CREA_GROUP_NO']=_F(GROUP_MA=GROUP_MA_BORD,) - else: - motscles['CREA_GROUP_NO']=[] - for grma in GROUP_MA_BORD: - motscles['CREA_GROUP_NO'].append(_F(GROUP_MA=grma,)) - __nomlma=DEFI_GROUP(reuse=__nomlma, - MAILLAGE=__nomlma, - **motscles) - - - -# --- CREATION D UN MAILLAGE IDENTIQUE AU PREMIER A CECI PRES -# --- QUE LES COORDONNEES SONT EXPRIMEES DANS LE REPERE PRINCIPAL -# --- D INERTIE DONT L ORIGINE EST LE CENTRE DE GRAVITE DE LA SECTION : -# --------------------------------------------------------------- - - __nomapi=CREA_MAILLAGE(MAILLAGE=__nomlma, - REPERE=_F(TABLE=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 args.has_key('GROUP_MA_INTE'): - if args['GROUP_MA_INTE'] != None : - motscles['LIAISON_UNIF']=_F(GROUP_MA=args['GROUP_MA_INTE'],DDL='TEMP'), - __chart1=AFFE_CHAR_THER(MODELE=__nomoth, - TEMP_IMPO =_F(GROUP_NO=GROUP_MA_BORD, - TEMP=0. ), - SOURCE =_F(TOUT='OUI', - SOUR=2.0), - **motscles ) - -# --- POUR CHAQUE TROU DE LA SECTION : -# --- .ON A IMPOSE QUE PHI EST CONSTANT SUR LE CONTOUR INTERIEUR -# --- EN FAISANT LE LIAISON_UNIF DANS LE AFFE_CHAR_THER PRECEDENT -# --- .ON IMPOSE EN PLUS D(PHI)/DN = 2*AIRE(TROU)/L(TROU) -# --- OU D/DN DESIGNE LA DERIVEE PAR RAPPORT A LA -# --- NORMALE ET L DESIGNE LA LONGUEUR DU BORD DU TROU : -# ------------------------------------------------------- - - if args.has_key('GROUP_MA_INTE'): - lgmaint=args['GROUP_MA_INTE'] - if lgmaint != None : - __tbaire=POST_ELEM(MODELE=__nomoth, - AIRE_INTERNE=_F(GROUP_MA_BORD=args['GROUP_MA_INTE'],), ) - - motscles={} - motscles['FLUX_REP']=[] - - if type(lgmaint)==types.StringType: - motscles['FLUX_REP']=_F(GROUP_MA=args['GROUP_MA_INTE'],CARA_TORSION=__tbaire) - else: - motscles['FLUX_REP']=[] - for grma in lgmaint: - motscles['FLUX_REP'].append(_F(GROUP_MA=grma,CARA_TORSION=__tbaire),) - __chart2=AFFE_CHAR_THER(MODELE=__nomoth,**motscles) - -# --- RESOLUTION DE LAPLACIEN(PHI) = -2 -# --- AVEC PHI = 0 SUR LE CONTOUR : -# ---------------------------------------- - - motscles={} - motscles['EXCIT']=[_F(CHARGE=__chart1,),] - if args.has_key('GROUP_MA_INTE'): - if lgmaint != None : - motscles['EXCIT'].append(_F(CHARGE=__chart2,)) - __tempe1=THER_LINEAIRE(MODELE=__nomoth, - CHAM_MATER=__chmath, - SOLVEUR=_F(STOP_SINGULIER='NON',), - **motscles ) - -# -# ---------------------------------------------- -# --- - CALCUL DU CENTRE DE TORSION/CISAILLEMENT - -# --- - ET DES COEFFICIENTS DE CISAILLEMENT : - -# ---------------------------------------------- -# -# --- POUR LE CALCUL DES CONSTANTES DE CISAILLEMENT, ON VA DEFINIR -# --- UN PREMIER TERME SOURCE, SECOND MEMBRE DE L EQUATION DE LAPLACE -# --- PAR UNE FONCTION EGALE A Y : -# -------------------------- - - __fnsec1=DEFI_FONCTION(NOM_PARA='X', - VALE=(0.,0.,10.,10.), - PROL_DROITE='LINEAIRE', - PROL_GAUCHE='LINEAIRE', - ) - - __fnsec0=DEFI_CONSTANTE(VALE=0.,) - -# --- LE TERME SOURCE CONSTITUANT LE SECOND MEMBRE DE L EQUATION -# --- DE LAPLACE EST PRIS EGAL A Y DANS TOUTE LA SECTION : -# -------------------------------------------------- - - - motscles={} - if args.has_key('NOEUD'): - motscles['TEMP_IMPO']=(_F(NOEUD=args['NOEUD'],TEMP=__fnsec0)) - __chart2=AFFE_CHAR_THER_F(MODELE=__nomoth, - SOURCE=_F(TOUT='OUI', - SOUR=__fnsec1,), - **motscles ) - -# --- RESOLUTION DE LAPLACIEN(PHI) = -Y -# --- AVEC D(PHI)/D(N) = 0 SUR LE CONTOUR : -# ------------------------------------------------ - - __tempe2=THER_LINEAIRE(MODELE=__nomoth, - CHAM_MATER=__chmath, - EXCIT=_F(CHARGE=__chart2,), - SOLVEUR=_F(STOP_SINGULIER='NON',), - ) - -# --- POUR LE CALCUL DES CONSTANTES DE CISAILLEMENT, ON VA DEFINIR -# --- UN PREMIER TERME SOURCE, SECOND MEMBRE DE L EQUATION DE LAPLACE -# --- PAR UNE FONCTION EGALE A Z : -# -------------------------- - - __fnsec2=DEFI_FONCTION(NOM_PARA='Y', - VALE=(0.,0.,10.,10.), - PROL_DROITE='LINEAIRE', - PROL_GAUCHE='LINEAIRE', - ) - -# --- LE TERME SOURCE CONSTITUANT LE SECOND MEMBRE DE L EQUATION -# --- DE LAPLACE EST PRIS EGAL A Z DANS TOUTE LA SECTION : -# -------------------------------------------------- - - motscles={} - if args.has_key('NOEUD'): - motscles['TEMP_IMPO']=_F(NOEUD=args['NOEUD'],TEMP=__fnsec0) - __chart3=AFFE_CHAR_THER_F(MODELE=__nomoth, - SOURCE=_F(TOUT='OUI', - SOUR=__fnsec2,), - **motscles) - -# --- RESOLUTION DE LAPLACIEN(PHI) = -Z -# --- AVEC D(PHI)/D(N) = 0 SUR LE CONTOUR : -# ------------------------------------------------ - - __tempe3=THER_LINEAIRE(MODELE=__nomoth, - CHAM_MATER=__chmath, - EXCIT=_F(CHARGE=__chart3,), - SOLVEUR=_F(STOP_SINGULIER='NON',), - ) - -# --- CALCUL DU RAYON DE TORSION : -# -------------------------- - -# CALCUL DU RAYON DE TORSION EXTERNE : rtext - - __tempe1=CALC_ELEM(reuse=__tempe1, - RESULTAT=__tempe1, - MODELE=__nomoth, - CHAM_MATER=__chmath, - TOUT_ORDRE='OUI', - OPTION='FLUX_ELNO_TEMP', - ) - - __chem=INTE_MAIL_2D(MAILLAGE=__nomapi, - DEFI_CHEMIN=_F(GROUP_MA=GROUP_MA_BORD), - INFO=2,) - - __flun=POST_RELEVE_T(ACTION=_F(INTITULE='FLUX_NORM', - CHEMIN=__chem, - RESULTAT=__tempe1, - NOM_CHAM='FLUX_ELNO_TEMP', - TRAC_NOR='OUI', - NOM_CMP=('FLUX','FLUY'), - OPERATION='MOYENNE')) - - __m1=abs(__flun['TRAC_NOR',3]) - __m2=abs(__flun['TRAC_NOR',4]) - __rtext=max(__m1,__m2) - - # CALCUL DU RAYON DE TORSION : rt - # rt = max ( rtext , 2*AIRE(TROU)/L(TROU) ) - - if args.has_key('GROUP_MA_INTE'): - if args['GROUP_MA_INTE'] != None : - if type(args['GROUP_MA_INTE'])==types.StringType : - l_group_ma_inte=[args['GROUP_MA_INTE'],] - else: - l_group_ma_inte=args['GROUP_MA_INTE'] - for i in range(0,len(l_group_ma_inte)): - __chem=INTE_MAIL_2D(MAILLAGE=__nomapi, - DEFI_CHEMIN=_F(GROUP_MA=l_group_ma_inte[i]), - INFO=2,) - __flun=POST_RELEVE_T(ACTION=_F(INTITULE='FLUX_NORM', - CHEMIN=__chem, - RESULTAT=__tempe1, - NOM_CHAM='FLUX_ELNO_TEMP', - TRAC_NOR='OUI', - NOM_CMP=('FLUX','FLUY'), - OPERATION='MOYENNE')) - __m1=(abs(__flun['TRAC_NOR',3])+abs(__flun['TRAC_NOR',4]))/2. - if __m1 > __rtext : - __rtext=__m1 - - __rt=__rtext - -# --- CALCUL DE LA CONSTANTE DE TORSION : -# --------------------------------- - - motscles={} - if args.has_key('GROUP_MA_INTE'): - lgmaint=args['GROUP_MA_INTE'] - if lgmaint != None : - motscles['CARA_POUTRE']=_F(CARA_GEOM=nomres, - LAPL_PHI=__tempe1, - RT=__rt, - TOUT='OUI', - OPTION='CARA_TORSION', - GROUP_MA_INTE=args['GROUP_MA_INTE'],) - else: - motscles['CARA_POUTRE']=_F(CARA_GEOM=nomres, - LAPL_PHI=__tempe1, - RT=__rt, - 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 RAYON DE TORSION SUR CHAQUE GROUPE = -# --- = 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 args.has_key('NOEUD'): - if type(args['NOEUD'])==types.StringType : - l_noeud=[args['NOEUD'],] - else: - l_noeud= args['NOEUD'] - - if len(l_group_ma)!=len(l_group_ma_bord): - UTMESS('F', "MACR_CARA_POUTRE", "GROUP_MA et GROUP_MA_BORD incoherents") - if args.has_key('NOEUD') and (len(l_group_ma)!=len(l_noeud)): - UTMESS('F', "MACR_CARA_POUTRE", "GROUP_MA et NOEUD incoherents") - - 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 DU RAYON DE TORSION : -# -------------------------- - -# CALCUL DU RAYON DE TORSION EXTERNE : rtext - - __tempe1=CALC_ELEM(reuse=__tempe1, - RESULTAT=__tempe1, - MODELE=__nomoth, - CHAM_MATER=__chmath, - TOUT_ORDRE='OUI', - OPTION='FLUX_ELNO_TEMP', - ) - - __chem=INTE_MAIL_2D(MAILLAGE=__nomapi, - DEFI_CHEMIN=_F(GROUP_MA=l_group_ma_bord[i]), - INFO=2,) - - __flun=POST_RELEVE_T(ACTION=_F(INTITULE='FLUX_NORM', - CHEMIN=__chem, - RESULTAT=__tempe1, - NOM_CHAM='FLUX_ELNO_TEMP', - TRAC_NOR='OUI', - NOM_CMP=('FLUX','FLUY'), - OPERATION='MOYENNE')) - - __m1=abs(__flun['TRAC_NOR',3]) - __m2=abs(__flun['TRAC_NOR',4]) - __rtext=max(__m1,__m2) - -# CALCUL DU RAYON DE TORSION : rt -# rt = max ( rtext , 2*AIRE(TROU)/L(TROU) ) - - if args.has_key('GROUP_MA_INTE'): - if args['GROUP_MA_INTE'] != None : - if type(args['GROUP_MA_INTE'])==types.StringType : - l_group_ma_inte=[args['GROUP_MA_INTE'],] - else: - l_group_ma_inte=args['GROUP_MA_INTE'] - for j in range(0,len(l_group_ma_inte)): - __chem=INTE_MAIL_2D(MAILLAGE=__nomapi, - DEFI_CHEMIN=_F(GROUP_MA=l_group_ma_inte[j]), - INFO=2,) - __flun=POST_RELEVE_T(ACTION=_F(INTITULE='FLUX_NORM', - CHEMIN=__chem, - RESULTAT=__tempe1, - NOM_CHAM='FLUX_ELNO_TEMP', - TRAC_NOR='OUI', - NOM_CMP=('FLUX','FLUY'), - OPERATION='MOYENNE')) - __m1=(abs(__flun['TRAC_NOR',3])+abs(__flun['TRAC_NOR',4]))/2. - if __m1 > __rtext : - __rtext=__m1 - - __rt=__rtext - -# --- CALCUL DE LA CONSTANTE DE TORSION : -# --------------------------------- - - nomres=POST_ELEM(reuse=nomres, - MODELE=__nomoth, - CHAM_MATER=__chmath, - CARA_POUTRE=_F(CARA_GEOM=nomres, - LAPL_PHI=__tempe1, - RT=__rt, - GROUP_MA=l_group_ma[i], - OPTION='CARA_TORSION' ), ) - -# --- CALCUL DES COEFFICIENTS DE CISAILLEMENT ET DES COORDONNEES DU -# --- CENTRE DE CISAILLEMENT/TORSION : -# ------------------------------ - - 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=args['LONGUEUR'], - MATERIAU=args['MATERIAU'], - LIAISON =args['LIAISON'], - OPTION='CARA_CISAILLEMENT' ), ) - IMPR_TABLE(TABLE=nomres) - - return ier diff --git a/Aster/Cata/cataSTA81/Macro/macr_ecla_pg_ops.py b/Aster/Cata/cataSTA81/Macro/macr_ecla_pg_ops.py deleted file mode 100644 index 8bfada76..00000000 --- a/Aster/Cata/cataSTA81/Macro/macr_ecla_pg_ops.py +++ /dev/null @@ -1,71 +0,0 @@ -#@ MODIF macr_ecla_pg_ops Macro DATE 09/11/2004 AUTEUR VABHHTS J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -######################################################################## -def macr_ecla_pg_ops(self,RESULTAT,MAILLAGE,RESU_INIT,MODELE_INIT, - TOUT, GROUP_MA, MAILLE, - SHRINK, TAILLE_MIN, - NOM_CHAM, TOUT_ORDRE, NUME_ORDRE, LIST_ORDRE, INST, LIST_INST, PRECISION, CRITERE, - **args): - """ - Ecriture de la macro macr_ecla_pg - """ - import os, string - from Accas import _F - from Noyau.N_utils import AsType - ier=0 - - # On importe les definitions des commandes a utiliser dans la macro - CREA_MAILLAGE =self.get_cmd('CREA_MAILLAGE') - CREA_RESU =self.get_cmd('CREA_RESU') - - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - - # Appel à CREA_MAILLAGE : - motscles={} - if TOUT : motscles['TOUT'] =TOUT - if GROUP_MA : motscles['GROUP_MA'] =GROUP_MA - if MAILLE : motscles['MAILLE'] =MAILLE - - self.DeclareOut('ma2',MAILLAGE) - ma2=CREA_MAILLAGE(ECLA_PG=_F( MODELE = MODELE_INIT, NOM_CHAM=NOM_CHAM, - SHRINK = SHRINK, TAILLE_MIN=TAILLE_MIN, **motscles )); - - - - # Appel à CREA_RESU : - typ2=AsType(RESU_INIT).__name__ - if TOUT_ORDRE : motscles['TOUT_ORDRE'] =TOUT_ORDRE - if NUME_ORDRE : motscles['NUME_ORDRE'] =NUME_ORDRE - if LIST_ORDRE : motscles['LIST_ORDRE'] =LIST_ORDRE - if LIST_INST : motscles['LIST_INST'] =LIST_INST - if INST : motscles['INST'] =INST - if TOUT_ORDRE : motscles['TOUT_ORDRE'] =TOUT_ORDRE - - self.DeclareOut('resu2',RESULTAT) - resu2=CREA_RESU( OPERATION='ECLA_PG', TYPE_RESU=string.upper(typ2), - ECLA_PG=_F( MODELE_INIT= MODELE_INIT, RESU_INIT=RESU_INIT, NOM_CHAM=NOM_CHAM, - MAILLAGE= ma2, **motscles )); - return ier -############################################################################################ - diff --git a/Aster/Cata/cataSTA81/Macro/macr_fiab_impr_ops.py b/Aster/Cata/cataSTA81/Macro/macr_fiab_impr_ops.py deleted file mode 100644 index 08ac8d10..00000000 --- a/Aster/Cata/cataSTA81/Macro/macr_fiab_impr_ops.py +++ /dev/null @@ -1,110 +0,0 @@ -#@ MODIF macr_fiab_impr_ops Macro DATE 24/01/2005 AUTEUR DURAND C.DURAND -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GNICOLAS G.NICOLAS -# -def macr_fiab_impr_ops(self, INFO, - TABLE_CIBLE, NOM_PARA_CIBLE, GRADIENTS, **args): -# -# -# 1. args est le dictionnaire des arguments -# args.keys() est la liste des mots-clés -# args.keys()[0] est la premiere valeur de cette liste -# args.keys()[1:] est la liste des valeurs suivantes dans cette liste -# args.keys(mot_cle) représente le contenu de la variable mot_cle dans la macro appelante. -# - """ Macro-commande réalisant l'impression des valeurs pour le logiciel de fiabilite. """ -# -# On charge les modules nécessaires - from Accas import _F -# -#____________________________________________________________________ -# -# 1. Préalables -#____________________________________________________________________ -# - erreur = 0 -# -# 1.1 ==> La macro compte pour 1 dans l'exécution des commandes -# - self.set_icmd(1) -# -# 1.2 ==> On importe les définitions des commandes Aster utilisées -# dans la macro -# - DEFI_FICHIER = self.get_cmd("DEFI_FICHIER") - IMPR_TABLE = self.get_cmd("IMPR_TABLE") -# -# 1.3. ==> Des constantes -# Atention : le numéro d'unité utilisé ici et celui -# utlisé dans le python d'échange lance_aster_5 -# doivent correspondre. -# - Unite_Fichier_ASTER_vers_FIABILITE = 91 - Nom_Symbolique_Fichier_ASTER_vers_FIABILITE = "ASTER_vers_FIABILITE" - FORMAT_R="1PE17.10" -#____________________________________________________________________ -# -# 2. Définition d'un fichier d'échange -#____________________________________________________________________ -# - DEFI_FICHIER ( ACTION= "ASSOCIER", -# FICHIER = Nom_Symbolique_Fichier_ASTER_vers_FIABILITE, - UNITE = Unite_Fichier_ASTER_vers_FIABILITE, - TYPE = "ASCII", - INFO = INFO ) -#____________________________________________________________________ -# -# 4. Ecriture de la valeur cible -#____________________________________________________________________ -# - IMPR_TABLE ( TABLE = TABLE_CIBLE, - NOM_PARA = NOM_PARA_CIBLE, - UNITE = Unite_Fichier_ASTER_vers_FIABILITE, - FORMAT_R = FORMAT_R, - INFO = INFO ) -#____________________________________________________________________ -# -# 5. Ecritures des gradients -#____________________________________________________________________ -# - if GRADIENTS is not None : -# - for val in GRADIENTS : -# - IMPR_TABLE ( TABLE = val["TABLE"], - SENSIBILITE = val["PARA_SENSI"], - NOM_PARA = (val["NOM_PARA"]), - UNITE = Unite_Fichier_ASTER_vers_FIABILITE, - FORMAT_R = FORMAT_R, - INFO = INFO ) -#____________________________________________________________________ -# -# 6. Libération du fichier d'échange -#____________________________________________________________________ -# - DEFI_FICHIER ( ACTION= "LIBERER", - UNITE = Unite_Fichier_ASTER_vers_FIABILITE, - INFO = INFO ) -# -#-------------------------------------------------------------------- -# 7. C'est fini ! -#-------------------------------------------------------------------- -# - return erreur diff --git a/Aster/Cata/cataSTA81/Macro/macr_fiabilite_ops.py b/Aster/Cata/cataSTA81/Macro/macr_fiabilite_ops.py deleted file mode 100644 index 62a10eba..00000000 --- a/Aster/Cata/cataSTA81/Macro/macr_fiabilite_ops.py +++ /dev/null @@ -1,324 +0,0 @@ -#@ MODIF macr_fiabilite_ops Macro DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - -# RESPONSABLE GNICOLAS G.NICOLAS -# -def macr_fiabilite_ops(self, INFO, - LOGICIEL, VERSION, - UNITE_ESCL, MESS_ASTER, - SEUIL, SEUIL_TYPE, - VARIABLE, - **args ) : -# -# args est le dictionnaire des arguments optionnels -# args.keys() est la liste des mots-clés -# args.keys()[0] est la premiere valeur de cette liste -# args.keys()[1:] est la liste des valeurs suivantes dans cette liste -# args.keys(mot_cle) représente le contenu de la variable mot_cle dans la macro appelante. -### print args -### print args.keys() -### if len (args.keys())>0 : print args.keys()[0] -# - """ Macro-commande réalisant le pilotage du logiciel de fiabilite. """ -# -# On charge les modules nécessaires - from Accas import _F - from Macro import fiabilite_mefisto - import aster - import os - import string - import sys - import Numeric -# -#____________________________________________________________________ -# -# 1. Préalables -#____________________________________________________________________ -# -# 1.1 ==> La macro compte pour 1 dans l'exécution des commandes -# - self.set_icmd(1) -# -# 1.2 ==> On importe les définitions des commandes Aster utilisées -# dans la macro -# - EXEC_LOGICIEL = self.get_cmd("EXEC_LOGICIEL") - DEFI_LIST_REEL = self.get_cmd("DEFI_LIST_REEL") -# -# 1.3 ==> Le nom du programme de fiabilite à lancer -# - repertoire_outils = aster.repout() - fiabilite = repertoire_outils + "fiabilite" -# -# 1.4 ==> Initialisations -# - erreur = 0 - erreur_partiel = [0] - Rep_Calc_ASTER = os.getcwd() - Nom_Exec_ASTER = sys.executable -# - messages_erreur = { 0 : "Tout va bien", - 1 : "Impossible de créer le répertoire de travail pour le logiciel de fiabilité.", - 2 : "Probleme d'ouverture du fichier.", - 10 : "Erreur dans le choix du logiciel de fiabilité.", - 11 : "Erreur dans la création des données pour le logiciel de fiabilité.", - 100 : "Erreur." } -# - while not erreur : -# -#____________________________________________________________________ -# -# 2. Répertoires et fichiers -#____________________________________________________________________ -# -# 2.1. ==> Création du répertoire pour l'exécution du logiciel de fiabilité -# - Nom_Rep_local = "tmp_fiabilite" - Rep_Calc_LOGICIEL_local = os.path.join(".",Nom_Rep_local) - Rep_Calc_LOGICIEL_global = os.path.join(Rep_Calc_ASTER,Nom_Rep_local) -# - try : - os.mkdir(Rep_Calc_LOGICIEL_global) - except os.error,erreur_partiel : - self.cr.warn("Code d'erreur de mkdir : " + str(erreur_partiel[0]) + " : " + erreur_partiel[1]) - self.cr.fatal("Impossible de créer le répertoire de travail pour le logiciel de fiabilité : "+Rep_Calc_LOGICIEL_global) - erreur = erreur + 1 - break -# -# 2.2. ==> On crée un fichier annexe pour transmettre des données à la procédure -# de lancement des calculs ASTER par le LOGICIEL. -# Ce fichier est créé dans le répertoire d'exécution du logiciel de fiabilité. -# On fait ainsi car les arguments passés ont du mal à transiter via l'exécutable. -# On stocke : -# 1. Le niveau d'information -# 2. L'unité logique associée au jeu de commandes déterministes -# 3. La gestion des sorties ASTER -# 4. Le nom de l'exécutable ASTER -# 5. Le type de seuil du problème (maximum ou minimum) -# - fic_Info_ASTER = os.path.join(Rep_Calc_LOGICIEL_global,"InfoExecASTER") - try : - f_execAster = open(fic_Info_ASTER, "w") - except os.error,erreur_partiel : - self.cr.warn("Fichier : "+fic_Info_ASTER) - self.cr.warn("Code d'erreur de open : " + str(erreur_partiel[0]) + " : " + erreur_partiel[1]) - erreur = 2 - break -# - f_execAster.write(str(INFO)+"\n") - f_execAster.write(str(UNITE_ESCL)+"\n") - f_execAster.write(str(MESS_ASTER)+"\n") - f_execAster.write(str(Nom_Exec_ASTER)+"\n") - f_execAster.write(str(SEUIL_TYPE)) - f_execAster.close() - fichier = open (fic_Info_ASTER,"r") -# - if INFO >= 2 : - print "\nContenu du fichier " + fic_Info_ASTER," :" - les_lignes = fichier.readlines() - fichier.close() - print les_lignes, "\n" -# -#____________________________________________________________________ -# -# 3. Les variables par defaut -#____________________________________________________________________ -# -# 3.1. ==> Dictionnaire des valeurs physiques et liées à la loi -# - valeurs_lois = { } -# - for m in VARIABLE : -# - v_moy_physique = None - v_moy_loi = None - v_min_loi = None - v_max_loi = None - sigma_loi = None -# -# 3.1.1. ==> loi uniforme : transfert des min et max -# on définit une moyennne comme étant la médiane des extremes. -# - if m["LOI"] == "UNIFORME" : - v_moy_physique = 0.5 * ( m["VALE_MIN"] + m["VALE_MAX"] ) - v_min_loi = m["VALE_MIN"] - v_max_loi = m["VALE_MAX"] -# -# 3.1.2. ==> loi normale : transfert des moyennne et écart-type. -# - elif m["LOI"] == "NORMALE" : - v_moy_loi = m["VALE_MOY"] - v_moy_physique = v_moy_loi - sigma_loi = m["ECART_TYPE"] -# -# 3.1.3. ==> loi lognormale : identité du min, conversion pour le reste -# - elif m["LOI"] == "LOGNORMALE" : - v_min_loi = m["VALE_MIN"] - if m["VALE_MOY_PHY"] is None : - v_moy_loi = m["VALE_MOY"] - sigma_loi = m["ECART_TYPE"] - aux = Numeric.exp(0.5*sigma_loi*sigma_loi+v_moy_loi) - v_moy_physique = v_min_loi + aux - else : - v_moy_physique = m["VALE_MOY_PHY"] - aux = m["ECART_TYPE_PHY"]/(m["VALE_MOY_PHY"]-m["VALE_MIN"]) - aux1 = 1. + aux*aux - aux2 = Numeric.sqrt(aux1) - v_moy_loi = Numeric.log((m["VALE_MOY_PHY"]-m["VALE_MIN"])/aux2) - aux2 = Numeric.log(aux1) - sigma_loi = Numeric.sqrt(aux2) -# -# 3.1.4. ==> loi normale tronquée : transfert des moyenne, mini/maxi et écart-type -# on définit une moyennne comme étant la médiane des extremes. -# - else : - v_moy_loi = m["VALE_MOY"] - v_min_loi = m["VALE_MIN"] - v_max_loi = m["VALE_MAX"] - sigma_loi = m["ECART_TYPE"] - v_moy_physique = 0.5 * ( m["VALE_MIN"] + m["VALE_MAX"] ) -# - d = { } - d["v_moy_physique"] = v_moy_physique - d["v_moy_loi"] = v_moy_loi - d["v_min_loi"] = v_min_loi - d["v_max_loi"] = v_max_loi - d["sigma_loi"] = sigma_loi - valeurs_lois[m] = d -# -#____________________________________________________________________ -# -# 4. Création des fichiers pour le logiciel de fiabilite -#____________________________________________________________________ -# - if ( LOGICIEL == "MEFISTO" ) : -# -# 4.1. ==> MEFISTO -# - erreur = fiabilite_mefisto.fiabilite_mefisto ( self, Rep_Calc_LOGICIEL_global, - INFO, VERSION, - SEUIL, SEUIL_TYPE, - VARIABLE, - valeurs_lois, - **args ) -# -# 4.2. ==> Erreur si autre logiciel -# - else : -# - self.cr.warn("Logiciel de fiabilité : "+LOGICIEL) - erreur = 10 -# -# 4.3. ==> Arret en cas d'erreur -# - if erreur : - break -# -#____________________________________________________________________ -# -# 5. Ecriture de la commande d"exécution du logiciel de fiabilité -# -# Remarque : dans la donnée de la version du logiciel de fiabilité, il faut remplacer -# le _ de la donnée par un ., qui -# est interdit dans la syntaxe du langage de commandes ASTER -# Remarque : il faut remplacer le N majuscule de la donnee par -# un n minuscule, qui est interdit dans la syntaxe du langage -# de commandes ASTER -#____________________________________________________________________ -# -# - VERSION=string.replace(VERSION,"_",".") - VERSION=string.replace(VERSION,"N","n") -# - EXEC_LOGICIEL ( ARGUMENT = (_F(NOM_PARA=Rep_Calc_LOGICIEL_global), # nom du repertoire - _F(NOM_PARA=LOGICIEL), # nom du logiciel de fiabilité - _F(NOM_PARA=VERSION), # version du logiciel de fiabilité - ), - LOGICIEL = fiabilite - ) -# -#-------------------------------------------------------------------- -# 6. C'est fini ! -#-------------------------------------------------------------------- -# - break -# -# 6.1. ==> Arret en cas d'erreur -# - if erreur : - if not messages_erreur.has_key(erreur) : - erreur = 100 - self.cr.fatal(messages_erreur[erreur]) -# -# 6.2. ==> Si tout va bien, on crée une liste de réels pour le retour -# A terme, il serait intéressant d'y mettre les résultats -# de l'analyse fiabiliste. Pour le moment, on se contente de -# mettre une valeur nulle qui permet de faire un test dans -# les commandes appelantes. -# - aux = [float(erreur)] -# - self.DeclareOut("nomres",self.sd) - nomres = DEFI_LIST_REEL( VALE = aux , INFO = 1 ) -# - return -# -########################## Fin de la fonction################################## -# -########################## Auto-test################################## -# -if __name__ == "__main__" : -# - import os - import sys - import tempfile -# - Rep_Calc_LOGICIEL_global = tempfile.mktemp() - os.mkdir(Rep_Calc_LOGICIEL_global) -# - classe = None - INFO = 2 - LOGICIEL = "MEFISTO" - VERSION = "V3_2" - UNITE_ESCL = 38 - MESS_ASTER = "DERNIER" - SEUIL = 1789. - SEUIL_TYPE = "MAXIMUM" - VARIABLE = [] - args = {} -# - lr8 = macr_fiabilite_ops(classe, INFO, - LOGICIEL, VERSION, - UNITE_ESCL, MESS_ASTER, - SEUIL, SEUIL_TYPE, - VARIABLE, - **args ) -### print "lr8 = ", lr8 - Liste = os.listdir(Rep_Calc_LOGICIEL_global) -# - for nomfic in Liste : - fic_total = os.path.join(Rep_Calc_LOGICIEL_global,nomfic) - os.chmod (fic_total,0755) - os.remove (fic_total) - os.rmdir (Rep_Calc_LOGICIEL_global) -# - sys.exit("blabla") diff --git a/Aster/Cata/cataSTA81/Macro/macr_lign_coupe_ops.py b/Aster/Cata/cataSTA81/Macro/macr_lign_coupe_ops.py deleted file mode 100644 index 389998c4..00000000 --- a/Aster/Cata/cataSTA81/Macro/macr_lign_coupe_ops.py +++ /dev/null @@ -1,366 +0,0 @@ -#@ MODIF macr_lign_coupe_ops Macro DATE 05/09/2005 AUTEUR DURAND C.DURAND -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - - -######################################################################## -# script PYTHON de creation d un maillage de ligne de coupe - -def crea_mail_lig_coup(dimension,lignes,groups): - - import os,sys,copy - from Utilitai.Utmess import UTMESS - -# construction du maillage au format Aster des segments de lignes de coupe - - nblig=len(lignes) - nbngr=len(groups) - - 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 - for i in range(nbngr): - for pt in groups[i][1:]: - if dimension==2: - nbno=nbno+1 - noeud=' N'+str(nbno)+' '+str(pt[0])+' '+str(pt[1])+'\n' - resu=resu+noeud - elif dimension==3: - nbno=nbno+1 - noeud=' N'+str(nbno)+' '+str(pt[0])+' '+str(pt[1])+' '+str(pt[2])+'\n' - resu=resu+noeud - resu=resu+'FINSF\n' - -# creation des mailles - nbma=0 - for i in range(nblig): - nbp_lig_coupe = lignes[i][2] - resu=resu+'SEG2\n' - for j in range(nbp_lig_coupe-1): - nbma=nbma+1 - maille=' M'+str(nbma)+' N'+str(nbma+i)+' N'+str(nbma+1+i)+'\n' - resu=resu+maille - resu=resu+'FINSF\n' - for i in range(nbngr): - resu=resu+'SEG2\n' - for pt in groups[i][1:-1]: - nbma=nbma+1 - maille=' M'+str(nbma)+' N'+str(nbma+nblig+i)+' N'+str(nbma+nblig+1+i)+'\n' - resu=resu+maille - resu=resu+'FINSF\n' - -# creation des groupes de mailles (1 par ligne de coupe) - nbma=0 - for i in range(nblig): - resu=resu+'GROUP_MA\n' - resu=resu+' LICOU'+str(i+1) - nbp_lig_coupe = lignes[i][2] - for j in range(nbp_lig_coupe-1): - nbma=nbma+1 - resu=resu+' M'+str(nbma)+'\n' - resu=resu+'\n' - resu=resu+'FINSF\n' - for i in range(nbngr): - resu=resu+'GROUP_MA\n' - resu=resu+groups[i][0] - nbp_lig_coupe = len(groups[i])-1 - for j in range(nbp_lig_coupe-1): - nbma=nbma+1 - resu=resu+' M'+str(nbma)+'\n' - resu=resu+'\n' - resu=resu+'FINSF\n' - resu=resu+'FIN\n' - - return resu - - -######################################################################## -def macr_lign_coupe_ops(self,RESULTAT,UNITE_MAILLAGE,LIGN_COUPE,NOM_CHAM,MODELE,**args): - """ - Ecriture de la macro MACR_LIGN_COUPE - """ - import os,string,types - from Accas import _F - from Noyau.N_utils import AsType - import aster,math - from Utilitai.UniteAster import UniteAster - from Utilitai.Utmess import UTMESS - ier=0 - - # On importe les definitions des commandes a utiliser dans la macro - LIRE_MAILLAGE =self.get_cmd('LIRE_MAILLAGE') - DEFI_GROUP =self.get_cmd('DEFI_GROUP') - AFFE_MODELE =self.get_cmd('AFFE_MODELE') - PROJ_CHAMP =self.get_cmd('PROJ_CHAMP') - POST_RELEVE_T =self.get_cmd('POST_RELEVE_T') - CREA_TABLE =self.get_cmd('CREA_TABLE') - MODI_REPERE =self.get_cmd('MODI_REPERE') - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - nomresu=RESULTAT.nom - l_modele=aster.getvectjev(nomresu.ljust(19)+'.MODL') - n_modele=string.strip(l_modele[0]) - if n_modele=='' : - if MODELE==None: - UTMESS('F', "MACR_LIGN_COUPE", "nom du modele absent dans le concept resultat "+nomresu) - else : n_modele=MODELE.nom - l_mailla=aster.getvectjev(n_modele.ljust(8)+'.MODELE .NOMA') - n_mailla=string.strip(l_mailla[0]) - dime=aster.getvectjev(n_mailla.ljust(8)+'.DIME')[5] - collgrno=aster.getcolljev(n_mailla.ljust(8)+'.GROUPENO') - - lignes=[] - groups=[] - minidim=dime - for m in LIGN_COUPE : - if m['NB_POINTS'] !=None : - lignes.append((m['COOR_ORIG'],m['COOR_EXTR'],m['NB_POINTS'])) - minidim=min(minidim,len(m['COOR_ORIG']),len(m['COOR_EXTR'])) - elif m['GROUP_NO']!=None : - ngrno=m['GROUP_NO'].ljust(8).upper() - if ngrno not in collgrno.keys() : - UTMESS('F', "MACR_LIGN_COUPE", "le group_no "+ngrno+" n est pas dans le maillage "+n_mailla) - grpn=collgrno[ngrno] - l_coor_group=[ngrno,] - for node in grpn: - l_coor_group.append(aster.getvectjev(n_mailla.ljust(8)+'.COORDO .VALE',3*(node-1),3)) - groups.append(l_coor_group) - - if minidim!=dime: - UTMESS('F', "MACR_LIGN_COUPE", "dimensions de maillage et de coordonnees incoherentes") - - - # Création du maillage des NB_POINTS segments entre COOR_ORIG et COOR_EXTR - # ainsi que des segments reliant les noeuds issus des group_no demandés - # par appel au script python crea_mail_lig_coup - # le maillage est ensuite recopié dans l unité logique UNITE_MAILLAGE - - resu_mail=crea_mail_lig_coup(dime,lignes,groups) - UL = UniteAster() - nomFichierSortie = UL.Nom(UNITE_MAILLAGE) - fproc=open(nomFichierSortie,'w') - fproc.write(resu_mail) - fproc.close() - UL.EtatInit(UNITE_MAILLAGE) - - # Lecture du maillage de seg2 contenant toutes les lignes de coupe - - __macou=LIRE_MAILLAGE(UNITE=UNITE_MAILLAGE,); - - motscles={} - iocc=1 - motscles['CREA_GROUP_NO']=[] - for m in LIGN_COUPE : - if m['NB_POINTS'] !=None : - motscles['CREA_GROUP_NO'].append(_F(GROUP_MA='LICOU'+str(iocc),) ) - iocc=iocc+1 - elif m['GROUP_NO']!=None : - motscles['CREA_GROUP_NO'].append(_F(GROUP_MA=m['GROUP_NO'].ljust(8).upper(),) ) - __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=self.jdc.current_context[n_modele], - MODELE_2=__mocou, - TYPE_CHAM='NOEU', - NOM_CHAM=NOM_CHAM,); - - # Expression des contraintes aux noeuds ou des déplacements dans le repere local - __remodr=__recou - if AsType(RESULTAT).__name__ in ('evol_elas','evol_noli') : - for m in LIGN_COUPE : - if m['VECT_Y'] !=None : - epsi=0.00000001 - # --- determination des angles nautiques - cx1=m['COOR_EXTR'][0]-m['COOR_ORIG'][0] - cx2=m['COOR_EXTR'][1]-m['COOR_ORIG'][1] - cx3=0. - if dime == 3: - cx3=m['COOR_EXTR'][2]-m['COOR_ORIG'][2] - nvx=math.sqrt(cx1**2+cx2**2+cx3**2) - if abs(nvx) < epsi: - UTMESS('F', "MACR_LIGN_COUPE", "definition incorrecte de la ligne de coupe") - cx1=cx1/nvx - cx2=cx2/nvx - cx3=cx3/nvx - cy1=m['VECT_Y'][0] - cy2=m['VECT_Y'][1] - cy3=0. - if dime == 3: - cy3=m['VECT_Y'][2] - nvy=math.sqrt(cy1**2+cy2**2+cy3**2) - if abs(nvy) < epsi: - UTMESS('F', "MACR_LIGN_COUPE", "valeurs incorrectes pour VECT_Y") - cy1=cy1/nvy - cy2=cy2/nvy - cy3=cy3/nvy - if ((abs(cx1-cy1) epsi : - cz1=cx2*cy3-cx3*cy2 - cz2=cx3*cy1-cx1*cy3 - cz3=cx1*cy2-cx2*cy1 - nvz=math.sqrt(cz1**2+cz2**2+cz3**2) - cz1=cz1/nvz - cz2=cz2/nvz - cz3=cz3/nvz - cy1=cz2*cx3-cz3*cx2 - cy2=cz3*cx1-cz1*cx3 - cy3=cz1*cx2-cz2*cx1 - nvy=math.sqrt(cy1**2+cy2**2+cy3**2) - cy1=cy1/nvy - cy2=cy2/nvy - cy3=cy3/nvy - UTMESS('A','MACR_LIGN_COUPE','LE VECTEUR Y N EST PAS ORTHOGONAL A LA LIGNE DE COUPE' - +'LE VECTEUR Y A ETE ORTHONORMALISE POUR VOUS') - UTMESS('A','MACR_LIGN_COUPE','VECT_Y=('+str(cy1)+','+str(cy2)+','+str(cy3)+')') - else: - cz1=cx2*cy3-cx3*cy2 - cz2=cx3*cy1-cx1*cy3 - cz3=cx1*cy2-cx2*cy1 - beta=0. - gamma=0. - if dime ==2: - alpha = math.atan2(cx2,cx1) - else: - if cx1**2 + cx2**2 > epsi : - alpha=math.atan2(cx2,cx1) - beta=math.asin(cx3) - gamma=math.atan2(cy3,cz3) - else: - alpha=math.atan2(cy1,cz1) - beta=math.asin(cx3) - gamma=0. - alpha=alpha*180/math.pi - beta=beta*180/math.pi - gamma=gamma*180/math.pi - - # --- MODI_REPERE - motscles={} - motscles['MODI_CHAM']=[] - motscles['DEFI_REPERE']=[] - # MODI_CHAM - if NOM_CHAM == 'DEPL': - if dime == 2: - LCMP=['DX','DY'] - TYPE_CHAM='VECT_2D' - elif dime ==3 : - LCMP=['DX','DY','DZ'] - TYPE_CHAM='VECT_3D' - motscles['MODI_CHAM'].append(_F(NOM_CHAM=NOM_CHAM,NOM_CMP=LCMP,TYPE_CHAM=TYPE_CHAM),) - elif NOM_CHAM in ('SIGM_NOEU_DEPL','SIGM_NOEU_SIEF','SIGM_NOEU_ELGA','SIGM_NOEU_COQU'): - if dime == 2: - LCMP=['SIXX','SIYY','SIZZ','SIXY'] - TYPE_CHAM='TENS_2D' - elif dime ==3 : - LCMP=['SIXX','SIYY','SIZZ','SIXY','SIXZ','SIYZ'] - TYPE_CHAM='TENS_3D' - motscles['MODI_CHAM'].append(_F(NOM_CHAM=NOM_CHAM,NOM_CMP=LCMP,TYPE_CHAM=TYPE_CHAM),) - # DEFI_REPERE - ANGL_NAUT=[] - ANGL_NAUT.append(alpha) - if dime ==3: - ANGL_NAUT.append(beta) - ANGL_NAUT.append(gamma) - motscles['DEFI_REPERE'].append(_F(REPERE='UTILISATEUR',ANGL_NAUT=ANGL_NAUT),) - __remodr=MODI_REPERE(RESULTAT=__recou,**motscles) - - - - # Production d'une table pour toutes les lignes de coupe - - ioc2=0 - mcACTION=[] - for m in LIGN_COUPE : - if m['NB_POINTS'] !=None : - ioc2=ioc2+1 - groupe='LICOU'+str(ioc2) - if m['INTITULE'] !=None : intitl=m['INTITULE'] - else : intitl='l.coupe'+str(ioc2) - elif m['GROUP_NO']!=None : - groupe=m['GROUP_NO'].ljust(8).upper() - if m['INTITULE'] !=None : intitl=m['INTITULE'] - else : intitl=groupe - mcACTION.append( _F(INTITULE = intitl, - RESULTAT = __remodr, - GROUP_NO = groupe, - NOM_CHAM = NOM_CHAM, - TOUT_CMP = 'OUI', - OPERATION = 'EXTRACTION', ) ) - - __tabitm=POST_RELEVE_T(ACTION=mcACTION,); - - # on repasse par les tables python pour supprimer les paramètres inutiles - # NOEUD (car il est propre au maillage de la ligne) et RESU - - self.DeclareOut('nomres',self.sd) - dictab=__tabitm.EXTR_TABLE() - listpara=dictab.para - listpara.remove('NOEUD') - listpara.remove('RESU') - - coltab=[] - for key in listpara : - val=dictab[key].values()[key] - if type(val[0])==types.IntType : - coltab.append(_F(PARA=key,LISTE_I=val)) - elif type(val[0])==types.FloatType : - coltab.append(_F(PARA=key,LISTE_R=val)) - elif type(val[0])==types.StringType : - coltab.append(_F(PARA=key,LISTE_K=val,TYPE_K='K16')) - nomres=CREA_TABLE(LISTE=coltab) - - return ier diff --git a/Aster/Cata/cataSTA81/Macro/macr_recal_ops.py b/Aster/Cata/cataSTA81/Macro/macr_recal_ops.py deleted file mode 100644 index 40e793af..00000000 --- a/Aster/Cata/cataSTA81/Macro/macr_recal_ops.py +++ /dev/null @@ -1,166 +0,0 @@ -#@ MODIF macr_recal_ops Macro DATE 08/11/2005 AUTEUR ASSIRE A.ASSIRE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - - -def macr_recal_ops(self,UNITE_ESCL, RESU_EXP, POIDS, LIST_PARA, RESU_CALC, - ITER_MAXI, RESI_GLOB_RELA,UNITE_RESU,PARA_DIFF_FINI, - GRAPHIQUE, INFO, **args ): - """Macro commande réalisant le recalage de modèles Aster""", - # Initialisation du compteur d'erreurs - ier=0 - - import string, copy, types, Numeric - import Macro - from Cata import cata - from Cata.cata import DEFI_LIST_REEL - from Macro.recal import gestion,transforme_list_Num,calcul_F - from Macro import reca_message - from Macro import reca_algo - from Macro import reca_interp - from Macro import reca_graphique - - try: - from Utilitai.Utmess import UTMESS - except ImportError: - def UTMESS(code,sprg,texte): - fmt='\n <%s> <%s> %s\n\n' - print fmt % (code,sprg,texte) - - # Test du mot-clé GRAPHIQUE - if GRAPHIQUE: - dGRAPHIQUE=GRAPHIQUE[0].cree_dict_valeurs(GRAPHIQUE[0].mc_liste) - if dGRAPHIQUE.has_key('FORMAT') and dGRAPHIQUE['FORMAT'] == 'GNUPLOT': - # On essaie d'importer Gnuplot -> PAS DE GRAPHIQUE - try: - import Gnuplot - except ImportError: - GRAPHIQUE == None - UTMESS('A','MACR_RECAL',"Le logiciel Gnuplot ou le module python Gnuplot.py n'est pas disponible. On desactive l'affichage des courbes.") - - # La macro compte pour 1 dans l'execution des commandes - self.set_icmd(1) - - self.DeclareOut('nomres',self.sd) - - #_______________________________________________ - # - # GESTION DE L'OPTION FACULTATIVE POUR LES POIDS - #_______________________________________________ - if( POIDS == None): - POIDS=Numeric.ones(len(RESU_EXP)) - - #_____________________________________________ - # - # GESTION DES ERREURS DE SYNTAXE - #_____________________________________________ - texte_erreur = gestion(UNITE_ESCL,LIST_PARA,RESU_CALC,RESU_EXP,POIDS,GRAPHIQUE,UNITE_RESU) - if (texte_erreur != ""): - UTMESS('F', "MACR_RECAL", texte_erreur) - - #_____________________________________________ - # - # DECLARATION DE 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'] - - #_____________________________________________ - # - # INITIALISATIONS - #_____________________________________________ - iter = 0 - restant,temps_iter=0.,0. - restant,temps_iter,err=reca_algo.temps_CPU(self,restant,temps_iter) - 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 = reca_message.Message(para,RESU_EXP,copy.copy(val_init),UNITE_RESU) - #instances des classes pour le calcul de l'erreur et le dimensionnemnt/adim - Simul = reca_interp.Sim_exp(RESU_EXP,POIDS) - Dim = reca_algo.Dimension(copy.copy(val_init),para) - 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 = reca_algo.lambda_init(Numeric.matrixmultiply(Numeric.transpose(A),A)) - gradient_init =reca_algo.calcul_gradient(A,erreur) #utile pour le test de convergence, on prend les valeurs dimensionnées - residu = reca_algo.test_convergence(gradient_init,erreur,A,Numeric.zeros(len(gradient_init),Numeric.Float)) - Mess.affiche_result_iter(iter,J,val,residu,Numeric.array([]),UNITE_RESU) - # On teste un manque de temps CPU - restant,temps_iter,err=reca_algo.temps_CPU(self,restant,temps_iter) - if (err==1): - ier=ier+1 - return ier - - #_____________________________________________ - # - # BOUCLE PRINCIPALE DE L'ALGORITHME - #_____________________________________________ - epsilon = 10.*RESI_GLOB_RELA - while((residu > RESI_GLOB_RELA) & (iter10000): - l=abs(10000.*emin-emax)/10001. - return l - -#----------------------------------------- - - -def temps_CPU(self,restant_old,temps_iter_old): - # Fonction controlant le temps CPU restant - CPU=INFO_EXEC_ASTER(LISTE_INFO = ("CPU_RESTANT",)) - TEMPS=CPU['CPU_RESTANT',1] - DETRUIRE(CONCEPT=_F(NOM='CPU'),INFO=1) - err=0 - # Indique une execution interactive - if (TEMPS>1.E+9): - return 0.,0.,0 - # Indique une execution en batch - else: - restant=TEMPS - # Initialisation - if (restant_old==0.): - temps_iter=-1. - else: - # Première mesure - if (temps_iter_old==-1.): - temps_iter=(restant_old-restant) - # Mesure courante - else: - temps_iter=(temps_iter_old + (restant_old-restant))/2. - if ((temps_iter>0.96*restant)or(restant<0.)): - err=1 - UTMESS('F', "MACR_RECAL", 'Arret de MACR_RECAL par manque de temps CPU') - return restant,temps_iter,err - - - - -def Levenberg_bornes(self,val,Dim,val_init,borne_inf,borne_sup,A,erreur,l,ul_out): - # on resoud le système par contraintes actives: - # Q.dval + s + d =0 - # soumis à : - # borne_inf < dval < borne_sup - # 0 < s - # s.(borne_inf - dval)=0 - # s.(borne_sup - dval)=0 - dim = len(val) - id = Numeric.identity(dim) - # Matrice du système - Q=Numeric.matrixmultiply(Numeric.transpose(A),A) +l*id - # Second membre du système - d=Numeric.matrixmultiply(Numeric.transpose(A),erreur) - # Ens. de liaisons actives - Act=Numeric.array([]) - k=0 - done=0 - # Increment des parametres - dval=Numeric.zeros(dim,Numeric.Float) - while done <1 : - k=k+1 - I=Numeric.ones(dim) - for i in Act: - I[i]=0 - I=Numeric.nonzero(Numeric.greater(I,0)) - s=Numeric.zeros(dim,Numeric.Float) - for i in Act: - # test sur les bornes (on stocke si on est en butée haute ou basse) - if (val[i]+dval[i]>=borne_sup[i]): - dval[i]=borne_sup[i]-val[i] - s[i]=1. - if (val[i]+dval[i]<=borne_inf[i]): - dval[i]=borne_inf[i]-val[i] - s[i]=-1. - if (len(I)!=0): - # xi=-Q(I)-1.(d(I)+Q(I,Act).dval(Act)) - xi=-LinearAlgebra.solve_linear_equations(take(take(Q,I),I,1),(take(d,I)+Numeric.dot(take(take(Q,I),Act,1),take(Dim.adim(dval),Act)))) - for i in Numeric.arange(len(I)): - dval[I[i]]=xi[i]*val_init[I[i]] - if (len(Act)!=0): - # s(Av)=-d(Act)-Q(Act,:).dval - sa=-take(d,Act)-Numeric.dot(take(Q,Act),Dim.adim(dval)) - for i in range(len(Act)): - if (s[Act[i]]==-1.): - s[Act[i]]=-sa[i] - else: - s[Act[i]]=sa[i] - # Nouvel ens. de liaisons actives - Act=Numeric.concatenate((Numeric.nonzero(Numeric.greater(dval,borne_sup-val)),Numeric.nonzero(Numeric.less(dval,borne_inf-val)),Numeric.nonzero(Numeric.greater(s,0.)))) - done=(max(val+dval-borne_sup)<=0)&(min(val+dval-borne_inf)>=0)&(min(s)>=0.0) - # Pour éviter le cyclage - if (k>50): - try: - l=l*2 - Q=Numeric.matrixmultiply(Numeric.transpose(A),A) +l*id - k=0 - except: - res=open(os.getcwd()+'/fort.'+str(ul_out),'a') - res.write('\n\nQ = \n'+Numeric.array2string(Q-l*id,array_output=1,separator=',')) - res.write('\n\nd = '+Numeric.array2string(d,array_output=1,separator=',')) - res.write('\n\nval = '+Numeric.array2string(val,array_output=1,separator=',')) - res.write('\n\nval_ini= '+Numeric.array2string(val_init,array_output=1,separator=',')) - res.write('\n\nborne_inf= '+Numeric.array2string(borne_inf,array_output=1,separator=',')) - res.write('\n\nborne_sup= '+Numeric.array2string(borne_sup,array_output=1,separator=',')) - UTMESS('F', "MACR_RECAL", "Erreur dans l'algorithme de bornes de MACR_RECAL") - return - newval=copy.copy(val+dval) - return newval,s,l,Act - - -def actualise_lambda(l,val,new_val,A,erreur,new_J,old_J): - dim = len(val) - id = Numeric.identity(dim) - # Matrice du système - Q=Numeric.matrixmultiply(Numeric.transpose(A),A) +l*id - # Second membre du système - d=Numeric.matrixmultiply(Numeric.transpose(A),erreur) - old_Q=old_J - new_Q=old_J+0.5*Numeric.dot(Numeric.transpose(new_val-val),Numeric.dot(Q,new_val-val))+Numeric.dot(Numeric.transpose(new_val-val),d) - # Ratio de la décroissance réelle et de l'approx. quad. - try: - R=(old_J-new_J)/(old_Q-new_Q) - if (R<0.25): - l = l*10. - elif (R>0.75): - l = l/15. - except ZeroDivisionError: - if (old_J>new_J): - l = l*10. - else: - l = l/10. - return l - - -def test_convergence(gradient_init,erreur,A,s): - gradient = calcul_gradient(A,erreur)+s - 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 au Hessien -# A = sensibilite -# At*A = hessien -def calcul_etat_final(para,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) - sensible=Numeric.nonzero(Numeric.greater(abs(valeurs_propres/max(abs(valeurs_propres))),1.E-1)) - insensible=Numeric.nonzero(Numeric.less(abs(valeurs_propres/max(abs(valeurs_propres))),1.E-2)) - Messg.affiche_calcul_etat_final(para,Hessien,valeurs_propres,vecteurs_propres,sensible,insensible,ul_out) - - - - - diff --git a/Aster/Cata/cataSTA81/Macro/reca_graphique.py b/Aster/Cata/cataSTA81/Macro/reca_graphique.py deleted file mode 100644 index bab1d8c2..00000000 --- a/Aster/Cata/cataSTA81/Macro/reca_graphique.py +++ /dev/null @@ -1,92 +0,0 @@ -#@ MODIF reca_graphique Macro DATE 08/11/2005 AUTEUR ASSIRE A.ASSIRE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -import string, copy, Numeric, types -import Cata -from Cata.cata import DEFI_FICHIER, IMPR_FONCTION -from Utilitai.Utmess import UTMESS -from Accas import _F - -try: - import Gnuplot -except: - pass - - -#_____________________________________________ -# -# IMPRESSIONS GRAPHIQUES -#_____________________________________________ - -def graphique(FORMAT, L_F, res_exp, reponses, iter, UL_out, interactif): - - if FORMAT=='XMGRACE': - for i in range(len(L_F)): - _tmp = [] - courbe1 = res_exp[i] - _tmp.append( { 'ABSCISSE': courbe1[:,0].tolist(), 'ORDONNEE': courbe1[:,1].tolist(), 'COULEUR': 1 } ) - courbe2 = L_F[i] - _tmp.append( { 'ABSCISSE': courbe2[:,0].tolist(), 'ORDONNEE': courbe2[:,1].tolist(), 'COULEUR': 2 } ) - - motscle2= {'COURBE': _tmp } - if interactif: motscle2['PILOTE']= 'INTERACTIF' - else: motscle2['PILOTE']= 'POSTSCRIPT' - -# DEFI_FICHIER(UNITE=int(UL_out), ACCES='NEW',) - - IMPR_FONCTION(FORMAT='XMGRACE', - UNITE=int(UL_out), - TITRE='Courbe de : ' + reponses[i][0], - SOUS_TITRE='Iteration : ' + str(iter), - LEGENDE_X=reponses[i][1], - LEGENDE_Y=reponses[i][2], - **motscle2 - ); -# DEFI_FICHIER(ACTION='LIBERER',UNITE=int(UL_out),) - - elif FORMAT=='GNUPLOT': - graphe=[] - impr=Gnuplot.Gnuplot() - Gnuplot.GnuplotOpts.prefer_inline_data=1 - impr('set data style linespoints') - impr('set grid') - impr('set pointsize 2.') - impr('set terminal postscript color') - impr('set output "fort.'+str(UL_out)+'"') - - for i in range(len(L_F)): - if interactif: - graphe.append(Gnuplot.Gnuplot(persist=0)) - graphe[i]('set data style linespoints') - graphe[i]('set grid') - graphe[i]('set pointsize 2.') - graphe[i].xlabel(reponses[i][1]) - graphe[i].ylabel(reponses[i][2]) - graphe[i].title(reponses[i][0]+' Iteration '+str(iter)) - graphe[i].plot(Gnuplot.Data(L_F[i],title='Calcul'),Gnuplot.Data(res_exp[i],title='Experimental')) - graphe[i]('pause 5') - - impr.xlabel(reponses[i][1]) - impr.ylabel(reponses[i][2]) - impr.title(reponses[i][0]+' Iteration '+str(iter)) - impr.plot(Gnuplot.Data(L_F[i],title='Calcul'),Gnuplot.Data(res_exp[i],title='Experimental')) - - else: - pass diff --git a/Aster/Cata/cataSTA81/Macro/reca_interp.py b/Aster/Cata/cataSTA81/Macro/reca_interp.py deleted file mode 100644 index 0d04cc21..00000000 --- a/Aster/Cata/cataSTA81/Macro/reca_interp.py +++ /dev/null @@ -1,181 +0,0 @@ -#@ MODIF reca_interp Macro DATE 05/09/2005 AUTEUR DURAND C.DURAND -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -import os -import Numeric -import Macro -from Macro.recal import calcul_F -from Utilitai.Utmess import UTMESS - -#=========================================================================================== - - -# INTERPOLATION, CALCUL DE SENSIBILITE, ETC.... - -#-------------------------------------- -class Sim_exp : - - def __init__ (self,result_exp,poids) : - self.resu_exp = result_exp - self.poids = poids - -# 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,poids) : #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] = poids*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],self.poids[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],self.poids[i]) - L_erreur.append(err) - #on transforme L_erreur en tab num - return L_erreur - - def calcul_J(self,L_erreur): - L_J = [] - for i in range(len(L_erreur)): - total = 0 - for j in range(len(L_erreur[i])): - total = total + L_erreur[i][j]**2 - L_J.append(total) - return L_J - - def norme_J(self,L_J_init,L_J,unite_resu): - #cette fonction calcul une valeur normée de J - for i in range(len(L_J)): - try: - L_J[i] = L_J[i]/L_J_init[i] - except ZeroDivisionError: - message= 'Problème de division par zéro dans la normalisation de la fonctionnelle.\n' - message=message+'Une des valeurs de la fonctionnelle initiale est nulle ou inférieure à la précision machine : %.2f \n'%L_J_init - fic=open(os.getcwd()+'/fort.'+str(unite_resu),'a') - fic.write(message) - fic.close() - UTMESS('F', "MACR_RECAL", message) - - 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('\nCalcul 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: - message= 'Probleme de division par zéro dans le calcul de la matrice de sensiblité\n ' - message=message+'Le parametre '+para[k]+'est nul ou plus petit que la précision machine \n' - fic=open(os.getcwd()+'/fort.'+str(unite_resu),'a') - fic.write(message) - fic.close() - UTMESS('F', "MACR_RECAL", message) - #on construit la matrice de sensiblité sous forme d'un tab num - dim =[] - for i in range(len(L_A)): - dim.append(len(L_A[i])) - dim_totale = Numeric.sum(dim) - a=0 - A = Numeric.zeros((dim_totale,len(val)),Numeric.Float) - for n in range(len(L_A)): - for k in range(len(val)): - for i in range(dim[n]): - A[i+a][k] = L_A[n][i,k] - a=dim[n] - del(L_A) #on ecrase tout ce qu'il y a dans L_A puisqu'on n'en a plus besoin - return A - - - diff --git a/Aster/Cata/cataSTA81/Macro/reca_message.py b/Aster/Cata/cataSTA81/Macro/reca_message.py deleted file mode 100644 index 0691b785..00000000 --- a/Aster/Cata/cataSTA81/Macro/reca_message.py +++ /dev/null @@ -1,115 +0,0 @@ -#@ MODIF reca_message Macro DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -import os,Numeric - -#=========================================================================================== - - -# 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(' MACR_RECAL V1.1 \n\n\n') - res.close() - - - def affiche_result_iter(self,iter,J,val,residu,Act,ul_out): - res=open(os.getcwd()+'/fort.'+str(ul_out),'a') - res.write('\n=======================================================\n') - res.write('Iteration '+str(iter)+' :\n') - res.write('\n=> Fonctionnelle = '+str(J)) - res.write('\n=> Résidu = '+str(residu)) - res.write('\n=> Paramètres = ') - for i in range(len(val)): - res.write('\n '+ self.nom_para[i]+' = '+str(val[i]) ) - if (len(Act)!=0): - if (len(Act)==1): - res.write('\n\n Le paramètre ') - else: - res.write('\n\n Les paramètres ') - for i in Act: - res.write(self.nom_para[i]+' ') - if (len(Act)==1): - res.write('\n est en butée sur un bord de leur domaine admissible.') - else: - res.write('\n sont en butée sur un bord de leur domaine admissible.') - res.write('\n=======================================================\n\n') - res.close() - - def affiche_etat_final_convergence(self,iter,max_iter,prec,residu,Act,ul_out): - res=open(os.getcwd()+'/fort.'+str(ul_out),'a') - if ((iter < max_iter) or (residu < prec)): - res.write('\n=======================================================\n') - res.write(' CONVERGENCE ATTEINTE ') - if (len(Act)!=0): - res.write("\n\n ATTENTION : L'OPTIMUM EST ATTEINT AVEC ") - res.write("\n DES PARAMETRES EN BUTEE SUR LE BORD ") - res.write("\n DU DOMAINE ADMISSIBLE ") - res.write('\n=======================================================\n') - res.close() - else: - res.write("\n=======================================================\n") - res.write(' CONVERGENCE NON ATTEINTE ') - res.write("\n Le nombre maximal d'itération ("+str(max_iter)+") a été dépassé") - res.write('\n=======================================================\n') - res.close() - - def affiche_calcul_etat_final(self,para,Hessien,valeurs_propres,vecteurs_propres,sensible,insensible,ul_out): - res=open(os.getcwd()+'/fort.'+str(ul_out),'a') - res.write('\n\nValeurs propres du Hessien:\n') - res.write(str( valeurs_propres)) - res.write('\n\nVecteurs propres associés:\n') - res.write(str( vecteurs_propres)) - res.write('\n\n --------') - res.write('\n\nOn peut en déduire que :') - # Paramètres sensibles - if (len(sensible)!=0): - res.write('\n\nLes combinaisons suivantes de paramètres sont prépondérantes pour votre calcul :\n') - k=0 - for i in sensible: - k=k+1 - colonne=vecteurs_propres[:,i] - numero=Numeric.nonzero(Numeric.greater(abs(colonne/max(abs(colonne))),1.E-1)) - res.write('\n '+str(k)+') ') - for j in numero: - res.write('%+3.1E ' %colonne[j]+'* '+para[j]+' ') - res.write('\n associée à la valeur propre %3.1E \n' %valeurs_propres[i]) - # Paramètres insensibles - if (len(insensible)!=0): - res.write('\n\nLes combinaisons suivantes de paramètres sont insensibles pour votre calcul :\n') - k=0 - for i in insensible: - k=k+1 - colonne=vecteurs_propres[:,i] - numero=Numeric.nonzero(Numeric.greater(abs(colonne/max(abs(colonne))),1.E-1)) - res.write('\n '+str(k)+') ') - for j in numero: - res.write('%+3.1E ' %colonne[j]+'* '+para[j]+' ') - res.write('\n associée à la valeur propre %3.1E \n' %valeurs_propres[i]) - res.close() - - - diff --git a/Aster/Cata/cataSTA81/Macro/recal.py b/Aster/Cata/cataSTA81/Macro/recal.py deleted file mode 100644 index 2e43b088..00000000 --- a/Aster/Cata/cataSTA81/Macro/recal.py +++ /dev/null @@ -1,357 +0,0 @@ -#@ MODIF recal Macro DATE 08/11/2005 AUTEUR ASSIRE A.ASSIRE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - - - -import string, copy, Numeric, types -# import Gnuplot -import Cata -from Cata.cata import INCLUDE, DETRUIRE, FIN, EXEC_LOGICIEL, DEFI_FICHIER, IMPR_TABLE, LIRE_TABLE, INFO_EXEC_ASTER, EXTR_TABLE -from Utilitai.Utmess import UTMESS -from Accas import _F - -import os, aster, cPickle, sys - -# try: -# import Gnuplot -# except: pass - -try: - from Utilitai.Utmess import UTMESS -except ImportError: - def UTMESS(code,sprg,texte): - fmt='\n <%s> <%s> %s\n\n' - print fmt % (code,sprg,texte) - - -#_____________________________________________ -# -# DIVERS UTILITAIRES POUR LA MACRO -#_____________________________________________ - - -# Transforme les données entrées par l'utilisateur en tableau Numeric -def transforme_list_Num(parametres,res_exp): - dim_para = len(parametres) #donne le nb de parametres - val_para = Numeric.zeros(dim_para,Numeric.Float) - borne_inf = Numeric.zeros(dim_para,Numeric.Float) - borne_sup = Numeric.zeros(dim_para,Numeric.Float) - para = [] - for i in range(dim_para): - para.append(parametres[i][0]) - val_para[i] = parametres[i][1] - borne_inf[i] = parametres[i][2] - borne_sup[i] = parametres[i][3] - return para,val_para,borne_inf,borne_sup - -def mes_concepts(list_concepts=[],base=None): - # Fonction qui liste les concepts créés - for e in base.etapes: - if e.nom in ('INCLUDE','MACR_RECAL',) : - list_concepts=list(mes_concepts(list_concepts=list_concepts,base=e)) - elif (e.sd != None) and (e.parent.nom=='INCLUDE') : - nom_concept=e.sd.get_name() - if not(nom_concept in list_concepts): - list_concepts.append( nom_concept ) - return tuple(list_concepts) - - -def detr_concepts(self): - liste_concepts=mes_concepts(base=self.parent) - for e in liste_concepts: - nom = string.strip(e) - DETRUIRE( CONCEPT =self.g_context['_F'](NOM = nom),INFO=1) - if self.jdc.g_context.has_key(nom) : del self.jdc.g_context[nom] - del(liste_concepts) - - -def calcul_F(self,UL,para,val,reponses): - fic = open('fort.'+str(UL),'r') - #On stocke le contenu de fort.UL dans la variable fichier qui est un string - fichier=fic.read() - #On stocke le contenu initial de fort.UL dans la variable fichiersauv - fichiersauv=copy.copy(fichier) - fic.close() - - #Fichier_Resu est une liste ou l'on va stocker le fichier modifié - #idée générale :on délimite des 'blocs' dans fichier - #on modifie ou non ces blocs suivant les besoins - #on ajoute ces blocs dans la liste Fichier_Resu - Fichier_Resu=[] - - try: - #cherche l'indice de DEBUT() - index_deb=string.index(fichier,'DEBUT(') - while( fichier[index_deb]!='\n'): - index_deb=index_deb+1 - #on restreind fichier en enlevant 'DEBUT();' - fichier = fichier[index_deb+1:] - except : - #on va dans l'except si on a modifié le fichier au moins une fois - pass - - try: - #cherche l'indice de FIN() - index_fin = string.index(fichier,'FIN(') - #on restreind fichier en enlevant 'FIN();' - fichier = fichier[:index_fin] - except : pass - #-------------------------------------------------------------------------------- - #on cherche à délimiter le bloc des parametres dans le fichier - #Tout d'abord on cherche les indices d'apparition des paras dans le fichier - #en effet l'utilisateur n'est pas obligé de rentrer les paras dans optimise - #avec le meme ordre de son fichier de commande - index_para = Numeric.zeros(len(para)) - for i in range(len(para)): - index_para[i] = string.index(fichier,para[i]) - #On range les indices par ordre croissant afin de déterminer - #les indice_max et indice_min - index_para = Numeric.sort(index_para) - index_first_para = index_para[0] - index_last_para = index_para[len(index_para)-1] - - - #on va délimiter les blocs intermédiaires entre chaque para "utiles" à l'optimsation - bloc_inter ='\n' - for i in range(len(para)-1): - j = index_para[i] - k = index_para[i+1] - while(fichier[j]!= '\n'): - j=j+1 - bloc_inter=bloc_inter + fichier[j:k] + '\n' - - #on veut se placer sur le premier retour chariot que l'on trouve sur la ligne du dernier para - i = index_last_para - while(fichier[i] != '\n'): - i = i + 1 - index_last_para = i - #on délimite les blocs suivants: - pre_bloc = fichier[:index_first_para] #fichier avant premier parametre - post_bloc = fichier[ index_last_para+ 1:] #fichier après dernier parametre - - #on ajoute dans L tous ce qui est avant le premier paramètre - Fichier_Resu.append(pre_bloc) - Fichier_Resu.append('\n') - #On ajoute la nouvelle valeur des parametres - dim_para=len(para) - for j in range(dim_para): - Fichier_Resu.append(para[j]+'='+str(val[j]) + ';' + '\n') - #On ajoute à Fichier_Resu tous ce qui est entre les parametres - Fichier_Resu.append(bloc_inter) - - Fichier_Resu.append(post_bloc) - #-------------------------------------------------------------------------------- - #on va ajouter la fonction d'extraction du numarray de la table par la méthode Array - #et on stocke les réponses calculées dans la liste Lrep - #qui va etre retournée par la fonction calcul_F - self.g_context['Lrep'] = [] - Fichier_Resu.append('Lrep=[]'+'\n') - for i in range(len(reponses)): - Fichier_Resu.append('t'+str(reponses[i][0])+'='+str(reponses[i][0])+'.EXTR_TABLE()'+'\n') - Fichier_Resu.append('_F_ = '+'t'+str(reponses[i][0])+'.Array('+"'"+str(reponses[i][1])+"'"+','+"'"+str(reponses[i][2])+"'"+')'+'\n') - Fichier_Resu.append('Lrep.append(_F_)'+'\n') - - #ouverture du fichier fort.3 et mise a jour de celui ci - x=open('fort.'+str(UL),'w') - x.writelines('from Accas import _F \nfrom Cata.cata import * \n') - x.writelines(Fichier_Resu) - x.close() - del(Fichier_Resu) - del(pre_bloc) - del(post_bloc) - del(fichier) - - INCLUDE(UNITE = UL) - detr_concepts(self) - # on remet le fichier dans son etat initial - x=open('fort.'+str(UL),'w') - x.writelines(fichiersauv) - x.close() - return self.g_context['Lrep'] - - -#_____________________________________________ -# -# CONTROLE DES ENTREES UTILISATEUR -#_____________________________________________ - -def erreur_de_type(code_erreur,X): - #code_erreur ==0 --> X est une liste - #code erreur ==1 --> X est un char - #code erreur ==2 --> X est un float - #test est un boolean (test = 0 défaut et 1 si un test if est verifier - txt="" - if(code_erreur == 0 ): - if type(X) is not types.ListType: - txt="\nCette entrée: " +str(X)+" n'est pas une liste valide" - if(code_erreur == 1 ): - if type(X) is not types.StringType: - txt="\nCette entrée: " +str(X)+" n'est pas une chaine de caractère valide ; Veuillez la ressaisir en lui appliquant le type char de python" - if(code_erreur == 2 ): - if type(X) is not types.FloatType: - txt="\nCette entrée: " +str(X)+" n'est pas une valeur float valide ; Veuillez la ressaisir en lui appliquant le type float de python" - return txt - - -def erreur_dimension(PARAMETRES,REPONSES): -#On verifie que la dimension de chaque sous_liste de parametre est 4 -#et que la dimension de chaque sous_liste de REPONSES est 3 - txt="" - for i in range(len(PARAMETRES)): - if (len(PARAMETRES[i]) != 4): - txt=txt + "\nLa sous-liste de la variable paramètre numéro " + str(i+1)+" n'est pas de longueur 4" - for i in range(len(REPONSES)): - if (len(REPONSES[i]) != 3): - txt=txt + "\nLa sous-liste de la variable réponse numéro " + str(i+1)+" n'est pas de longueur 3" - return txt - - -def compare__dim_rep__dim_RESU_EXP(REPONSES,RESU_EXP): - # X et Y sont deux arguments qui doivent avoir la meme dimension - # pour éviter l'arret du programme - txt="" - if( len(REPONSES) != len(RESU_EXP)): - txt="\nVous avez entré " +str(len(REPONSES))+ " réponses et "+str(len(RESU_EXP))+ " expériences ; On doit avoir autant de réponses que de résultats expérimentaux" - return txt - -def compare__dim_poids__dim_RESU_EXP(POIDS,RESU_EXP): - # POIDS et Y sont deux arguments qui doivent avoir la meme dimension - # pour éviter l'arret du programme - txt="" - if( len(POIDS) != len(RESU_EXP)): - txt="\nVous avez entré " +str(len(POIDS))+ " poids et "+str(len(RESU_EXP))+ " expériences ; On doit avoir autant de poids que de résultats expérimentaux" - return txt - - -def verif_fichier(UL,PARAMETRES,REPONSES): -#On verifie les occurences des noms des PARAMETRES et REPONSES -#dans le fichier de commande ASTER - txt="" - fichier = open('fort.'+str(UL),'r') - fic=fichier.read() - for i in range(len(PARAMETRES)): - if((string.find(fic,PARAMETRES[i][0])==-1) or ((string.find(fic,PARAMETRES[i][0]+'=')==-1) and (string.find(fic,PARAMETRES[i][0]+' ')==-1))): - txt=txt + "\nLe paramètre "+PARAMETRES[i][0]+" que vous avez entré pour la phase d'optimisation n'a pas été trouvé dans votre fichier de commandes ASTER" - for i in range(len(REPONSES)): - if((string.find(fic,REPONSES[i][0])==-1) or ((string.find(fic,REPONSES[i][0]+'=')==-1) and (string.find(fic,REPONSES[i][0]+' ')==-1))): - txt=txt + "\nLa réponse "+REPONSES[i][0]+" que vous avez entrée pour la phase d'optimisation n'a pas été trouvée dans votre fichier de commandes ASTER" - return txt - - -def verif_valeurs_des_PARAMETRES(PARAMETRES): -#On verifie que pour chaque PARAMETRES de l'optimisation -# les valeurs entrées par l'utilisateur sont telles que : -# val_infPARAMETRES[i][3]): - txt=txt + "\nLa borne inférieure "+str(PARAMETRES[i][2])+" de "+PARAMETRES[i][0]+ "est plus grande que sa borne supérieure"+str(PARAMETRES[i][3]) - #verification de l'encadrement de val_init - for i in range(len(PARAMETRES)): - if( (PARAMETRES[i][1] < PARAMETRES[i][2]) or (PARAMETRES[i][1] > PARAMETRES[i][3])): - txt=txt + "\nLa valeur initiale "+str(PARAMETRES[i][1])+" de "+PARAMETRES[i][0]+ " n'est pas dans l'intervalle [borne_inf,born_inf]=["+str(PARAMETRES[i][2])+" , "+str(PARAMETRES[i][3])+"]" - #verification que val_init !=0 - for i in range(len(PARAMETRES)): - if (PARAMETRES[i][1] == 0. ): - txt=txt + "\nProblème de valeurs initiales pour le paramètre "+PARAMETRES[i][0]+" : ne pas donner de valeur initiale nulle mais un ordre de grandeur." - #verification que borne_sup !=0 - for i in range(len(PARAMETRES)): - if (PARAMETRES[i][3] == 0. ): - txt=txt + "\nProblème de borne supérieure pour le paramètre "+PARAMETRES[i][0]+" : ne pas donner de valeur strictement nulle." - #verification que borne_inf !=0 - for i in range(len(PARAMETRES)): - if (PARAMETRES[i][2] == 0. ): - txt=txt + "\nProblème de borne inférieure pour le paramètre "+PARAMETRES[i][0]+" : ne pas donner de valeur strictement nulle." - return txt - - -def verif_UNITE(GRAPHIQUE,UNITE_RESU): - # On vérifie que les unités de résultat et - # de graphique sont différentes - txt="" - GRAPHE_UL_OUT=GRAPHIQUE['UNITE'] - if (GRAPHE_UL_OUT==UNITE_RESU): - txt=txt + "\nLes unités logiques des fichiers de résultats graphiques et de résultats d'optimisation sont les memes." - return txt - - - -def gestion(UL,PARAMETRES,REPONSES,RESU_EXP,POIDS,GRAPHIQUE,UNITE_RESU): - #Cette methode va utiliser les methodes de cette classe declarée ci_dessus - #test est un boolean: test=0 -> pas d'erreur - # test=1 -> erreur détectée - - texte="" - #On vérifie d'abord si PARAMETRES, REPONSES, RESU_EXP sont bien des listes au sens python - #test de PARAMETRES - texte = texte + erreur_de_type(0,PARAMETRES) - #test de REPONSES - texte = texte + erreur_de_type(0,REPONSES) - #test de RESU_EXP - texte = texte + erreur_de_type(0,RESU_EXP) - - #On vérifie si chaque sous liste de PARAMETRES, REPONSES, possède le type adéquat - #test des sous_listes de PARAMETRES - for i in range(len(PARAMETRES)): - texte = texte + erreur_de_type(0,PARAMETRES[i]) - #test des sous_listes de REPONSES - for i in range(len(REPONSES)): - texte = texte + erreur_de_type(0,REPONSES[i]) - - #On verifie si la dimension de chaque sous-liste de : PARAMETRES, REPONSES - #il faut que:la dimension d'une sous-liste de PARAMETRES = 4 - #et que la dimension d'une sous liste de REPONSES = 3 - texte = texte + erreur_dimension(PARAMETRES,REPONSES) - - #on verifie que l'on a autant de réponses que de résultats expérimentaux - texte = texte + compare__dim_rep__dim_RESU_EXP(REPONSES,RESU_EXP) - #on verifie que l'on a autant de poids que de résultats expérimentaux - texte = texte + compare__dim_poids__dim_RESU_EXP(POIDS,RESU_EXP) - - #on verifie les types des arguments de chaque sous liste de PARAMETRES et REPONSES - #verification du type stringet type float des arguments de PARAMETRES - for i in range(len(PARAMETRES)): - texte = texte + erreur_de_type(1,PARAMETRES[i][0]) - for k in [1,2,3]: - texte = texte + erreur_de_type(2,PARAMETRES[i][k]) - - #verification du type string pour les arguments de REPONSES - for i in range(len(REPONSES)): - for j in range(len(REPONSES[i])): - texte = texte + erreur_de_type(1,REPONSES[i][j]) - - #verification du fichier de commndes ASTER - texte = texte + verif_fichier(UL,PARAMETRES,REPONSES) - - #verifiaction des valeurs des PARAMETRES entrées par l'utilisteur - texte = texte + verif_valeurs_des_PARAMETRES(PARAMETRES) - - #verifiaction des unités logiques renseignées par l'utilisateur - texte = texte + verif_UNITE(GRAPHIQUE,UNITE_RESU) - - return texte - - diff --git a/Aster/Cata/cataSTA81/Macro/stanley_ops.py b/Aster/Cata/cataSTA81/Macro/stanley_ops.py deleted file mode 100644 index b159c615..00000000 --- a/Aster/Cata/cataSTA81/Macro/stanley_ops.py +++ /dev/null @@ -1,75 +0,0 @@ -#@ MODIF stanley_ops Macro DATE 08/11/2005 AUTEUR ASSIRE A.ASSIRE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - - -def stanley_ops(self,RESULTAT,MODELE,CHAM_MATER,CARA_ELEM,DISPLAY,**args): - - """ - Importation et lancement de Stanley - """ - - import os,string - import aster - from Accas import _F - from Noyau.N_utils import AsType - from Utilitai.Utmess import UTMESS - - ier=0 - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # Redefinition eventuelle du DISPLAY - if DISPLAY: - UTMESS('I','STANLEY', 'Redefinition du DISPLAY vers : ' + DISPLAY) - os.environ['DISPLAY'] = DISPLAY - - # On ne lance Stanley que si la variable DISPLAY est définie - if os.environ.has_key('DISPLAY'): - - import Stanley - from Stanley import stanley - - if (RESULTAT and MODELE and CHAM_MATER): - _MAIL = aster.getvectjev( string.ljust(MODELE.nom,8) + '.MODELE .NOMA ' ) - _MAIL = string.strip(_MAIL[0]) - MAILLAGE = self.jdc.g_context[_MAIL] - if CARA_ELEM: - stanley.STANLEY(RESULTAT,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM) - else: - stanley.STANLEY(RESULTAT,MAILLAGE,MODELE,CHAM_MATER,None) - else: - stanley.PRE_STANLEY() - - else: - UTMESS('A','STANLEY', - """Aucune variable d'environnement DISPLAY définie ! - STANLEY ne pourra pas fonctionner. On l'ignore. - - Si vous etes en Interactif, cochez le bouton Suivi Interactif - dans ASTK. - - Vous pouvez également préciser votre DISPLAY dans les arguments - de la commande STANLEY : - - STANLEY(DISPLAY='adresse_ip:0.0');""") - - return ier diff --git a/Aster/Cata/cataSTA81/Macro/test_fichier_ops.py b/Aster/Cata/cataSTA81/Macro/test_fichier_ops.py deleted file mode 100644 index 13487d1f..00000000 --- a/Aster/Cata/cataSTA81/Macro/test_fichier_ops.py +++ /dev/null @@ -1,245 +0,0 @@ -#@ MODIF test_fichier_ops Macro DATE 19/09/2005 AUTEUR MCOURTOI M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -import sys -import os.path -import re -import string -import math -import md5 - -#------------------------------------------------------------------------------- -def test_fichier_ops(self, UNITE, FICHIER, NB_CHIFFRE, EPSILON, VALE_K, INFO, **args): - """ - Macro TEST_FICHIER permettant de tester la non-regression d'un fichier - 'a une tolerance' pres pour les nombres reels en calculant - le md5sum. - """ - import aster - from Accas import _F - ier=0 - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # On importe les definitions des commandes a utiliser dans la macro - # Le nom de la variable doit etre obligatoirement le nom de la commande - INFO_EXEC_ASTER = self.get_cmd('INFO_EXEC_ASTER') - DETRUIRE = self.get_cmd('DETRUIRE') - CREA_TABLE = self.get_cmd('CREA_TABLE') - TEST_TABLE = self.get_cmd('TEST_TABLE') - - import os.path - import re - from types import StringType - - import aster - from Macro.test_fichier_ops import md5file - from Utilitai.Utmess import UTMESS - - # vérifie la syntaxe des expressions régulières fournies - l_regexp=[] - if args['EXPR_IGNORE']: - if type(args['EXPR_IGNORE']) is StringType: - lexp = [args['EXPR_IGNORE']] - else: - lexp = args['EXPR_IGNORE'] - for exp in lexp: - try: - obj=re.compile(exp) - except re.error, s: - UTMESS('F', 'TEST_FICHIER', - ' %s pour %s' % (str(s), repr(exp))) - else: - l_regexp.append(exp) - if len(l_regexp) < len(lexp): - self.cr.fatal(' Expression régulière invalide (voir )') - - - is_ok=0 - - # vérifier que le fichier a été fermé - tinfo__ = INFO_EXEC_ASTER(LISTE_INFO='ETAT_UNITE', FICHIER=FICHIER) - - if tinfo__['ETAT_UNITE',1].find('OUVERT')>-1: - UTMESS('A', 'TEST_FICHIER', - "LE FICHIER N'A PAS ETE FERME :\n%s" % FICHIER) - - # fichier correctement fermé - else: - # calcule le md5sum du fichier - ier, mdsum = md5file(FICHIER, NB_CHIFFRE, EPSILON, l_regexp, INFO) - if ier != 0: - if ier==4: - texte_erreur='Fichier inexistant : '+FICHIER - else: - texte_erreur='Erreur dans md5file, code retour = '+str(ier) - texte_erreur=' '+texte_erreur - # aujourd'hui, je ne sais pas déclencher autre chose que ... - self.cr.fatal(texte_erreur) - return ier - - # comparaison a la reference - if INFO > 0 : - aster.affiche('MESSAGE',' %-20s : %32s\n' % ('REFERENCE',VALE_K)) - - if mdsum == VALE_K: - is_ok=1 - - # produit le TEST_TABLE - tab1__=CREA_TABLE(LISTE=(_F(PARA='TEST', - TYPE_K='K8', - LISTE_K='VALEUR ',), - _F(PARA='BOOLEEN', - LISTE_I=is_ok,),),) - if args['REFERENCE'] == 'NON_REGRESSION': - TEST_TABLE(UNITE=UNITE, - TABLE=tab1__, - FILTRE=_F(NOM_PARA='TEST', - VALE_K='VALEUR ',), - NOM_PARA='BOOLEEN', - VALE_I=1, - PRECISION=1.e-3, - CRITERE='ABSOLU', - REFERENCE=args['REFERENCE'], - VERSION=args['VERSION'],) - else: - TEST_TABLE(UNITE=UNITE, - TABLE=tab1__, - FILTRE=_F(NOM_PARA='TEST', - VALE_K='VALEUR ',), - NOM_PARA='BOOLEEN', - VALE_I=1, - PRECISION=1.e-3, - CRITERE='ABSOLU', - REFERENCE=args['REFERENCE'],) - - DETRUIRE(CONCEPT=_F(NOM=('tinfo__','tab1__'),), - ALARME='NON',INFO=1,) - return ier - - -#------------------------------------------------------------------------------- -def md5file(fich, nbch, epsi, regexp_ignore=[], info=0, output=None): - """ - Cette methode retourne le md5sum d'un fichier en arrondissant les nombres - reels a la valeur significative. - IN : - fich : nom du fichier - nbch : nombre de decimales significatives - epsi : valeur en deca de laquelle on prend 0 - regexp_ignore : liste d'expressions régulières permettant d'ignorer - certaines lignes - output : pour rediriger l'interprétation du fichier (INFO=2) - dans le fichier de nom `output`. - OUT : - code retour : 0 si ok, >0 sinon - md5sum - - NE PAS AJOUTER D'IMPORT QUI RENDRAIT CETTE FONCTION - INUTILISABLE EN DEHORS DE CODE_ASTER. - """ - if output<>None: - try: - sys.stdout=open(output, 'w') - except IOError, msg: - print "Erreur d'écriture sur %s : %s" % (fout, msg) - - # 1 Mo 10 Mo 100 Mo - # v0 2.6 s 20.4 s 196.6 s - # v1 2.0 s 10.3 s 94.9 s (pas de distinction entier/reel) - # remplacer le try/except par if re.search(...), 80% plus lent - if not os.path.isfile(fich): - return 4, '' - f=open(fich,'r') - format_float='%'+str(nbch+7)+'.'+str(nbch)+'g' - m=md5.new() - i=0 - for ligne in f: - i=i+1 - if info>=2: - print 'LIGNE',i, - keep=True - for exp in regexp_ignore: - if re.search(exp,ligne): - keep=False - if info>=2: - print ' >>>>>>>>>> IGNOREE <<<<<<<<<<', - break - if keep: - # découpe des nombres collés : 1.34E-142-1.233D+09 - ligne=re.sub('([0-9]+)\-','\g<1> -',ligne) - # conversion des DOUBLE fortran en 'E' - ligne=re.sub('([0-9]+)[dD]([\-\+]{0,1}[0-9]+)','\g<1>E\g<2>',ligne) - r=string.split(ligne) - for x in r: - try: - if abs(float(x))=2: - print (' %'+str(nbch+7)+'s') % s, - m.update(s) - if info>=2: - print - f.close() - md5sum=m.hexdigest() - - affich_resu=True - if info>=1: - while affich_resu: - form=' %-20s : %32s' - print form % ('Fichier',fich) - print form % ('Nombre de lignes',str(i)) - print form % ('Format des reels',format_float) - print form % ('Epsilon',str(epsi)) - print form % ('md5sum',md5sum) - if output==None: - affich_resu=False - else: - sys.stdout=sys.__stdout__ - output=None - return 0, md5sum - - -#------------------------------------------------------------------------------- -if __name__ == '__main__': - from optparse import OptionParser, OptionGroup - - p=OptionParser(usage='usage: %s a_tester [options]' % sys.argv[0]) - p.add_option('-n', '--nbch', - action='store', dest='nbch', type='int', default=6, - help='nombre de chiffres significatifs') - p.add_option('-e', '--epsilon', - action='store', dest='epsi', type='float', default=1.e-14, - help='epsilon en dessous duquel on considère les nombres nuls') - p.add_option('-o', '--output', - action='store', dest='output', type='string', default='output.txt', - help='fichier de sortie') - opts, args = p.parse_args() - - if len(args)<1: - p.print_usage() - sys.exit(1) - - print 'Lignes retenues dans %s' % opts.output - iret = md5file(args[0], opts.nbch, opts.epsi, info=2, output=opts.output) diff --git a/Aster/Cata/cataSTA81/__init__.py b/Aster/Cata/cataSTA81/__init__.py deleted file mode 100644 index 6ee2cdeb..00000000 --- a/Aster/Cata/cataSTA81/__init__.py +++ /dev/null @@ -1,6 +0,0 @@ -import os,sys -import prefs -import sys -rep_macro = os.path.join(prefs.REPINI,'Cata/cataSTA81') -sys.path.insert(0,rep_macro) -from cata import * diff --git a/Aster/Cata/cataSTA81/cata.py b/Aster/Cata/cataSTA81/cata.py deleted file mode 100755 index caa1ac56..00000000 --- a/Aster/Cata/cataSTA81/cata.py +++ /dev/null @@ -1,23862 +0,0 @@ -#& MODIF ENTETE DATE 08/11/2005 AUTEUR CIBHHLV L.VIVAN -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -import Accas -from Accas import * -from Accas import _F -import string -import types -import Numeric -from math import sin,cos,tan,asin,acos,atan2,atan,sinh,cosh,tanh,exp,log,log10 -from math import sqrt,pi -import ops - -try: - import aster -except: - pass - -# -__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): - def __init__(self,valeur=None,**args): - ASSD.__init__(self,**args) - self.valeur=valeur - -# 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 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 compor_sdaster (ASSD):pass -class courbe_sdaster (ASSD):pass -class fiss_xfem (ASSD):pass -class fond_fiss (ASSD):pass -class interf_dyna_clas(ASSD):pass -class interspfact (ASSD):pass -class listis_sdaster (ASSD):pass -class mater_sdaster (ASSD):pass -class melasflu_sdaster(ASSD):pass -class nume_ddl_sdaster(ASSD):pass -class nume_ddl_gene (ASSD):pass -class obstacle_sdaster(ASSD):pass -class sd_feti_sdaster (ASSD):pass -class spectre_sdaster (ASSD):pass -class surface_sdaster (ASSD):pass -class tran_gene (ASSD):pass -class type_flui_stru (ASSD):pass - -# modeles : -#-------------------------------- -class modele_sdaster (ASSD):pass -class modele_gene (ASSD): - def LIST_SOUS_STRUCT(self) : - """ retourne la liste des sous structures du modele generalise - la liste des macro-elements sous-jacents""" - nommodgen=self.get_name() - ncham=nommodgen+(8-len(nommodgen))*' ' - ssno=aster.getvectjev(ncham+(14-len(ncham))*' '+'.MODG.SSNO') - ssme=aster.getcolljev(ncham+(14-len(ncham))*' '+'.MODG.SSME') - return [([ssno[ind], ssme[ind+1]]) for ind in range(len(ssno))] - def LIST_LIAIS_STRUCT(self) : - """ retourne la liste des liaisons entre sous structures du modele generalise sous la forme : - [ (ss1, nom_liais1, ss2 , nom_liais2), ...] """ - nommodgen=self.get_name() - ncham=nommodgen+(8-len(nommodgen))*' ' - lidf=aster.getcolljev(ncham+(14-len(ncham))*' '+'.MODG.LIDF') - return [([(lidf[ind][indb]) for indb in range(4)]) for ind in lidf] - - -# macro-elements : -#-------------------------------- -class macr_elem_dyna (ASSD): - def NBRE_MODES(self) : - """ retourne le nombre de modes total, dynamiques et d'interface """ - nommacr=self.get_name() - ncham=nommacr+(8-len(nommacr))*' ' - ncham=nommacr+(8-len(nommacr))*' '+'.MAEL' - nombase=aster.getvectjev(ncham+'_REFE')[0] - nbmode=Numeric.array(aster.getvectjev(nombase[0:8]+(19-len(nombase[0:8]))*' '+'.UTIL')) - nbmodtot=nbmode[1] - nbmoddyn=nbmode[2] - nbmodint=nbmode[3] - return [nbmodtot,nbmoddyn,nbmodint] - - def EXTR_MATR_GENE(self,typmat) : - """ retourne les valeurs des matrices generalisees reelles - dans un format Numerical Array - typmat='MASS_GENE' pour obtenir la matrice de masse generalisee - typmat='RIGI_GENE' pour obtenir la matrice de raideur generalisee - typmat='AMOR_GENE' pour obtenir la matrice d'amortissement generalisee - Attributs retourne - - self.valeurs : Numeric.array contenant les valeurs """ - - nommacr=self.get_name() - if (typmat=='MASS_GENE') : - ext='.MAEL_MASS' - elif (typmat=='RIGI_GENE') : - ext='.MAEL_RAID' - elif (typmat=='AMOR_GENE') : - ext='.MAEL_AMOR' - else: - raise Accas.AsException("Le type de la matrice est incorrect") - ncham=nommacr+(8-len(nommacr))*' '+ext - print ncham - desc=Numeric.array(aster.getvectjev(ncham+'_DESC')) - -# On teste si le DESC du vecteur existe - if (desc==None): - raise Accas.AsException("L'objet matrice n'existe pas ou \ - est mal cree par Code Aster") - - tmp=Numeric.array(aster.getvectjev(ncham+'_VALE')) - matrice=Numeric.zeros([desc[1],desc[1]],Numeric.Float) - for j in range(desc[1]+1): - for i in range(j): - k=j*(j-1)/2+i - matrice[j-1,i]=tmp[k] - matrice=(matrice+Numeric.transpose(matrice)) - for i in range(desc[1]): - matrice[i,i]=0.5*matrice[i,i] - return matrice - - def RECU_MATR_GENE(self,typmat,matrice) : - """ envoie les valeurs d'un Numerical Array dans des matrices generalisees - reelles definies dans jeveux - typmat='MASS_GENE' pour obtenir la matrice de masse generalisee - typmat='RIGI_GENE' pour obtenir la matrice de raideur generalisee - typmat='AMOR_GENE' pour obtenir la matrice d'amortissement generalisee - Attributs ne retourne rien """ - from Utilitai.Utmess import UTMESS - -# avertissement generique - UTMESS('A','RECU_MATR_GENE',' ATTENTION, VOUS ALLEZ ECRASER DES CONCEPTS EXISTANTS') - - nommacr=self.get_name() - if (typmat=='MASS_GENE') : - ext='.MAEL_MASS' - elif (typmat=='RIGI_GENE') : - ext='.MAEL_RAID' - elif (typmat=='AMOR_GENE') : - ext='.MAEL_AMOR' - else: - raise Accas.AsException("Le type de la matrice \ - est incorrect") - ncham=nommacr+(8-len(nommacr))*' '+ext - desc=Numeric.array(aster.getvectjev(ncham+'_DESC')) - -# On teste si le DESC de la matrice jeveux existe - if (desc==None): - raise Accas.AsException("L'objet matrice n'existe pas ou \ - est mal cree par Code Aster") - Numeric.asarray(matrice) - -# On teste si la matrice python est de dimension 2 - if (len(Numeric.shape(matrice))<>2): - raise Accas.AsException("La dimension de la matrice \ - est incorrecte") - -# On teste si les tailles de la matrice jeveux et python sont identiques - if (tuple([desc[1],desc[1]])<>Numeric.shape(matrice)) : - raise Accas.AsException("La dimension de la matrice \ - est incorrecte") - taille=desc[1]*desc[1]/2.0+desc[1]/2.0 - tmp=Numeric.zeros([int(taille)],Numeric.Float) - for j in range(desc[1]+1): - for i in range(j): - k=j*(j-1)/2+i - tmp[k]=matrice[j-1,i] - aster.putvectjev(ncham+'_VALE',len(tmp),tuple(( - range(1,len(tmp)+1))),tuple(tmp),tuple(tmp),1) - return - - -class macr_elem_stat (ASSD):pass - - -# liste : -#-------------------------------- -class listr8_sdaster (ASSD): - def Valeurs(self) : - """ - Retourne la liste des valeurs : [val1, ..., valN] - """ - vale=string.ljust(self.get_name(),19)+'.VALE' - return list(aster.getvectjev(vale)) - - -# post-traitement : -#-------------------------------- -class post_comp_cham_el : - def __init__(self,valeurs,maille=None,point=None,sous_point=None) : - self.valeurs=valeurs - self.maille=maille - self.point=point - self.sous_point=sous_point - -class post_comp_cham_no : - def __init__(self,valeurs,noeud=None) : - self.valeurs=valeurs - self.noeud=noeud - -# maillage : -#-------------------------------- -class maillage_sdaster(ASSD): - def LIST_GROUP_NO(self) : - """ retourne la liste des groupes de noeuds sous la forme : - [ (gno1, nb noeuds gno1), ...] """ - nommail=self.get_name() - dic_gpno=aster.getcolljev(nommail.ljust(8)+".GROUPENO") - return [(gpno.strip(),len(dic_gpno[gpno])) for gpno in dic_gpno] - def LIST_GROUP_MA(self) : - """ retourne la liste des groupes de mailles sous la forme : - [ (gma1, nb mailles gma1, dime max des mailles gma1), ...] """ - nommail=self.get_name() - nommail=nommail.ljust(8) - ngpma=[] - ltyma =aster.getvectjev("&CATA.TM.NOMTM") - catama=aster.getcolljev("&CATA.TM.TMDIM") - dic_gpma=aster.getcolljev(nommail+".GROUPEMA") - dimama=[catama[ltyma[ma-1]][0] for ma in aster.getvectjev(nommail+".TYPMAIL")] - for grp in dic_gpma.keys(): - dim=max([dimama[ma-1] for ma in dic_gpma[grp]]) - ngpma.append((grp.strip(),len(dic_gpma[grp]),dim)) - return ngpma - - -class squelette (maillage_sdaster):pass - - -# cham_gd_sdaster (carte_sdaster,cham_no_sdaster,cham_elem_sdaster) -#-------------------------------- - -class cham_gd_sdaster(ASSD):pass - -# cham_gd_sdaster/carte_sdaster : -#-------------------------------- -class carte_sdaster (cham_gd_sdaster):pass -class carte_dbel_r (carte_sdaster):pass -class carte_depl_c (carte_sdaster):pass -class carte_depl_f (carte_sdaster):pass -class carte_depl_r (carte_sdaster):pass -class carte_durt_r (carte_sdaster):pass -class carte_ener_r (carte_sdaster):pass -class carte_epsi_c (carte_sdaster):pass -class carte_epsi_r (carte_sdaster):pass -class carte_erreur (carte_sdaster):pass -class carte_flux_r (carte_sdaster):pass -class carte_g_depl_r (carte_sdaster):pass -class carte_geom_r (carte_sdaster):pass -class carte_hydr_r (carte_sdaster):pass -class carte_inst_r (carte_sdaster):pass -class carte_inte_r (carte_sdaster):pass -class carte_irra_r (carte_sdaster):pass -class carte_neut_f (carte_sdaster):pass -class carte_neut_r (carte_sdaster):pass -class carte_pres_f (carte_sdaster):pass -class carte_pres_r (carte_sdaster):pass -class carte_sief_c (carte_sdaster):pass -class carte_sief_r (carte_sdaster):pass -class carte_sour_r (carte_sdaster):pass -class carte_temp_f (carte_sdaster):pass -class carte_temp_r (carte_sdaster):pass -class carte_var2_r (carte_sdaster):pass -class carte_vnor_c (carte_sdaster):pass -class carte_corr_r (carte_sdaster):pass - - -# cham_gd_sdaster/cham_elem_sdaster : -#-------------------------------- -class cham_elem_sdaster(cham_gd_sdaster): - - def EXTR_COMP(self,comp,lgma,topo=0) : - """ retourne les valeurs de la composante comp du champ sur la liste - de groupes de mailles lgma avec eventuellement l'info de la - topologie si topo>0. Si lgma est une liste vide, c'est equivalent - a un TOUT='OUI' dans les commandes aster - Attributs retourne - - self.valeurs : Numeric.array contenant les valeurs - Si on a demande la topo : - - self.maille : numero de mailles - - self.point : numero du point dans la maille - - self.sous_point : numero du sous point dans la maille """ - - - ncham=self.get_name() - ncham=ncham+(8-len(ncham))*' ' - nchams=ncham[0:7]+'S' - ncmp=comp+(8-len(comp))*' ' - - aster.prepcompcham(ncham,nchams,ncmp,"EL ",topo,lgma) - - valeurs=Numeric.array(aster.getvectjev(nchams+(19-len(ncham))*' '+'.V')) - - if (topo>0) : - maille=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.M')) - point=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.P')) - sous_point=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.SP')) - else : - maille=None - point=None - sous_point=None - - aster.prepcompcham("__DETR__",nchams,ncmp,"EL ",topo,lgma) - - return post_comp_cham_el(valeurs,maille,point,sous_point) - -class cham_elem_crit_r(cham_elem_sdaster):pass -class cham_elem_dbel_r(cham_elem_sdaster):pass -class cham_elem_depl_c(cham_elem_sdaster):pass -class cham_elem_depl_f(cham_elem_sdaster):pass -class cham_elem_depl_r(cham_elem_sdaster):pass -class cham_elem_dommag(cham_elem_sdaster):pass -class cham_elem_durt_r(cham_elem_sdaster):pass -class cham_elem_ener_r(cham_elem_sdaster):pass -class cham_elem_epsi_c(cham_elem_sdaster):pass -class cham_elem_epsi_r(cham_elem_sdaster):pass -class cham_elem_erreur(cham_elem_sdaster):pass -class cham_elem_facy_r(cham_elem_sdaster):pass -class cham_elem_flux_r(cham_elem_sdaster):pass -class cham_elem_g_depl(cham_elem_sdaster):pass -class cham_elem_geom_r(cham_elem_sdaster):pass -class cham_elem_hydr_r(cham_elem_sdaster):pass -class cham_elem_inst_r(cham_elem_sdaster):pass -class cham_elem_inte_r(cham_elem_sdaster):pass -class cham_elem_irra_r(cham_elem_sdaster):pass -class cham_elem_neut_f(cham_elem_sdaster):pass -class cham_elem_neut_r(cham_elem_sdaster):pass -class cham_elem_pres_f(cham_elem_sdaster):pass -class cham_elem_pres_r(cham_elem_sdaster):pass -class cham_elem_sief_c(cham_elem_sdaster):pass -class cham_elem_sief_r(cham_elem_sdaster):pass -class cham_elem_sour_r(cham_elem_sdaster):pass -class cham_elem_spma_r(cham_elem_sdaster):pass -class cham_elem_temp_f(cham_elem_sdaster):pass -class cham_elem_temp_r(cham_elem_sdaster):pass -class cham_elem_vari_r(cham_elem_sdaster):pass -class cham_elem_vnor_c(cham_elem_sdaster):pass - - -# cham_gd/cham_no : -#-------------------------------- -class cham_no_sdaster(cham_gd_sdaster): - - def EXTR_COMP(self,comp,lgno,topo=0) : - """ retourne les valeurs de la composante comp du champ sur la liste - de groupes de noeuds lgno avec eventuellement l'info de la - topologie si topo>0. Si lgno est une liste vide, c'est equivalent - a un TOUT='OUI' dans les commandes aster - Attributs retourne - - self.valeurs : Numeric.array contenant les valeurs - Si on a demande la topo (i.e. self.topo = 1) : - - self.noeud : numero de noeud """ - - - ncham=self.get_name() - ncham=ncham+(8-len(ncham))*' ' - nchams=ncham[0:7]+'S' - ncmp=comp+(8-len(comp))*' ' - - aster.prepcompcham(ncham,nchams,ncmp,"NO ",topo,lgno) - - valeurs=Numeric.array(aster.getvectjev(nchams+(19-len(ncham))*' '+'.V')) - - if (topo>0) : - noeud=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.N')) - else : - noeud=None - - aster.prepcompcham("__DETR__",nchams,ncmp,"NO ",topo,lgno) - - return post_comp_cham_no(valeurs,noeud) - -class cham_no_corr_r (cham_no_sdaster):pass -class cham_no_dbel_r (cham_no_sdaster):pass -class cham_no_depl_c (cham_no_sdaster):pass -class cham_no_depl_f (cham_no_sdaster):pass -class cham_no_depl_r (cham_no_sdaster):pass -class cham_no_durt_r (cham_no_sdaster):pass -class cham_no_ener_r (cham_no_sdaster):pass -class cham_no_epsi_c (cham_no_sdaster):pass -class cham_no_epsi_r (cham_no_sdaster):pass -class cham_no_erreur (cham_no_sdaster):pass -class cham_no_facy_r (cham_no_sdaster):pass -class cham_no_flux_r (cham_no_sdaster):pass -class cham_no_g_depl_r (cham_no_sdaster):pass -class cham_no_geom_r (cham_no_sdaster):pass -class cham_no_hydr_r (cham_no_sdaster):pass -class cham_no_inst_r (cham_no_sdaster):pass -class cham_no_inte_r (cham_no_sdaster):pass -class cham_no_irra_r (cham_no_sdaster):pass -class cham_no_neut_f (cham_no_sdaster):pass -class cham_no_neut_r (cham_no_sdaster):pass -class cham_no_pres_c (cham_no_sdaster):pass -class cham_no_pres_f (cham_no_sdaster):pass -class cham_no_pres_r (cham_no_sdaster):pass -class cham_no_sief_c (cham_no_sdaster):pass -class cham_no_sief_r (cham_no_sdaster):pass -class cham_no_sour_r (cham_no_sdaster):pass -class cham_no_spma_r (cham_no_sdaster):pass -class cham_no_temp_c (cham_no_sdaster):pass -class cham_no_temp_f (cham_no_sdaster):pass -class cham_no_temp_r (cham_no_sdaster):pass -class cham_no_vanl_r (cham_no_sdaster):pass -class cham_no_var2_r (cham_no_sdaster):pass -class cham_no_vnor_c (cham_no_sdaster):pass - - -# resultat_sdaster : (evol_sdaster,mode_stat,mode_meca) -#-------------------------------------- - -class resultat_sdaster(ASSD): - def LIST_CHAMPS (self) : - return aster.GetResu(self.get_name(), "CHAMPS") - def LIST_NOM_CMP (self) : - return aster.GetResu(self.get_name(), "COMPOSANTES") - def LIST_VARI_ACCES (self) : - return aster.GetResu(self.get_name(), "VARI_ACCES") - def LIST_PARA (self) : - return aster.GetResu(self.get_name(), "PARAMETRES") - -class acou_harmo (resultat_sdaster):pass -class base_modale (resultat_sdaster):pass -class comb_fourier (resultat_sdaster):pass -class dyna_harmo (resultat_sdaster):pass -class dyna_trans (resultat_sdaster):pass -class fourier_elas (resultat_sdaster):pass -class harm_gene (resultat_sdaster):pass -class mode_acou (resultat_sdaster):pass -class mode_cycl (resultat_sdaster):pass -class mode_flamb (resultat_sdaster):pass -class mode_gene (resultat_sdaster):pass -class mult_elas (resultat_sdaster):pass -class theta_geom (resultat_sdaster):pass - -# resultat_sdaster/evol_sdaster : -#-------------------------------- -class evol_sdaster(resultat_sdaster):pass -class evol_char(evol_sdaster):pass -class evol_elas(evol_sdaster):pass -class evol_noli(evol_sdaster):pass -class evol_ther(evol_sdaster):pass -class evol_varc(evol_sdaster):pass - -# resultat_sdaster/mode_stat : -#-------------------------------- -class mode_stat(resultat_sdaster):pass -class mode_stat_depl(mode_stat):pass -class mode_stat_acce(mode_stat):pass -class mode_stat_forc(mode_stat):pass - - -# resultat_sdaster/mode_meca : -#-------------------------------- -class mode_meca(resultat_sdaster):pass -class mode_meca_c(mode_meca):pass - - -# types 'fonction' : -#-------------------------------- -class fonction_class(ASSD): - def Valeurs(self):pass - def Parametres(self): - """ - Retourne un dictionnaire contenant les parametres de la fonction ; - le type jeveux (FONCTION, FONCT_C, NAPPE) n'est pas retourne, - le dictionnaire peut ainsi etre fourni a CALC_FONC_INTERP tel quel. - """ - if hasattr(self,'etape') and self.etape.nom=='DEFI_FONCTION' : - dico={ - 'INTERPOL' : self.etape['INTERPOL'], - 'NOM_PARA' : self.etape['NOM_PARA'], - 'NOM_RESU' : self.etape['NOM_RESU'], - 'PROL_DROITE' : self.etape['PROL_DROITE'], - 'PROL_GAUCHE' : self.etape['PROL_GAUCHE'], - } - if type(dico['INTERPOL'])==types.TupleType : - dico['INTERPOL']=list(dico['INTERPOL']) - elif type(dico['INTERPOL'])==types.StringType : - dico['INTERPOL']=[dico['INTERPOL'],] - if len(dico['INTERPOL'])==1 : - dico['INTERPOL']=dico['INTERPOL']*2 - else : - TypeProl={'E':'EXCLU', 'L':'LINEAIRE', 'C':'CONSTANT' } - prol=aster.getvectjev(string.ljust(self.get_name(),19)+'.PROL') - dico={ - 'INTERPOL' : [prol[1][0:3],prol[1][4:7]], - 'NOM_PARA' : string.strip(prol[2][0:16]), - 'NOM_RESU' : string.strip(prol[3][0:16]), - 'PROL_DROITE' : TypeProl[prol[4][1]], - 'PROL_GAUCHE' : TypeProl[prol[4][0]], - } - return dico - def Trace(self,FORMAT='TABLEAU',**kargs): - """Tracé d'une fonction""" - from Utilitai.Graph import Graph - gr=Graph() - gr.AjoutCourbe(Val=self.Valeurs(), - Lab=[self.Parametres()['NOM_PARA'],self.Parametres()['NOM_RESU']]) - gr.Trace(FORMAT=FORMAT,**kargs) -class fonction_sdaster(fonction_class): - def convert(self,arg='real'): - """ - Retourne un objet de la classe t_fonction - représentation python de la fonction - """ - from Utilitai.t_fonction import t_fonction,t_fonction_c - if arg=='real' : - return t_fonction(self.Absc(), - self.Ordo(), - self.Parametres()) - elif arg=='complex' : - return t_fonction_c(self.Absc(), - self.Ordo(), - self.Parametres()) - def Valeurs(self) : - """ - Retourne deux listes de valeurs : abscisses et ordonnees - """ - if hasattr(self,'etape') and self.etape.nom=='DEFI_FONCTION' : - if self.etape['VALE']!=None: - lbl=list(self.etape['VALE']) - dim=len(lbl) - lx=[lbl[i] for i in range(0,dim,2)] - ly=[lbl[i] for i in range(1,dim,2)] - return [lx,ly] - elif self.etape['VALE_PARA']!=None: - return [self.etape['VALE_PARA'].Valeurs(),self.etape['VALE_FONC'].Valeurs()] - else : - vale=string.ljust(self.get_name(),19)+'.VALE' - lbl=list(aster.getvectjev(vale)) - dim=len(lbl)/2 - lx=lbl[0:dim] - ly=lbl[dim:2*dim] - return [lx,ly] - def Absc(self): - """Retourne la liste des abscisses""" - return self.Valeurs()[0] - def Ordo(self): - """Retourne la liste des ordonnées""" - return self.Valeurs()[1] - def __call__(self,val): - ### Pour EFICAS : substitution de l'instance de classe - ### parametre par sa valeur - if type(val)==types.InstanceType : val=val.valeur - ### - __ff=self.convert() - return __ff(val) -class para_sensi(fonction_sdaster): pass -class fonction_c(fonction_class): - def convert(self,arg='real'): - """ - Retourne un objet de la classe t_fonction ou t_fonction_c, - représentation python de la fonction complexe - """ - from Utilitai.t_fonction import t_fonction,t_fonction_c - if arg=='real' : - return t_fonction(self.Absc(), - self.Ordo(), - self.Parametres()) - elif arg=='imag' : - return t_fonction(self.Absc(), - self.OrdoImg(), - self.Parametres()) - elif arg=='modul' : - modul=Numeric.sqrt(Numeric.array(self.Ordo())**2+Numeric.array(self.OrdoImg())**2) - return t_fonction(self.Absc(), - modul, - self.Parametres()) - elif arg=='phase' : - phase=Numeric.arctan2(Numeric.array(self.OrdoImg()),Numeric.array(self.Ordo())) - phase=phase*180./pi - return t_fonction(self.Absc(), - phase, - self.Parametres()) - elif arg=='complex' : - return t_fonction_c(self.Absc(), - map(complex,self.Ordo(),self.OrdoImg()), - self.Parametres()) - def Valeurs(self) : - """ - Retourne trois listes de valeurs : abscisses, parties reelles et imaginaires. - """ - if self.etape.nom=='DEFI_FONCTION' : - lbl=list(self.etape['VALE_C']) - dim=len(lbl) - lx=[lbl[i] for i in range(0,dim,3)] - lr=[lbl[i] for i in range(1,dim,3)] - li=[lbl[i] for i in range(2,dim,3)] - return [lx,lr,li] - else : - vale=string.ljust(self.get_name(),19)+'.VALE' - lbl=list(aster.getvectjev(vale)) - dim=len(lbl)/3 - lx=lbl[0:dim] - lr=[] - li=[] - for i in range(dim): - lr.append(lbl[dim+2*i]) - li.append(lbl[dim+2*i+1]) - return [lx,lr,li] - def Absc(self): - """Retourne la liste des abscisses""" - return self.Valeurs()[0] - def Ordo(self): - """Retourne la liste des parties réelles des ordonnées""" - return self.Valeurs()[1] - def OrdoImg(self): - """Retourne la liste des parties imaginaires des ordonnées""" - return self.Valeurs()[2] - def Trace(self,FORMAT='TABLEAU',**kargs): - """Tracé d'une fonction complexe""" - from Utilitai.Graph import Graph - gr=Graph() - gr.AjoutCourbe(Val=self.Valeurs(), - Lab=[self.Parametres()['NOM_PARA'],self.Parametres()['NOM_RESU'],'IMAG']) - gr.Trace(FORMAT=FORMAT,**kargs) - def __call__(self,val): - ### Pour EFICAS : substitution de l'instance de classe - ### parametre par sa valeur - import types - if type(val)==types.InstanceType : val=val.valeur - ### - __ff=convert(self) - return __ff(val) -class nappe_sdaster(fonction_class): - def convert(self): - """ - Retourne un objet de la classe t_nappe, représentation python de la nappe - """ - from Utilitai.t_fonction import t_fonction,t_nappe - para=self.Parametres() - vale=self.Valeurs() - l_fonc=[] - i=0 - for pf in para[1] : - para_f={'INTERPOL' : pf['INTERPOL_FONC'], - 'PROL_DROITE' : pf['PROL_DROITE_FONC'], - 'PROL_GAUCHE' : pf['PROL_GAUCHE_FONC'], - 'NOM_PARA' : para[0]['NOM_PARA_FONC'], - 'NOM_RESU' : para[0]['NOM_RESU'], - } - l_fonc.append(t_fonction(vale[1][i][0],vale[1][i][1],para_f)) - i+=1 - return t_nappe(vale[0], - l_fonc, - para[0]) - def Valeurs(self): - """ - Retourne la liste des valeurs du parametre, - et une liste de couples (abscisses,ordonnees) de chaque fonction. - """ - nsd=string.ljust(self.get_name(),19) - dicv=aster.getcolljev(nsd+'.VALE') - # les cles de dicv sont 1,...,N (indice du parametre) - lpar=aster.getvectjev(nsd+'.PARA') - lval=[] - for k in range(len(dicv)): - lbl=dicv[k+1] - dim=len(lbl)/2 - lval.append([lbl[0:dim],lbl[dim:2*dim]]) - return [list(lpar),lval] - def Parametres(self): - """ - Retourne un dictionnaire contenant les parametres de la nappe, - le type jeveux (NAPPE) n'est pas retourne, - le dictionnaire peut ainsi etre fourni a CALC_FONC_INTERP tel quel, - et une liste de dictionnaire des parametres de chaque fonction. - """ - TypeProl={'E':'EXCLU', 'L':'LINEAIRE', 'C':'CONSTANT' } - prol=aster.getvectjev(string.ljust(self.get_name(),19)+'.PROL') - dico={ - 'INTERPOL' : [prol[1][0:3],prol[1][4:7]], - 'NOM_PARA' : string.strip(prol[2][0:16]), - 'NOM_RESU' : string.strip(prol[3][0:16]), - 'PROL_DROITE' : TypeProl[prol[4][1]], - 'PROL_GAUCHE' : TypeProl[prol[4][0]], - 'NOM_PARA_FONC' : string.strip(prol[5][0:4]), - } - lparf=[] - nbf=(len(prol)-6)/2 - for i in range(nbf): - dicf={ - 'INTERPOL_FONC' : [prol[6+i*2][0:3],prol[6+i*2][4:7]], - 'PROL_DROITE_FONC' : TypeProl[prol[7+i*2][1]], - 'PROL_GAUCHE_FONC' : TypeProl[prol[7+i*2][0]], - } - lparf.append(dicf) - return [dico,lparf] - def Absc(self): - """Retourne la liste des abscisses""" - return self.Valeurs()[0] - def Trace(self,FORMAT='TABLEAU',**kargs): - """Tracé d'une nappe""" - from Utilitai.Graph import Graph - gr=Graph() - lv=self.Valeurs()[1] - dp=self.Parametres()[0] - for lx,ly in lv: - gr.AjoutCourbe(Val=[lx,ly], Lab=[dp['NOM_PARA_FONC'],dp['NOM_RESU']]) - gr.Trace(FORMAT=FORMAT,**kargs) - -# matr_asse : -#-------------------------------- -class matr_asse(ASSD):pass -class matr_asse_gene(matr_asse):pass - -class matr_asse_gene_r(matr_asse_gene): - def EXTR_MATR_GENE(self) : - """ retourne les valeurs de la matrice generalisee reelle - dans un format Numerical Array - Attributs retourne - - self.valeurs : Numeric.array contenant les valeurs """ - - ncham=self.get_name() - ncham=ncham+(8-len(ncham))*' ' - desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC')) -# On teste si le DESC de la matrice existe - if (desc==None): - raise Accas.AsException("L'objet matrice n'existe pas ou \ - est mal cree par Code Aster") -# Si le stockage est plein - if desc[2]==2 : - tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALE')[1]) - valeur=Numeric.zeros([desc[1],desc[1]],Numeric.Float) - for j in range(desc[1]+1): - for i in range(j): - k=j*(j-1)/2+i - valeur[j-1,i]=tmp[k] - valeur=(valeur+Numeric.transpose(valeur)) - for i in range(desc[1]): - valeur[i,i]=0.5*valeur[i,i] -# Si le stockage est diagonal - elif desc[2]==1 : - tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALE')[1]) - valeur=Numeric.zeros([desc[1],desc[1]],Numeric.Float) - for i in range(desc[1]): - valeur[i,i]=tmp[i] -# Sinon on arrete tout - else: - raise KeyError - return valeur - - def RECU_MATR_GENE(self,matrice) : - """ envoie les valeurs d'un Numerical Array dans des matrices - generalisees reelles definies dans jeveux - Attributs ne retourne rien """ - from Utilitai.Utmess import UTMESS - -# avertissement generique - UTMESS('A','RECU_MATR_GENE',' ATTENTION, VOUS ALLEZ ECRASER DES CONCEPTS EXISTANTS') - - ncham=self.get_name() - ncham=ncham+(8-len(ncham))*' ' - desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC')) - -# On teste si le DESC de la matrice existe - if (desc==None): - raise Accas.AsException("L'objet matrice n'existe pas ou \ - est mal cree par Code Aster") - Numeric.asarray(matrice) - -# On teste si la dimension de la matrice python est 2 - if (len(Numeric.shape(matrice))<>2) : - raise Accas.AsException("La dimension de la matrice est incorrecte ") - -# On teste si les tailles des matrices jeveux et python sont identiques - if (tuple([desc[1],desc[1]])<>Numeric.shape(matrice)) : - raise Accas.AsException("La taille de la matrice est incorrecte ") - -# Si le stockage est plein - if desc[2]==2 : - taille=desc[1]*desc[1]/2.0+desc[1]/2.0 - tmp=Numeric.zeros([int(taille)],Numeric.Float) - for j in range(desc[1]+1): - for i in range(j): - k=j*(j-1)/2+i - tmp[k]=matrice[j-1,i] - aster.putcolljev(ncham+(19-len(ncham))*' '+'.VALE',len(tmp),tuple((\ - range(1,len(tmp)+1))),tuple(tmp),tuple(tmp),1) -# Si le stockage est diagonal - elif desc[2]==1 : - tmp=Numeric.zeros(desc[1],Numeric.Float) - for j in range(desc[1]): - tmp[j]=matrice[j,j] - aster.putcolljev(ncham+(19-len(ncham))*' '+'.VALE',len(tmp),tuple((\ - range(1,len(tmp)+1))),tuple(tmp),tuple(tmp),1) -# Sinon on arrete tout - else: - raise KeyError - return - - -class matr_asse_gene_c(matr_asse_gene): - def EXTR_MATR_GENE(self) : - """ retourne les valeurs de la matrice generalisee complexe - dans un format Numerical Array - Attributs retourne - - self.valeurs : Numeric.array contenant les valeurs """ - - ncham=self.get_name() - ncham=ncham+(8-len(ncham))*' ' - desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC')) - if (desc==None): - raise Accas.AsException("L'objet matrice n'existe pas ou \ - est mal cree par Code Aster ") -# Si le stockage est plein - if desc[2]==2 : - tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALE')[1]) - valeur=Numeric.zeros([desc[1],desc[1]],Numeric.Complex) - for j in range(desc[1]+1): - for i in range(j): - k=j*(j-1)/2+i - valeur[j-1,i]=tmp[k] - valeur=(valeur+Numeric.transpose(valeur)) - for i in range(desc[1]): - valeur[i,i]=0.5*valeur[i,i] -# Si le stockage est diagonal - elif desc[2]==1 : - tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALE')[1]) - valeur=Numeric.zeros([desc[1],desc[1]],Numeric.Complex) - for i in range(desc[1]): - valeur[i,i]=tmp[i] -# Sinon on arrete tout - else: - raise KeyError - return valeur - - def RECU_MATR_GENE(self,matrice) : - """ envoie les valeurs d'un Numerical Array dans des matrices - generalisees reelles definies dans jeveux - Attributs ne retourne rien """ - from Utilitai.Utmess import UTMESS - -# avertissement generique - UTMESS('A','RECU_MATR_GENE',' ATTENTION, VOUS ALLEZ ECRASER DES CONCEPTS EXISTANTS') - - Numeric.asarray(matrice) - ncham=self.get_name() - ncham=ncham+(8-len(ncham))*' ' - desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC')) - -# On teste si le DESC de la matrice existe - if (desc==None): - raise Accas.AsException("L'objet matrice n'existe pas ou \ - est mal cree par Code Aster") - Numeric.asarray(matrice) - -# On teste si la dimension de la matrice python est 2 - if (len(Numeric.shape(matrice))<>2) : - raise Accas.AsException("La dimension de la matrice est incorrecte ") - -# On teste si la taille de la matrice jeveux et python est identique - if (tuple([desc[1],desc[1]])<>Numeric.shape(matrice)) : - raise Accas.AsException("La taille de la matrice est incorrecte ") - -# Si le stockage est plein - if desc[2]==2 : - taille=desc[1]*desc[1]/2.0+desc[1]/2.0 - tmpr=Numeric.zeros([int(taille)],Numeric.Float) - tmpc=Numeric.zeros([int(taille)],Numeric.Float) - for j in range(desc[1]+1): - for i in range(j): - k=j*(j-1)/2+i - tmpr[k]=matrice[j-1,i].real - tmpc[k]=matrice[j-1,i].imag - aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALE',len(tmpr),tuple((\ - range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1) -# Si le stockage est diagonal - elif desc[2]==1 : - tmpr=Numeric.zeros(desc[1],Numeric.Float) - tmpc=Numeric.zeros(desc[1],Numeric.Float) - for j in range(desc[1]): - tmpr[j]=matrice[j,j].real - tmpc[j]=matrice[j,j].imag - aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALE',len(tmpr),tuple((\ - range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1) -# Sinon on arrete tout - else: - raise KeyError - return - - -class matr_asse_gd(matr_asse):pass -class matr_asse_depl_c(matr_asse_gd):pass -class matr_asse_depl_r(matr_asse_gd):pass -class matr_asse_pres_c(matr_asse_gd):pass -class matr_asse_pres_r(matr_asse_gd):pass -class matr_asse_temp_c(matr_asse_gd):pass -class matr_asse_temp_r(matr_asse_gd):pass - -# 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 : -#-------------------------------- -class table_sdaster(ASSD): - def __getitem__(self,key): - requete=string.ljust(key[0],24) - tblp=string.ljust(self.get_name(),19)+'.TBLP' - tabnom=list(aster.getvectjev(tblp)) - for i in range(len(tabnom)) : - if tabnom[i]==requete: break - resu=aster.getvectjev(tabnom[i+2]) - exist=aster.getvectjev(tabnom[i+3]) - if key[1]>len(resu) or exist[key[1]-1]==0: - raise KeyError - else: - return resu[key[1]-1] - def EXTR_TABLE(self) : - """Produit un objet Table à partir du contenu d'une table Aster - """ - def Nonefy(l1,l2) : - if l2==0 : return None - else : return l1 - from Utilitai.Table import Table - tblp=string.ljust(self.get_name(),19)+'.TBLP' - tabnom=list(aster.getvectjev(tblp)) - nparam=len(tabnom)/4 - lparam=[tabnom[4*i:4*i+4] for i in range(nparam)] - dval={} - # liste des paramètres et des types - lpar=[] - ltyp=[] - for i in lparam : - value=list(aster.getvectjev(i[2])) - exist=aster.getvectjev(i[3]) - dval[string.strip(i[0])]=map(Nonefy,value,exist) - lpar.append(string.strip(i[0])) - ltyp.append(string.strip(i[1])) - n=len(dval[lpar[0]]) - # contenu : liste de dict - lisdic=[] - for i in range(n) : - d={} - for p in lpar : d[p]=dval[p][i] - lisdic.append(d) - # titre - titj=aster.getvectjev(self.get_name().ljust(19)+'.TITR') - if titj<>None: - titr='\n'.join(titj) - else: - titr='' - return Table(lisdic, lpar, ltyp, titr) - -class table_jeveux(table_sdaster): - """Classe permettant d'accéder à une table jeveux qui n'a pas d'ASSD associée, - c'est le cas des concepts résultats (table, evol_xxxx) dérivés.""" - def __init__(self,nom_jeveux): - self.nom=nom_jeveux - -class tabl_aire_int (table_sdaster):pass -class tabl_calc_g_loca(table_sdaster):pass -class tabl_calc_g_th (table_sdaster):pass -class tabl_cara_geom (table_sdaster):pass -class tabl_char_limite(table_sdaster):pass -class tabl_ener_elas (table_sdaster):pass -class tabl_ener_pot (table_sdaster):pass -class tabl_ener_cin (table_sdaster):pass -class tabl_trav_ext (table_sdaster):pass -class tabl_ener_totale(table_sdaster):pass -class tabl_indic_ener (table_sdaster):pass -class tabl_indic_seuil(table_sdaster):pass -class tabl_intsp (table_sdaster):pass -class tabl_mass_iner (table_sdaster):pass -class tabl_post_alea (table_sdaster):pass -class tabl_post_beta (table_sdaster):pass -class tabl_post_dyna (table_sdaster):pass -class tabl_post_f_alea(table_sdaster):pass -class tabl_post_fatig (table_sdaster):pass -class tabl_post_gouj2e(table_sdaster):pass -class tabl_post_k (table_sdaster):pass -class tabl_post_rccm (table_sdaster):pass -class tabl_post_rele (table_sdaster):pass -class tabl_post_simpli(table_sdaster):pass -class tabl_post_usur (table_sdaster):pass -class tabl_reca_weib (table_sdaster):pass -class tabl_rice_tracey(table_sdaster):pass -class tabl_texture (table_sdaster):pass -class tabl_trc (table_sdaster):pass -class tabl_weibull (table_sdaster):pass - - -# vect_asse : -#-------------------------------- -class vect_asse(ASSD):pass -class vect_asse_gene(vect_asse):pass -class vect_asse_gene_r(vect_asse_gene): - def EXTR_VECT_GENE(self) : - """ retourne les valeurs du vecteur generalisee - dans un format Numerical Array - Attributs retourne - - self.valeurs : Numeric.array contenant les valeurs """ - - ncham=self.get_name() - ncham=ncham+(8-len(ncham))*' ' - valeur=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.VALE')) - - return valeur - - def RECU_VECT_GENE(self,vecteur) : - """ envoie les valeurs d'un Numerical Array dans un vecteur generalise - reel definie dans jeveux - Attributs ne retourne rien """ - from Utilitai.Utmess import UTMESS - -# avertissement generique - UTMESS('A','RECU_VECT_GENE',' ATTENTION, VOUS ALLEZ ECRASER DES CONCEPTS EXISTANTS') - - Numeric.asarray(vecteur) - ncham=self.get_name() - ncham=ncham+(8-len(ncham))*' ' - desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC')) -# On teste si le DESC du vecteur existe - if (desc==None): - raise Accas.AsException("L'objet vecteur n'existe pas ou \ - est mal cree par Code Aster") -# On teste si la taille du vecteur jeveux et python est identique - if desc[1]<>Numeric.shape(vecteur)[0] : - raise Accas.AsException("La taille du vecteur python est incorrecte") - aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALE',len(vecteur),tuple((\ - range(1,len(vecteur)+1))),tuple(vecteur),tuple(vecteur),1) - return - - -class vect_asse_gene_c(vect_asse_gene): - def EXTR_VECT_GENE(self) : - """ retourne les valeurs du vecteur generalisee - dans un format Numerical Array - Attributs retourne - - self.valeurs : Numeric.array contenant les valeurs """ - - ncham=self.get_name() - ncham=ncham+(8-len(ncham))*' ' - valeur=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.VALE'),Numeric.Complex) - - return valeur - - def RECU_VECT_GENE(self,vecteur) : - """ envoie les valeurs d'un Numerical Array dans un vecteur generalise - complexe definie dans jeveux - Attributs ne retourne rien """ - from Utilitai.Utmess import UTMESS - -# avertissement generique - UTMESS('A','RECU_VECT_GENE',' ATTENTION, VOUS ALLEZ ECRASER DES CONCEPTS EXISTANTS') - - Numeric.asarray(vecteur) - ncham=self.get_name() - ncham=ncham+(8-len(ncham))*' ' - desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC')) -# On teste si le DESC de la matrice existe - if (desc==None): - raise Accas.AsException("L'objet vecteur n'existe pas ou \ - est mal cree par Code Aster") -# On teste si la taille de la matrice jeveux et python est identique - if desc[1]<>Numeric.shape(vecteur)[0] : - raise Accas.AsException("La taille du vecteur python est incorrecte") - tmpr=vecteur.real - tmpc=vecteur.imag - aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALE',len(tmpr),tuple(( - range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1) - return - - -# 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 COMMUN DATE 07/10/2005 AUTEUR CIBHHPD L.SALMONA -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def C_COMP_INCR() : return FACT(statut='f',min=1,max='**', #COMMUN# - RELATION =SIMP(statut='o',typ='TXM',defaut="VMIS_ISOT_TRAC", - into=( "ELAS", - "VMIS_ISOT_TRAC", - "VISC_ISOT_TRAC", - "VMIS_ISOT_LINE", - "VISC_ISOT_LINE", - "VMIS_ECMI_TRAC", - "VMIS_ECMI_LINE", - "LABORD_1D", - "ENDO_FRAGILE", - "ENDO_ISOT_BETON", - "ENDO_ORTH_BETON", - "BETON_REGLE_PR", - "MAZARS", - "JOINT_BA", - "RUPT_FRAG", - "CZM_EXP_REG", - "CZM_EXP", - "META_P_IL", - "META_P_IL_PT", - "META_P_IL_RE", - "META_P_IL_PT_RE", - "META_V_IL", - "META_V_IL_PT", - "META_V_IL_RE", - "META_V_IL_PT_RE", - "META_P_INL", - "META_P_INL_PT", - "META_P_INL_RE", - "META_P_INL_PT_RE", - "META_V_INL", - "META_V_INL_PT", - "META_V_INL_RE", - "META_V_INL_PT_RE", - "META_P_CL", - "META_P_CL_PT", - "META_P_CL_RE", - "META_P_CL_PT_RE", - "META_V_CL", - "META_V_CL_PT", - "META_V_CL_RE", - "META_V_CL_PT_RE", - "VMIS_CINE_LINE", - "VISC_TAHERI", - "CHABOCHE", - "VISCOCHAB", - "VISC_CIN1_CHAB", - "VISC_CIN2_CHAB", - "POLY_CFC", - "LMARC", - "LMARC_IRRA", - "ROUSSELIER", - "ROUSS_PR", - "ROUSS_VISC", - "VMIS_POU_LINE", - "VMIS_POU_FLEJOU", - "ARME", - "ASSE_CORN", - "NORTON_HOFF", - "LEMAITRE", - "LEMAITRE_IRRA", - "LEMA_SEUIL", - "ZIRC_CYRA2", - "VISC_IRRA_LOG", - "GRAN_IRRA_LOG", - "ZIRC_EPRI", - "VENDOCHAB", - "NADAI_B", - "DIS_CONTACT", - "DIS_CHOC", - "DIS_GRICRA", - "DIS_GOUJ2E_PLAS", - "DIS_GOUJ2E_ELAS", - "GRILLE_ISOT_LINE", - "GRILLE_CINE_LINE", - "GRILLE_PINTO_MEN", - "PINTO_MENEGOTTO", - "CJS", - "CAM_CLAY", - "BARCELONE", - "LAIGLE", - "DRUCKER_PRAGER", - "HOEK_BROWN", - "OHNO", - "GRANGER_FP", - "GRANGER_FP_INDT", - "GRANGER_FP_V", - "BAZANT_FD", - "BETON_UMLV_FP", - "BETON_DOUBLE_DP", - "KIT_HM", - "KIT_HHM", - "KIT_THH", - "KIT_THV", - "KIT_THM", - "KIT_THHM", - "VMIS_ASYM_LINE", - "ELAS_THM", - "ELAS_THER", - "SURF_ETAT_NSAT", - "SURF_ETAT_SATU", - "CAM_CLAY_THM", - "KIT_DDI", - "GLRC", - "SANS", - "CORR_ACIER", - "MONOCRISTAL", - "POLYCRISTAL", - "ZMAT", - "GATT_MONERIE", - ) ), - ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - SANS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - CORR_ACIER =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - VMIS_ISOT_TRAC =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - VISC_ISOT_TRAC =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - VMIS_ISOT_LINE =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - VISC_ISOT_LINE =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - VMIS_ECMI_TRAC =SIMP(statut='c',typ='I',defaut=8,into=(8,)), - VMIS_ECMI_LINE =SIMP(statut='c',typ='I',defaut=8,into=(8,)), - LABORD_1D =SIMP(statut='c',typ='I',defaut=5,into=(5,)), - ENDO_FRAGILE =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - ENDO_ISOT_BETON =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - ENDO_ORTH_BETON =SIMP(statut='c',typ='I',defaut=7,into=(7,)), - BETON_REGLE_PR =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - MAZARS =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - JOINT_BA =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - RUPT_FRAG =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - CZM_EXP_REG =SIMP(statut='c',typ='I',defaut=4,into=(4,)), - CZM_EXP =SIMP(statut='c',typ='I',defaut=7,into=(7,)), - META_P_IL =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_IL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_IL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_IL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_IL =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_IL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_IL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_IL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_INL =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_INL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_INL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_INL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_INL =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_INL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_INL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_INL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_CL =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - META_P_CL_PT =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - META_P_CL_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - META_P_CL_PT_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - META_V_CL =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - META_V_CL_PT =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - META_V_CL_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - META_V_CL_PT_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - VMIS_CINE_LINE =SIMP(statut='c',typ='I',defaut=7,into=(7,)), - 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,)), - LMARC_IRRA =SIMP(statut='c',typ='I',defaut=20,into=(20,)), - VISC_TAHERI =SIMP(statut='c',typ='I',defaut=9,into=(9,)), - ROUSSELIER =SIMP(statut='c',typ='I',defaut=9,into=(9,)), - ROUSS_PR =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - ROUSS_VISC =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - VMIS_POU_LINE =SIMP(statut='c',typ='I',defaut=9,into=(9,)), - VMIS_POU_FLEJOU =SIMP(statut='c',typ='I',defaut=9 ,into=(9,)), - ASSE_CORN =SIMP(statut='c',typ='I',defaut=7,into=(7,)), - ARME =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - NORTON_HOFF =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - LEMAITRE =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - LEMA_SEUIL =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - LEMAITRE_IRRA =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - ZIRC_CYRA2 =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - ZIRC_EPRI =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - VISC_IRRA_LOG =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - GRAN_IRRA_LOG =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - NADAI_B =SIMP(statut='c',typ='I',defaut=34,into=(34,)), - VENDOCHAB =SIMP(statut='c',typ='I',defaut=10,into=(10,)), - GRILLE_ISOT_LINE=SIMP(statut='c',typ='I',defaut=4,into=(4,)), - GRILLE_CINE_LINE=SIMP(statut='c',typ='I',defaut=4,into=(4,)), - GRILLE_PINTO_MEN=SIMP(statut='c',typ='I',defaut=16,into=(16,)), - DIS_CONTACT =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - DIS_CHOC =SIMP(statut='c',typ='I',defaut=7,into=(7,)), - DIS_GRICRA =SIMP(statut='c',typ='I',defaut=12,into=(12,)), - 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,)), - BARCELONE =SIMP(statut='c',typ='I',defaut=5,into=(5,)), - LAIGLE =SIMP(statut='c',typ='I',defaut=4,into=(4,)), - DRUCKER_PRAGER =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - HOEK_BROWN =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - OHNO =SIMP(statut='c',typ='I',defaut=32,into=(32,)), - GRANGER_FP =SIMP(statut='c',typ='I',defaut=55,into=(55,)), - GRANGER_FP_INDT =SIMP(statut='c',typ='I',defaut=55,into=(55,)), - GRANGER_FP_V =SIMP(statut='c',typ='I',defaut=55,into=(55,)), - BAZANT_FD =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - BETON_DOUBLE_DP =SIMP(statut='c',typ='I',defaut=4,into=(4,)), - KIT_HM =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - KIT_HHM =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - KIT_THH =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - KIT_THV =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - KIT_THM =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - KIT_THHM =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - VMIS_ASYM_LINE =SIMP(statut='c',typ='I',defaut=4,into=(4,)), - BETON_UMLV_FP =SIMP(statut='c',typ='I',defaut=21,into=(21,)), - GLRC =SIMP(statut='c',typ='I',defaut=7,into=(7,)), - GATT_MONERIE =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - - b_monox = BLOC(condition = "RELATION == 'MONOCRISTAL' ", - fr="SD issue de DEFI_COMPOR", - COMPOR =SIMP(statut='o',typ=compor_sdaster,max=1),), -# - b_polyx = BLOC(condition = "RELATION == 'POLYCRISTAL' ", - fr="SD issue de DEFI_COMPOR", - COMPOR =SIMP(statut='o',typ=compor_sdaster,max=1),), -# - b_zmat = BLOC(condition = "RELATION == 'ZMAT' ", - fr="Comportement de la bibliotheque Zmat", - NB_VARI =SIMP(statut='o',typ='I',max=1), - UNITE =SIMP(statut='o',typ='I',max=1),), - - - - RELATION_KIT =SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(), - into=( -# MECA - "ELAS", - "CJS", - "CAM_CLAY", - "BARCELONE", - "LAIGLE", - "DRUCKER_PRAGER", - "HOEK_BROWN", - "ELAS_THM", - "ELAS_THER", - "SURF_ETAT_NSAT", - "SURF_ETAT_SATU", - "CAM_CLAY_THM", - "MAZARS", - "ENDO_ISOT_BETON", -# THMC - "GAZ", - "LIQU_SATU", - "LIQU_SATU_GAT", - "LIQU_GAZ_ATM", - "LIQU_VAPE_GAZ", - "LIQU_AD_GAZ_VAPE", - "LIQU_VAPE", - "LIQU_NSAT_GAT", - "LIQU_GAZ", -# HYDR - "HYDR_UTIL", - "HYDR", - "HYDR_ENDO", -# MECA_META - "ACIER", - "ZIRC", -# MECA KIT_DDI - "VMIS_ISOT_TRAC", - "VMIS_ISOT_LINE", - "VMIS_ISOT_CINE", - "GRANGER_FP", - "GRANGER_FP_INDT", - "GRANGER_FP_V", - "BETON_UMLV_FP", - "ROUSS_PR", - "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=1,into=(1,)), - 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_AD_GAZ_VAPE=SIMP(statut='c',typ='I',defaut=3,into=(3,)), - LIQU_VAPE =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,)), - HYDR_UTIL =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - HYDR =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - HYDR_ENDO =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ACIER =SIMP(statut='c',typ='I',defaut=5,into=(5,)), - ZIRC =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC","SIMO_MIEHE","GREEN_GR","GREEN",)), - ALGO_C_PLAN =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)), - ALGO_1D =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", - into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), - ) ; -#& MODIF COMMUN DATE 18/07/2005 AUTEUR VABHHTS J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -# ce fichier contient la liste des "into" possibles pour le mot cle NOM_CHAM -# c'est a dire les noms de champs des SD RESULTAT (DATA de la routine RSCRSD) -def C_NOM_CHAM_INTO() : return ("ACCE", #COMMUN# - "ACCE_ABSOLU", - "ALPH0_ELGA_EPSP", - "ALPHP_ELGA_ALPH0", - "COMPORTEMENT", - "COMPORTHER", - "CRIT_ELNO_RUPT", - "DCHA_ELGA_SIGM", - "DCHA_ELNO_SIGM", - "DCHA_NOEU_SIGM", - "DEDE_ELNO_DLDE", - "DEDE_NOEU_DLDE", - "DEGE_ELNO_DEPL", - "DEGE_NOEU_DEPL", - "DEPL", - "DEPL_ABSOLU", - "DESI_ELNO_DLSI", - "DESI_NOEU_DLSI", - "DETE_ELNO_DLTE", - "DETE_NOEU_DLTE", - "DURT_ELGA_META", - "DURT_ELNO_META", - "DURT_NOEU_META", - "ECIN_ELEM_DEPL", - "EFGE_ELNO_CART", - "EFGE_ELNO_DEPL", - "EFGE_NOEU_CART", - "EFGE_NOEU_DEPL", - "ENDO_ELGA", - "ENDO_ELNO_ELGA", - "ENDO_ELNO_SIGA", - "ENDO_ELNO_SINO", - "ENDO_NOEU_SINO", - "ENEL_ELGA", - "ENEL_ELNO_ELGA", - "ENEL_NOEU_ELGA", - "EPEQ_ELNO_TUYO", - "EPGR_ELGA", - "EPGR_ELNO", - "EPME_ELGA_DEPL", - "EPME_ELNO_DEPL", - "EPMG_ELGA_DEPL", - "EPMG_ELNO_DEPL", - "EPMG_NOEU_DEPL", - "EPOT_ELEM_DEPL", - "EPSA_ELNO", - "EPSA_NOEU", - "EPSG_ELGA_DEPL", - "EPSG_ELNO_DEPL", - "EPSG_NOEU_DEPL", - "EPSI_ELGA_DEPL", - "EPSI_ELNO_DEPL", - "EPSI_ELNO_TUYO", - "EPSI_NOEU_DEPL", - "EPSP_ELGA", - "EPSP_ELNO", - "EPSP_ELNO_ZAC", - "EPSP_NOEU", - "EPSP_NOEU_ZAC", - "EQUI_ELGA_EPME", - "EQUI_ELGA_EPSI", - "EQUI_ELGA_SIGM", - "EQUI_ELNO_EPME", - "EQUI_ELNO_EPSI", - "EQUI_ELNO_SIGM", - "EQUI_NOEU_EPME", - "EQUI_NOEU_EPSI", - "EQUI_NOEU_SIGM", - "ERRE_ELEM_NOZ1", - "ERRE_ELEM_NOZ2", - "ERRE_ELGA_NORE", - "ERRE_ELNO_ELGA", - "ERRE_NOEU_ELGA", - "SING_ELEM", - "SING_ELNO_ELEM", - "ERTH_ELEM_TEMP", - "ERTH_ELNO_ELEM", - "ETOT_ELEM", - "ETOT_ELGA", - "ETOT_ELNO_ELGA", - "EXTR_ELGA_VARI", - "EXTR_ELNO_VARI", - "EXTR_NOEU_VARI", - "FLUX_ELGA_TEMP", - "FLUX_ELNO_TEMP", - "FLUX_NOEU_TEMP", - "FORC_NODA", - "FSUR_2D", - "FSUR_3D", - "FVOL_2D", - "FVOL_3D", - "GRAD_NOEU_THETA", - "HYDR_ELNO_ELGA", - "HYDR_NOEU_ELGA", - "INDI_LOCA_ELGA", - "INTE_ELNO_ACTI", - "INTE_ELNO_REAC", - "INTE_NOEU_ACTI", - "INTE_NOEU_REAC", - "IRRA", - "LANL_ELGA", - "META_ELGA_TEMP", - "META_ELNO_TEMP", - "META_NOEU_TEMP", - "MODE_FLAMB", - "PMPB_ELGA_SIEF", - "PMPB_ELNO_SIEF", - "PMPB_NOEU_SIEF", - "PRES", - "PRES_DBEL_DEPL", - "PRES_ELNO_DBEL", - "PRES_ELNO_IMAG", - "PRES_ELNO_REEL", - "PRES_NOEU_DBEL", - "PRES_NOEU_IMAG", - "PRES_NOEU_REEL", - "RADI_ELGA_SIGM", - "RADI_ELNO_SIGM", - "RADI_NOEU_SIGM", - "REAC_NODA", - "SIEF_ELGA", - "SIEF_ELGA_DEPL", - "SIEF_ELNO", - "SIEF_ELNO_ELGA", - "SIEF_NOEU", - "SIEF_NOEU_ELGA", - "SIEQ_ELNO_TUYO", - "SIGM_ELNO_CART", - "SIGM_ELNO_COQU", - "SIGM_ELNO_DEPL", - "SIGM_ELNO_SIEF", - "SIGM_ELNO_TUYO", - "SIGM_ELNO_ZAC", - "SIGM_NOEU_CART", - "SIGM_NOEU_COQU", - "SIGM_NOEU_DEPL", - "SIGM_NOEU_SIEF", - "SIGM_NOEU_ZAC", - "SIGM_NOZ1_ELGA", - "SIGM_NOZ2_ELGA", - "SIPO_ELNO_DEPL", - "SIPO_ELNO_SIEF", - "SIPO_NOEU_DEPL", - "SIPO_NOEU_SIEF", - "SIRE_ELNO_DEPL", - "SIRE_NOEU_DEPL", - "SOUR_ELGA_ELEC", - "TEMP", - "THETA", - "VALE_CONT", - "VALE_NCOU_MAXI", - "VARI_ELGA", - "VARI_ELGA_ZAC", - "VARI_ELNO", - "VARI_ELNO_COQU", - "VARI_ELNO_ELGA", - "VARI_ELNO_TUYO", - "VARI_NOEU", - "VARI_NOEU_ELGA", - "VARI_NON_LOCAL", - "VITE", - "VITE_ABSOLU", - "VITE_VENT", - ) -#& MODIF COMMUN DATE 27/06/2005 AUTEUR D6BHHJP J.P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# ce fichier contient la liste des noms des grandeurs de CODE_ASTER -def C_NOM_GRANDEUR() : return ( #COMMUN# -"ABSC_R", -"ADRSJEVE", -"ADRSJEVN", -"CAARPO", -"CACABL", -"CACOQU", -"CADISA", -"CADISK", -"CADISM", -"CAFI_R", -"CAGEBA", -"CAGEPO", -"CAGNBA", -"CAGNPO", -"CAMASS", -"CAORIE", -"CAPOUF", -"CARCRI", -"CASECT", -"CHLI_R", -"CODE_I", -"COEH_F", -"COEH_R", -"COMPOR", -"CORR_R", -"CRRU_R", -"DBEL_R", -"DCEL_I", -"DDLI_C", -"DDLI_F", -"DDLI_R", -"DDLM_C", -"DDLM_R", -"DEPL_C", -"DEPL_F", -"DEPL_R", -"DOMMAG", -"DURT_R", -"ENER_R", -"EPSI_F", -"EPSI_R", -"ERRETEMP", -"ERREUR", -"FACY_R", -"FELECR", -"FISS_R", -"FLAPLA", -"FLUN_F", -"FLUN_R", -"FLUX_F", -"FLUX_R", -"FORC_C", -"FORC_F", -"FORC_R", -"FREQ_R", -"FTHM_F", -"FTHM_R", -"G", -"GEOM_R", -"G_DEPL_R", -"HARMON", -"HYDR_R", -"IMPE_C", -"IMPE_F", -"IMPE_R", -"IND_LOCA", -"INFC_R", -"INST_R", -"INTE_R", -"INTLOC", -"IRRA_R", -"ITECREL", -"ITEDEC", -"J", -"LISTMA", -"MACOMP", -"MASS_R", -"MATE_F", -"NBSP_I", -"NEUT_F", -"NEUT_I", -"NEUT_K16", -"NEUT_K24", -"NEUT_K8", -"NEUT_R", -"NUMC_I", -"NUMMOD", -"ONDE_F", -"ONDE_R", -"PESA_R", -"PILO_K", -"PILO_R", -"POSI", -"PREC", -"PRES_C", -"PRES_F", -"PRES_R", -"RAYO_F", -"RAYO_R", -"RCCM_K", -"RCCM_R", -"RESCREL", -"RICE_TRA", -"ROTA_R", -"SECTION", -"SIEF_C", -"SIEF_R", -"SIZZ_R", -"SOUR_F", -"SOUR_R", -"SPMA_R", -"STAOUDYN", -"TEMP_C", -"TEMP_F", -"TEMP_R", -"THETA", -"VALO_R", -"VANL_R", -"VAR2_R", -"VARI_R", -"VENTCX_F", -"VNOR_C", -"VNOR_F", -"VOISIN", -"WEIBULL", -"XCONTAC", - ) -#& MODIF COMMUN DATE 27/06/2005 AUTEUR D6BHHJP J.P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# ce fichier contient la liste des PARA possibles pour les fonctions et les nappes -def C_PARA_FONCTION() : return ( #COMMUN# - "DX","DY","DZ","DRX","DRY","DRZ","TEMP","TSEC", - "INST","X","Y","Z","EPSI","META","FREQ","PULS","DSP", - "AMOR","ABSC","SIGM","HYDR","SECH","PORO","SAT", - "PGAZ","PCAP","VITE","ENDO","NORM","EPAIS", - "NEUT1","NEUT2",) -#& MODIF COMMUN DATE 27/06/2005 AUTEUR D6BHHJP J.P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# -# ce fichier contient la liste des "into" possibles pour le mot cle TYPE_CHAM -def C_TYPE_CHAM_INTO() : #COMMUN# - l=[] - for gd in C_NOM_GRANDEUR() : - for typ in ("ELEM","ELNO","ELGA","CART","NOEU") : - l.append(typ+"_"+gd) - return tuple(l) - -#& MODIF COMMANDE DATE 09/05/2005 AUTEUR MJBHHPE J.L.FLEJOU -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE MJBHHPE J.L.FLEJOU -AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem, - fr="Affectation de caractéristiques à des éléments de structure", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('POUTRE','BARRE','COQUE','CABLE','DISCRET','DISCRET_2D','MASSIF', - 'ASSE_GRIL','GRILLE','AFFE_SECT','AFFE_FIBRE','RIGI_PARASOL'),), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - INFO =SIMP(statut='f',typ='I', defaut= 1 ,into=(1,2) ), - VERIF =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("MAILLE","NOEUD") ), - -#============================================================================ - POUTRE =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - SECTION =SIMP(statut='o',typ='TXM' ,into=("GENERALE","RECTANGLE","CERCLE") ), - PREC_AIRE =SIMP(statut='f',typ='R',defaut=0.01), - PREC_INERTIE =SIMP(statut='f',typ='R',defaut=0.1), - b_generale =BLOC( condition = "SECTION=='GENERALE'", - VARI_SECT =SIMP(statut='f',typ='TXM',into=("CONSTANT","HOMOTHETIQUE"),defaut="CONSTANT"), - b_constant =BLOC( condition = "VARI_SECT=='CONSTANT'", - CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=4 ,max=15, - fr="A,IY,IZ,JX sont des paramètres obligatoires", - into=("A","IY","IZ","AY","AZ","EY","EZ","JX","RY","RZ","RT", - "JG","IYR2","IZR2","AI") ), - VALE =SIMP(statut='o',typ='R',min=4 ,max=15), - ), - b_homothetique =BLOC( condition = "VARI_SECT=='HOMOTHETIQUE'", - CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=8 ,max=30, - fr="A1,A2,IY1,IY2,IZ1,IZ2,JX1,JX2 sont des paramètres obligatoires", - into=("A1","IY1","IZ1","AY1","AZ1","EY1","EZ1","JX1","RY1", - "RZ1","RT1","JG1","IYR21","IZR21","AI1", - "A2","IY2","IZ2","AY2","AZ2","EY2","EZ2","JX2","RY2", - "RZ2","RT2","JG2","IYR22","IZR22","AI2") ), - VALE =SIMP(statut='o',typ='R',min=8 ,max=30), - ), - ), - b_rectangle =BLOC( condition = "SECTION=='RECTANGLE'", - VARI_SECT =SIMP(statut='f',typ='TXM',into=("CONSTANT","HOMOTHETIQUE","AFFINE"),defaut="CONSTANT"), - b_constant =BLOC( condition = "VARI_SECT=='CONSTANT'", - CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=1 ,max=4, - into=("H","EP", "HY","HZ","EPY","EPZ") ), - VALE =SIMP(statut='o',typ='R',min=1 ,max=4), - ), - b_homothetique =BLOC( condition = "VARI_SECT=='HOMOTHETIQUE'", - CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=2 ,max=8, - into=("H1","HZ1","HY1","EP1","EPY1","EPZ1", - "H2","HZ2","HY2","EP2","EPY2","EPZ2") ), - VALE =SIMP(statut='o',typ='R',min=2 ,max=8), - ), - b_affine =BLOC( condition = "VARI_SECT=='AFFINE'", - CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=3 ,max=6, - into=("HY","EPY", "HZ1","EPZ1","HZ2","EPZ2") ), - VALE =SIMP(statut='o',typ='R',min=3 ,max=6), - ), - ), - b_cercle =BLOC( condition = "SECTION=='CERCLE'", - VARI_SECT =SIMP(statut='f',typ='TXM',into=("CONSTANT","HOMOTHETIQUE"),defaut="CONSTANT"), - b_constant =BLOC( condition = "VARI_SECT=='CONSTANT'", - CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=1 ,max=2, - fr="R est un paramètre obligatoire", - into=("R","EP") ), - VALE =SIMP(statut='o',typ='R',min=1 ,max=2), - ), - b_homothetique =BLOC( condition = "VARI_SECT=='HOMOTHETIQUE'", - CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=2 ,max=4, - fr="R1, R2 sont des paramètres obligatoires", - into=("R1","R2","EP1","EP2") ), - VALE =SIMP(statut='o',typ='R',min=2 ,max=4), - ), - MODI_METRIQUE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - FCX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TUYAU_NSEC =SIMP(statut='f',typ='I',val_max=32,defaut=16), - TUYAU_NCOU =SIMP(statut='f',typ='I',val_max=10,defaut=3), - ), - ), - -#============================================================================ - BARRE =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - SECTION =SIMP(statut='o',typ='TXM',into=("GENERALE","RECTANGLE","CERCLE") ), - b_generale =BLOC( condition = "SECTION=='GENERALE'", - CARA =SIMP(statut='o',typ='TXM',into=("A",) ), - VALE =SIMP(statut='o',typ='R',min=1,max=1 ), - ), - b_rectangle =BLOC( condition = "SECTION=='RECTANGLE'", - CARA =SIMP(statut='o',typ='TXM',into=("H","EP", - "HZ","HY","EPY","EPZ"), - validators=NoRepeat(),min=1,max=4 ), - VALE =SIMP(statut='o',typ='R',min=1,max=4 ), - ), - b_cercle =BLOC( condition = "SECTION=='CERCLE'", - CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=1,max=2,into=("R","EP") ), - VALE =SIMP(statut='o',typ='R',min=1,max=2 ), - ), - FCX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - -#============================================================================ - COQUE =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA' ), - PRESENT_PRESENT( 'EXCENTREMENT','INER_ROTA' ),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - EPAIS =SIMP(statut='o',typ='R' ), - ANGL_REP =SIMP(statut='f',typ='R',min=2,max=2), - A_CIS =SIMP(statut='c',typ='R',defaut= 0.8333333E0), - COEF_RIGI_DRZ =SIMP(statut='f',typ='R',defaut= 1.0E-5 ), - COQUE_NCOU =SIMP(statut='f',typ='I',defaut= 1 ), - EXCENTREMENT =SIMP(statut='f',typ='R' ), - INER_ROTA =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MODI_METRIQUE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - -#============================================================================ - CABLE =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - N_INIT =SIMP(statut='f',typ='R',defaut= 5000. ), - SECTION =SIMP(statut='f',typ='R' ), - FCX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - -#============================================================================ - DISCRET =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ), - AMOR_HYST =SIMP(statut='f',typ='R' ), - CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1, - fr="Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds", - into=("K_T_D_N","K_T_D_L","K_TR_D_N","K_TR_D_L", - "K_T_N", "K_T_L", "K_TR_N", "K_TR_L", - "M_T_D_N","M_TR_D_N","M_T_N", - "M_T_L", "M_TR_N", "M_TR_L", - "A_T_D_N","A_TR_D_N","A_T_D_L","A_TR_D_L", - "A_T_N", "A_T_L", "A_TR_N", "A_TR_L") ), - -# affection des caractéristiques de RIGIDITE/AMORTISSEMENT - b_K_T_D_N =BLOC(condition = "(CARA=='K_T_D_N')or(CARA=='A_T_D_N')", - VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), - b_K_T_D_L =BLOC(condition = "(CARA=='K_T_D_L')or(CARA=='A_T_D_L')", - VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), - b_K_TR_D_N =BLOC(condition = "(CARA=='K_TR_D_N')or(CARA=='A_TR_D_N')", - VALE =SIMP(statut='o',typ='R',min=6 ,max=6 ),), - b_K_TR_D_L =BLOC(condition = "(CARA=='K_TR_D_L')or(CARA=='A_TR_D_L')", - VALE =SIMP(statut='o',typ='R',min=6 ,max=6 ),), - b_K_T_N =BLOC(condition = "(CARA=='K_T_N')or(CARA=='A_T_N')", - VALE =SIMP(statut='o',typ='R',min=6 ,max=6 ),), - b_K_T_L =BLOC(condition = "(CARA=='K_T_L')or(CARA=='A_T_L')", - VALE =SIMP(statut='o',typ='R',min=21,max=21),), - b_K_TR_N =BLOC(condition = "(CARA=='K_TR_N')or(CARA=='A_TR_N')", - VALE =SIMP(statut='o',typ='R',min=21,max=21),), - b_K_TR_L =BLOC(condition = "(CARA=='K_TR_L')or(CARA=='A_TR_L')", - VALE =SIMP(statut='o',typ='R',min=78,max=78),), - -# affection des caractéristiques de MASSE - b_M_T_D_N =BLOC(condition = "CARA=='M_T_D_N'", - fr="NOEUD: 1 valeur de masse", - VALE =SIMP(statut='o',typ='R',min=1 ,max=1 ),), - b_M_TR_D_N =BLOC(condition = "CARA=='M_TR_D_N'", - fr="NOEUD: 1 valeur de masse, 6 valeurs du tenseur d'inertie, 3 composantes du vecteur d'excentricité", - VALE =SIMP(statut='o',typ='R',min=10,max=10),), - b_M_T_N =BLOC(condition = "CARA=='M_T_N'", - fr="NOEUD: 6 valeurs de masse (triangulaire supérieure par colonne)", - VALE =SIMP(statut='o',typ='R',min=6 ,max=6 ),), - b_M_T_L =BLOC(condition = "CARA=='M_T_L'", - fr="SEGMENT: 21 valeurs de masse (triangulaire supérieure par colonne)", - VALE =SIMP(statut='o',typ='R',min=21,max=21),), - b_M_TR_N =BLOC(condition = "CARA=='M_TR_N'", - fr="NOEUD: 21 valeurs de masse (triangulaire supérieure par colonne)", - VALE =SIMP(statut='o',typ='R',min=21,max=21),), - b_M_TR_L =BLOC(condition = "CARA=='M_TR_L'", - fr="SEGMENT: 78 valeurs de masse (triangulaire supérieure par colonne)", - VALE =SIMP(statut='o',typ='R',min=78,max=78),), - ), - -#============================================================================ - DISCRET_2D =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ), - AMOR_HYST =SIMP(statut='f',typ='R' ), - CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1, - fr="Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds", - into=("K_T_D_N","K_T_D_L","K_TR_D_N","K_TR_D_L", - "K_T_N", "K_T_L", "K_TR_N", "K_TR_L", - "M_T_D_N","M_T_N", "M_TR_D_N", - "M_T_L", "M_TR_N", "M_TR_L", - "A_T_D_N","A_TR_D_N","A_T_D_L","A_TR_D_L", - "A_T_N", "A_T_L", "A_TR_N", "A_TR_L") ), - -# affection des caractéristiques de RIGIDITE/AMORTISSEMENT - b_K_T_D_N =BLOC(condition = "(CARA=='K_T_D_N')or(CARA=='A_T_D_N')", - VALE =SIMP(statut='o',typ='R',min=2 ,max=2 ),), - b_K_T_D_L =BLOC(condition = "(CARA=='K_T_D_L')or(CARA=='A_T_D_L')", - VALE =SIMP(statut='o',typ='R',min=2 ,max=2 ),), - b_K_TR_D_N =BLOC(condition = "(CARA=='K_TR_D_N')or(CARA=='A_TR_D_N')", - VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), - b_K_TR_D_L =BLOC(condition = "(CARA=='K_TR_D_L')or(CARA=='A_TR_D_L')", - VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), - b_K_T_N =BLOC(condition = "(CARA=='K_T_N')or(CARA=='A_T_N')", - VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), - b_K_T_L =BLOC(condition = "(CARA=='K_T_L')or(CARA=='A_T_L')", - VALE =SIMP(statut='o',typ='R',min=10,max=10),), - b_K_TR_N =BLOC(condition = "(CARA=='K_TR_N')or(CARA=='A_TR_N')", - VALE =SIMP(statut='o',typ='R',min=6 ,max=6),), - b_K_TR_L =BLOC(condition = "(CARA=='K_TR_L')or(CARA=='A_TR_L')", - VALE =SIMP(statut='o',typ='R',min=21,max=21),), - -# affection des caractéristiques de MASSE - b_M_T_D_N =BLOC(condition = "CARA=='M_T_D_N'", - fr="NOEUD: 1 valeur de masse", - VALE =SIMP(statut='o',typ='R',min=1 ,max=1 ),), - b_M_TR_D_N =BLOC(condition = "CARA=='M_TR_D_N'", - fr="NOEUD: 1 valeur de masse(m), 1 valeur d'inertie(Izz), 2 composantes du vecteur d'excentricité(ex,ey) ", - VALE =SIMP(statut='o',typ='R',min=4 ,max=4 ),), - b_M_T_N =BLOC(condition = "CARA=='M_T_N'", - fr="NOEUD: 3 valeurs de masse (triangulaire supérieure par colonne)", - VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), - b_M_T_L =BLOC(condition = "CARA=='M_T_L'", - fr="SEGMENT: 10 valeurs de masse (triangulaire supérieure par colonne)", - VALE =SIMP(statut='o',typ='R',min=10,max=10),), - b_M_TR_N =BLOC(condition = "CARA=='M_TR_N'", - fr="NOEUD: 6 valeurs de masse (triangulaire supérieure par colonne)", - VALE =SIMP(statut='o',typ='R',min=6 ,max=6 ),), - b_M_TR_L =BLOC(condition = "CARA=='M_TR_L'", - fr="SEGMENT: 21 valeurs de masse (triangulaire supérieure par colonne)", - VALE =SIMP(statut='o',typ='R',min=21,max=21),), - ), - -#============================================================================ - ORIENTATION =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO' ),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - CARA =SIMP(statut='o',typ='TXM', - into=("VECT_Y","ANGL_VRIL","VECT_X_Y","ANGL_NAUT","GENE_TUYAU") ), - VALE =SIMP(statut='o',typ='R',max='**'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-4 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - -#============================================================================ - DEFI_ARC =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('ORIE_ARC','CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE', - 'POIN_TANG','NOEUD_POIN_TANG','GROUP_NO_POIN_TG'), - PRESENT_PRESENT('ORIE_ARC','RAYON'), - EXCLUS('COEF_FLEX','COEF_FLEX_XY'), - EXCLUS('COEF_FLEX','COEF_FLEX_XZ'), - EXCLUS('INDI_SIGM','INDI_SIGM_XY'), - EXCLUS('INDI_SIGM','INDI_SIGM_XZ'), - PRESENT_PRESENT('COEF_FLEX_XY','COEF_FLEX_XZ'), - PRESENT_PRESENT('INDI_SIGM_XY','INDI_SIGM_XZ'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ORIE_ARC =SIMP(statut='f',typ='R'), - CENTRE =SIMP(statut='f',typ='R',max='**'), - NOEUD_CENTRE =SIMP(statut='f',typ=no), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno), - POIN_TANG =SIMP(statut='f',typ='R',max='**'), - NOEUD_POIN_TANG =SIMP(statut='f',typ=no), - GROUP_NO_POIN_TG=SIMP(statut='f',typ=grno), - RAYON =SIMP(statut='f',typ='R'), - COEF_FLEX =SIMP(statut='f',typ='R'), - INDI_SIGM =SIMP(statut='f',typ='R'), - COEF_FLEX_XY =SIMP(statut='f',typ='R'), - INDI_SIGM_XY =SIMP(statut='f',typ='R'), - COEF_FLEX_XZ =SIMP(statut='f',typ='R'), - INDI_SIGM_XZ =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - -#============================================================================ - MASSIF =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('ANGL_REP','ANGL_AXE'), - EXCLUS('ANGL_REP','ANGL_AXE'), - EXCLUS('ANGL_REP','ORIG_AXE'), - PRESENT_PRESENT('ANGL_AXE','ORIG_AXE'), ), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ANGL_REP =SIMP(statut='f',typ='R',max=3), - ANGL_AXE =SIMP(statut='f',typ='R',max=2), - ORIG_AXE =SIMP(statut='f',typ='R',max=3), - ), - -#============================================================================ - POUTRE_FLUI =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - B_T =SIMP(statut='o',typ='R'), - B_N =SIMP(statut='o',typ='R'), - B_TN =SIMP(statut='o',typ='R',defaut= 0.E+0 ), - A_FLUI =SIMP(statut='o',typ='R'), - A_CELL =SIMP(statut='o',typ='R'), - COEF_ECHELLE =SIMP(statut='o',typ='R'), - ), - -#============================================================================ - GRILLE =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'), - EXCLUS('ANGL_REP','ORIG_AXE'), - ENSEMBLE('ORIG_AXE','AXE')), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - SECTION =SIMP(statut='o',typ='R'), - ANGL_REP =SIMP(statut='f',typ='R',max=2), - EXCENTREMENT =SIMP(statut='f',typ='R'), - ORIG_AXE =SIMP(statut='f',typ='R',max='**'), - AXE =SIMP(statut='f',typ='R',max='**'), - COEF_RIGI_DRZ =SIMP(statut='f',typ='R',defaut= 1.0E-10 ), - GRILLE_NCOU =SIMP(statut='f',typ='I',defaut= 1,), - ), - -#============================================================================ - RIGI_PARASOL =FACT(statut='f',max='**', - regles=(UN_PARMI('COEF_GROUP','FONC_GROUP'), - UN_PARMI('COOR_CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE'), - EXCLUS('GROUP_MA_POI1','GROUP_MA_SEG2'),), - GROUP_MA =SIMP(statut='o',typ=ma,validators=NoRepeat(),max='**', - fr="Surface servant à répartir les caractéristiques des discrets"), - GROUP_MA_POI1 =SIMP(statut='f',typ=ma,validators=NoRepeat(),max=1, - fr="Mailles de type point correspondant aux discrets"), - GROUP_MA_SEG2 =SIMP(statut='f',typ=ma,validators=NoRepeat(),max=1, - fr="Mailles de type seg2 correspondant aux discrets"), - FONC_GROUP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - COEF_GROUP =SIMP(statut='f',typ='R',max='**'), - REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ), - CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=2, - into=("K_TR_D_N","K_T_D_N","K_TR_D_L","K_T_D_L", - "A_TR_D_N","A_T_D_N","A_TR_D_L","A_T_D_L") ), - VALE =SIMP(statut='o',typ='R',max='**'), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno), - NOEUD_CENTRE =SIMP(statut='f',typ=no), - COOR_CENTRE =SIMP(statut='f',typ='R',min=2,max=3), - ), - -#============================================================================ - RIGI_MISS_3D =FACT(statut='f',max='**', - GROUP_MA_POI1 =SIMP(statut='o',typ=ma,max=1), - GROUP_MA_SEG2 =SIMP(statut='f',typ=ma,max=1), - FREQ_EXTR =SIMP(statut='o',typ='R',max=1), - UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30), - ), - -#============================================================================ - ASSE_GRIL =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),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',max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), - AU_MOINS_UN('TOUT_SECT','GROUP_MA_SECT','MAILLE_SECT'), - PRESENT_ABSENT('TOUT_SECT','GROUP_MA_SECT','MAILLE_SECT'),), - - NOM =SIMP(statut='f',typ='TXM'), - - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - - TOUT_SECT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA_SECT =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_SECT =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - - MAILLAGE_SECT =SIMP(statut='o',typ=maillage_sdaster), - COOR_AXE_POUTRE =SIMP(statut='o',typ='R',min=2,max=2), - ), - - -#============================================================================ - AFFE_FIBRE =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),), - - NOM =SIMP(statut='f',typ='TXM'), - - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - - 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 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -AFFE_CHAR_ACOU=OPER(nom="AFFE_CHAR_ACOU",op= 68,sd_prod=char_acou, - fr="Affectation de charges et conditions aux limites acoustiques constantes", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('PRES_IMPO','VITE_FACE','IMPE_FACE','LIAISON_UNIF' ),), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - PRES_IMPO =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - PRES =SIMP(statut='o',typ='C' ), - ), - VITE_FACE =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - VNOR =SIMP(statut='o',typ='C' ), - ), - IMPE_FACE =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - IMPE =SIMP(statut='o',typ='C' ), - ), - LIAISON_UNIF =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE' ),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - DDL =SIMP(statut='o',typ='TXM',max='**'), - ), -) ; -#& MODIF COMMANDE DATE 05/09/2005 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def affe_char_cine_prod(MECA_IMPO,THER_IMPO,ACOU_IMPO,**args): - if MECA_IMPO != None : return char_cine_meca - if THER_IMPO != None : return char_cine_ther - if ACOU_IMPO != None : return char_cine_acou - raise AsException("type de concept resultat non prevu") - -AFFE_CHAR_CINE=OPER(nom="AFFE_CHAR_CINE",op= 101,sd_prod=affe_char_cine_prod - ,fr="Affectation de conditions aux limites cinématiques constantes pour un traitement sans dualisation", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('MECA_IMPO','THER_IMPO','ACOU_IMPO'), - EXCLUS('MECA_IMPO','THER_IMPO'), - EXCLUS('MECA_IMPO','ACOU_IMPO'), - EXCLUS('THER_IMPO','ACOU_IMPO'),), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - MECA_IMPO =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', - 'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2', - 'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4', - 'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6', - 'VO6','WI6','WO6','WO','WI1','WO1','GONF','DCX','DCY','DCZ', - 'H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z', - 'E3X','E3Y','E3Z','E4X','E4Y','E4Z'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - DX =SIMP(statut='f',typ='R' ), - DY =SIMP(statut='f',typ='R' ), - DZ =SIMP(statut='f',typ='R' ), - DRX =SIMP(statut='f',typ='R' ), - DRY =SIMP(statut='f',typ='R' ), - DRZ =SIMP(statut='f',typ='R' ), - GRX =SIMP(statut='f',typ='R' ), - PRES =SIMP(statut='f',typ='R' ), - PHI =SIMP(statut='f',typ='R' ), - TEMP =SIMP(statut='f',typ='R' ), - PRE1 =SIMP(statut='f',typ='R' ), - PRE2 =SIMP(statut='f',typ='R' ), - UI2 =SIMP(statut='f',typ='R' ), - UI3 =SIMP(statut='f',typ='R' ), - UI4 =SIMP(statut='f',typ='R' ), - UI5 =SIMP(statut='f',typ='R' ), - UI6 =SIMP(statut='f',typ='R' ), - UO2 =SIMP(statut='f',typ='R' ), - UO3 =SIMP(statut='f',typ='R' ), - UO4 =SIMP(statut='f',typ='R' ), - UO5 =SIMP(statut='f',typ='R' ), - UO6 =SIMP(statut='f',typ='R' ), - VI2 =SIMP(statut='f',typ='R' ), - VI3 =SIMP(statut='f',typ='R' ), - VI4 =SIMP(statut='f',typ='R' ), - VI5 =SIMP(statut='f',typ='R' ), - VI6 =SIMP(statut='f',typ='R' ), - VO2 =SIMP(statut='f',typ='R' ), - VO3 =SIMP(statut='f',typ='R' ), - VO4 =SIMP(statut='f',typ='R' ), - VO5 =SIMP(statut='f',typ='R' ), - VO6 =SIMP(statut='f',typ='R' ), - WI2 =SIMP(statut='f',typ='R' ), - WI3 =SIMP(statut='f',typ='R' ), - WI4 =SIMP(statut='f',typ='R' ), - WI5 =SIMP(statut='f',typ='R' ), - WI6 =SIMP(statut='f',typ='R' ), - WO2 =SIMP(statut='f',typ='R' ), - WO3 =SIMP(statut='f',typ='R' ), - WO4 =SIMP(statut='f',typ='R' ), - WO5 =SIMP(statut='f',typ='R' ), - WO6 =SIMP(statut='f',typ='R' ), - WO =SIMP(statut='f',typ='R' ), - WI1 =SIMP(statut='f',typ='R' ), - WO1 =SIMP(statut='f',typ='R' ), - GONF =SIMP(statut='f',typ='R' ), - DCX =SIMP(statut='f',typ='R' ), - DCY =SIMP(statut='f',typ='R' ), - DCZ =SIMP(statut='f',typ='R' ), - H1X =SIMP(statut='f',typ='R' ), - H1Y =SIMP(statut='f',typ='R' ), - H1Z =SIMP(statut='f',typ='R' ), - E1X =SIMP(statut='f',typ='R' ), - E1Y =SIMP(statut='f',typ='R' ), - E1Z =SIMP(statut='f',typ='R' ), - E2X =SIMP(statut='f',typ='R' ), - E2Y =SIMP(statut='f',typ='R' ), - E2Z =SIMP(statut='f',typ='R' ), - E3X =SIMP(statut='f',typ='R' ), - E3Y =SIMP(statut='f',typ='R' ), - E3Z =SIMP(statut='f',typ='R' ), - E4X =SIMP(statut='f',typ='R' ), - E4Y =SIMP(statut='f',typ='R' ), - E4Z =SIMP(statut='f',typ='R' ), - ), - THER_IMPO =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), - AU_MOINS_UN('TEMP','TEMP_INF','TEMP_SUP'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - TEMP_SUP =SIMP(statut='f',typ='R' ), - TEMP =SIMP(statut='f',typ='R' ), - TEMP_INF =SIMP(statut='f',typ='R' ), - ), - ACOU_IMPO =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - PRES =SIMP(statut='o',typ='C' ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 05/09/2005 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -#fon -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def affe_char_cine_f_prod(MECA_IMPO,THER_IMPO,**args): - if MECA_IMPO != None : return char_cine_meca - if THER_IMPO != None : return char_cine_ther - raise AsException("type de concept resultat non prevu") - -AFFE_CHAR_CINE_F=OPER(nom="AFFE_CHAR_CINE_F",op= 108,sd_prod=affe_char_cine_f_prod, - fr="Affectation de conditions aux limites cinématiques fonction d'un (ou plusieurs) paramètres" - +" pour un traitement sans dualisation", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('MECA_IMPO','THER_IMPO'), - EXCLUS('MECA_IMPO','THER_IMPO'),), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - MECA_IMPO =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','TEMP','PHI'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - DX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - GRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PHI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - THER_IMPO =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), - AU_MOINS_UN('TEMP','TEMP_INF','TEMP_SUP' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - TEMP_SUP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TEMP_INF =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 24/10/2005 AUTEUR KHAM M.KHAM -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, - fr="Affectation de charges et conditions aux limites mécaniques constantes", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('DDL_IMPO','FACE_IMPO','CHAMNO_IMPO','LIAISON_DDL','LIAISON_XFEM','FORCE_NODALE', - 'FORCE_FACE','FORCE_ARETE','FORCE_CONTOUR','FORCE_INTERNE', - 'PRES_REP','FORCE_POUTRE','FORCE_COQUE','LIAISON_OBLIQUE', - 'FORCE_ELEC','INTE_ELEC','PESANTEUR','ROTATION','IMPE_FACE', - 'VITE_FACE','TEMP_CALCULEE','RELA_CINE_BP','EPSI_INIT','CONTACT', - 'LIAISON_GROUP','LIAISON_UNIF','FLUX_THM_REP', - 'LIAISON_SOLIDE','LIAISON_ELEM','ONDE_FLUI', - 'EPSA_CALCULEE','LIAISON_CHAMNO','VECT_ASSE','LIAISON_COQUE', - 'LIAISON_MAIL','LIAISON_CYCL','FORCE_TUYAU','SECH_CALCULEE','HYDR_CALCULEE', - 'EFFE_FOND','EVOL_CHAR','ARLEQUIN','DDL_POUTRE','GRAPPE_FLUIDE'), - ), - VERI_NORM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - MODELE =SIMP(statut='o',typ=(modele_sdaster) ), - TEMP_CALCULEE =SIMP(statut='f',fr="Champ de température issu d'un autre calcul", - typ=(evol_ther,cham_no_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 ), - EVOL_CHAR =SIMP(statut='f',fr="Champ de pression issu d'un autre calcul", - typ=evol_char ), - - PESANTEUR =SIMP(statut='f',typ='R',fr="Champ de pesanteur",min=4,max=4), - ROTATION =SIMP(statut='f',typ='R',fr="Champ de rotation", min=4,max=4), - b_rotation =BLOC ( condition = "ROTATION != None", - CENTRE =SIMP(statut='f',typ='R',defaut=(0.,0.,0.),max=3),), - - DDL_IMPO =FACT(statut='f',max='**', - fr="Impose à des noeuds une ou plusieurs valeurs de déplacement (ou de certaines grandeurs asscociées)", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', - 'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2', - 'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4', - 'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6', - 'VO6','WI6','WO6','WO','WI1','WO1','GONF','LIAISON','DCX', - 'DCY','DCZ','H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z', - 'E3X','E3Y','E3Z','E4X','E4Y','E4Z'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - LIAISON =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)), - DX =SIMP(statut='f',typ='R' ), - DY =SIMP(statut='f',typ='R' ), - DZ =SIMP(statut='f',typ='R' ), - DRX =SIMP(statut='f',typ='R' ), - DRY =SIMP(statut='f',typ='R' ), - DRZ =SIMP(statut='f',typ='R' ), - GRX =SIMP(statut='f',typ='R' ), - PRES =SIMP(statut='f',typ='R' ), - PHI =SIMP(statut='f',typ='R' ), - TEMP =SIMP(statut='f',typ='R' ), - PRE1 =SIMP(statut='f',typ='R' ), - PRE2 =SIMP(statut='f',typ='R' ), - UI2 =SIMP(statut='f',typ='R' ), - UI3 =SIMP(statut='f',typ='R' ), - UI4 =SIMP(statut='f',typ='R' ), - UI5 =SIMP(statut='f',typ='R' ), - UI6 =SIMP(statut='f',typ='R' ), - UO2 =SIMP(statut='f',typ='R' ), - UO3 =SIMP(statut='f',typ='R' ), - UO4 =SIMP(statut='f',typ='R' ), - UO5 =SIMP(statut='f',typ='R' ), - UO6 =SIMP(statut='f',typ='R' ), - VI2 =SIMP(statut='f',typ='R' ), - VI3 =SIMP(statut='f',typ='R' ), - VI4 =SIMP(statut='f',typ='R' ), - VI5 =SIMP(statut='f',typ='R' ), - VI6 =SIMP(statut='f',typ='R' ), - VO2 =SIMP(statut='f',typ='R' ), - VO3 =SIMP(statut='f',typ='R' ), - VO4 =SIMP(statut='f',typ='R' ), - VO5 =SIMP(statut='f',typ='R' ), - VO6 =SIMP(statut='f',typ='R' ), - WI2 =SIMP(statut='f',typ='R' ), - WI3 =SIMP(statut='f',typ='R' ), - WI4 =SIMP(statut='f',typ='R' ), - WI5 =SIMP(statut='f',typ='R' ), - WI6 =SIMP(statut='f',typ='R' ), - WO2 =SIMP(statut='f',typ='R' ), - WO3 =SIMP(statut='f',typ='R' ), - WO4 =SIMP(statut='f',typ='R' ), - WO5 =SIMP(statut='f',typ='R' ), - WO6 =SIMP(statut='f',typ='R' ), - WO =SIMP(statut='f',typ='R' ), - WI1 =SIMP(statut='f',typ='R' ), - WO1 =SIMP(statut='f',typ='R' ), - GONF =SIMP(statut='f',typ='R' ), - DCX =SIMP(statut='f',typ='R' ), - DCY =SIMP(statut='f',typ='R' ), - DCZ =SIMP(statut='f',typ='R' ), - H1X =SIMP(statut='f',typ='R' ), - H1Y =SIMP(statut='f',typ='R' ), - H1Z =SIMP(statut='f',typ='R' ), - E1X =SIMP(statut='f',typ='R' ), - E1Y =SIMP(statut='f',typ='R' ), - E1Z =SIMP(statut='f',typ='R' ), - E2X =SIMP(statut='f',typ='R' ), - E2Y =SIMP(statut='f',typ='R' ), - E2Z =SIMP(statut='f',typ='R' ), - E3X =SIMP(statut='f',typ='R' ), - E3Y =SIMP(statut='f',typ='R' ), - E3Z =SIMP(statut='f',typ='R' ), - E4X =SIMP(statut='f',typ='R' ), - E4Y =SIMP(statut='f',typ='R' ), - E4Z =SIMP(statut='f',typ='R' ), - ), - - - - DDL_POUTRE =FACT(statut='f',max='**', - fr="Bloque des DDLs dans un repère local d'une poutre", - regles=(AU_MOINS_UN('GROUP_NO','NOEUD'), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ'), - UN_PARMI('VECT_Y','ANGL_VRIL'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - DX =SIMP(statut='f',typ='R' ), - DY =SIMP(statut='f',typ='R' ), - DZ =SIMP(statut='f',typ='R' ), - DRX =SIMP(statut='f',typ='R' ), - DRY =SIMP(statut='f',typ='R' ), - DRZ =SIMP(statut='f',typ='R' ), -# définition du repère local - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), - ANGL_VRIL =SIMP(statut='f',typ='R',), -# restriction sur les mailles servant à définir le repère local - GROUP_MA =SIMP(statut='f',typ=grma,), - MAILLE =SIMP(statut='f',typ=ma,), - ), - - - - FACE_IMPO =FACT(statut='f',max='**', - fr="Impose à tous les noeuds d'une face une ou plusieurs valeurs de déplacement (ou de certaines grandeurs associées)", - regles=(UN_PARMI('GROUP_MA','MAILLE',), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', - 'TEMP','PRE1','PRE2','DNOR','DTAN'), - EXCLUS('DNOR','DX'), - EXCLUS('DNOR','DY'), - EXCLUS('DNOR','DZ'), - EXCLUS('DNOR','DRX'), - EXCLUS('DNOR','DRY'), - EXCLUS('DNOR','DRZ'), - EXCLUS('DTAN','DX'), - EXCLUS('DTAN','DY'), - EXCLUS('DTAN','DZ'), - EXCLUS('DTAN','DRX'), - EXCLUS('DTAN','DRY'), - EXCLUS('DTAN','DRZ'),), -# rajout d'un mot clé REPERE :/ LOCAL /GLOBAL - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - DX =SIMP(statut='f',typ='R' ), - DY =SIMP(statut='f',typ='R' ), - DZ =SIMP(statut='f',typ='R' ), - DRX =SIMP(statut='f',typ='R' ), - DRY =SIMP(statut='f',typ='R' ), - DRZ =SIMP(statut='f',typ='R' ), - DNOR =SIMP(statut='f',typ='R' ), - DTAN =SIMP(statut='f',typ='R' ), - GRX =SIMP(statut='f',typ='R' ), - PRES =SIMP(statut='f',typ='R' ), - PHI =SIMP(statut='f',typ='R' ), - TEMP =SIMP(statut='f',typ='R' ), - PRE1 =SIMP(statut='f',typ='R' ), - PRE2 =SIMP(statut='f',typ='R' ), - ), - - CHAMNO_IMPO =FACT(statut='f',max='**', - fr="Impose des DDLs aux valeurs d'un concept cham_no_sdaster", -# type de cham_no_sdaster CO() - CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster), #CO() - COEF_MULT =SIMP(statut='o',typ='R' ), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), - ), - - - LIAISON_DDL =FACT(statut='f',max='**', - fr="Définit une relation linéaire entre des DDLs de deux ou plusieurs noeuds", - regles=(UN_PARMI('GROUP_NO','NOEUD'),), - GROUP_NO =SIMP(statut='f',typ=grno ,max='**'), - NOEUD =SIMP(statut='f',typ=no ,max='**'), - DDL =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT =SIMP(statut='o',typ='R' ,max='**'), - COEF_IMPO =SIMP(statut='o',typ='R' ), - ), - - LIAISON_OBLIQUE =FACT(statut='f',max='**', - fr="Applique à des noeuds la meme valeur de déplacement définie composante par composante" - +" dans un repère oblique quelconque", - regles=(UN_PARMI('GROUP_NO','NOEUD'), - UN_PARMI('DX','DY','DZ','DRX','DRY','DRZ'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - ANGL_NAUT =SIMP(statut='o',typ='R',max=3), - DX =SIMP(statut='f',typ='R' ), - DY =SIMP(statut='f',typ='R' ), - DZ =SIMP(statut='f',typ='R' ), - DRX =SIMP(statut='f',typ='R' ), - DRY =SIMP(statut='f',typ='R' ), - DRZ =SIMP(statut='f',typ='R' ), - ), - - LIAISON_GROUP =FACT(statut='f',max='**', - fr="Définit la meme relation linéaire entre certains DDLs de couples de noeuds", - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), - UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'), - EXCLUS('GROUP_MA_1','GROUP_NO_2'), - EXCLUS('GROUP_MA_1','NOEUD_2'), - EXCLUS('GROUP_NO_1','GROUP_MA_2'), - EXCLUS('GROUP_NO_1','MAILLE_2'), - EXCLUS('MAILLE_1','GROUP_NO_2'), - EXCLUS('MAILLE_1','NOEUD_2'), - EXCLUS('NOEUD_1','GROUP_MA_2'), - EXCLUS('NOEUD_1','MAILLE_2'), - EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),), - - GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), - DDL_1 =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT_1 =SIMP(statut='o',typ='R' ,max='**'), - DDL_2 =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT_2 =SIMP(statut='o',typ='R' ,max='**'), - COEF_IMPO =SIMP(statut='o',typ='R' ), - SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ), - TRAN =SIMP(statut='f',typ='R',max=3), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - CENTRE =SIMP(statut='f',typ='R',max=3), - ), - - LIAISON_MAIL =FACT(statut='f',max='**', - fr="Définit des relations linéaires permettant de recoller deux bords d'une structure", - regles=(AU_MOINS_UN('GROUP_MA_MAIT','MAILLE_MAIT'), - AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL'), - PRESENT_PRESENT('DDL_MAIT','DDL_ESCL'),), - GROUP_MA_MAIT =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_MAIT =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_ESCL =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_ESCL =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_ESCL =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_ESCL =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - TRAN =SIMP(statut='f',typ='R',max=3 ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3 ), - CENTRE =SIMP(statut='f',typ='R',max=3 ), - DDL_MAIT =SIMP(statut='f',typ='TXM',into=("DNOR",) ), - DDL_ESCL =SIMP(statut='f',typ='TXM',into=("DNOR",) ), - ELIM_MULT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - - LIAISON_CYCL =FACT(statut='f',max='**', - fr="Définit des relations linéaires permettant de recoller les bords de deux parties symétriquement cycliques", - regles=(AU_MOINS_UN('GROUP_MA_MAIT1','MAILLE_MAIT1'), - AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL'), - PRESENT_PRESENT('DDL_MAIT','DDL_ESCL'), - ), - GROUP_MA_MAIT1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_MAIT1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_MAIT2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_MAIT2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_ESCL =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_ESCL =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_ESCL =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_ESCL =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - TRAN =SIMP(statut='f',typ='R',max=3 ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3 ), - CENTRE =SIMP(statut='f',typ='R',max=3 ), - COEF_MAIT1 =SIMP(statut='f',typ='R',max=1 ), - COEF_MAIT2 =SIMP(statut='f',typ='R',max=1 ), - COEF_ESCL =SIMP(statut='f',typ='R',max=1 ), - DDL_MAIT =SIMP(statut='f',typ='TXM',into=("DNOR",) ), - DDL_ESCL =SIMP(statut='f',typ='TXM',into=("DNOR",) ), - ), - - - LIAISON_SOLIDE =FACT(statut='f',fr="Modélise une partie indéformable d'une structure",max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), - ), - - LIAISON_ELEM =FACT(statut='f',max='**', - fr="Modélise le raccord d'une partie massive 3D avec une poutre ou avec un tuyau, le raccord d'une coque" - +" avec une poutre ou avec un tuyau", - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'), - UN_PARMI('GROUP_NO_2','NOEUD_2'),), - OPTION =SIMP(statut='o',typ='TXM',into=("3D_TUYAU","3D_POU","COQ_POU","COQ_TUYAU") ), - GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), - CARA_ELEM =SIMP(statut='f',typ=(cara_elem) ), - AXE_POUTRE =SIMP(statut='f',typ='R',max=3), - ANGL_MAX =SIMP(statut='f',typ='R',defaut= 1. ), - ), - - LIAISON_UNIF =FACT(statut='f',max='**', - fr="Impose une meme valeur (inconnue) à des DDLs d'un ensemble de noeuds", - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - DDL =SIMP(statut='o',typ='TXM',max='**'), - ), - - LIAISON_CHAMNO =FACT(statut='f',max='**', - fr="Définit une relation linéaire entre tous les DDLs présents dans un concept CHAM_NO", -# type de cham_no_sdaster CO() - CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster), #CO() - COEF_IMPO =SIMP(statut='o',typ='R' ), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), - ), - - LIAISON_XFEM =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ), - - VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r ), - - CONTACT =FACT(statut='f',max='**', - fr="Définit les zones soumises à des conditions de contact unilatéral avec ou sans frottement", - regles=(UN_PARMI('GROUP_MA_ESCL','MAILLE_ESCL'),), - APPARIEMENT =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL", - into=("NON","NODAL","MAIT_ESCL","MAIT_ESCL_SYME")), - RECHERCHE =SIMP(statut='f',typ='TXM',defaut="NOEUD_BOUCLE", - into=("NOEUD_BOUCLE","NOEUD_VOISIN")), - LISSAGE =SIMP(statut='f',typ='TXM',defaut="NON", - into=("OUI","NON")), - NORMALE =SIMP(statut='f',typ='TXM',defaut="MAIT", - into=("MAIT","MAIT_ESCL")), - METHODE =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE", - into=("VERIF","CONTRAINTE","LAGRANGIEN","PENALISATION","CONTINUE") ), - PROJECTION =SIMP(statut='f',typ='TXM',defaut="LINEAIRE", - into=("LINEAIRE","QUADRATIQUE") ), - GROUP_MA_MAIT =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), - MAILLE_MAIT =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_ESCL =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), - MAILLE_ESCL =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - - b_verif =BLOC(condition = "METHODE == 'VERIF' ", - fr="Paramètres de la méthode sans calcul de contact", - STOP_INTERP =SIMP(statut='f',typ='TXM',defaut="NON", - into=("OUI","NON")), - TOLE_INTERP =SIMP(statut='f',typ='R',defaut = 0.), - DIST_MAIT =SIMP(statut='f',typ='R'), - DIST_ESCL =SIMP(statut='f',typ='R'), - VECT_NORM_ESCL =SIMP(statut='f',typ='R',max=3), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), - ), - - b_active =BLOC(condition = "METHODE == 'CONTRAINTE' ", - fr="Paramètres de la méthode des contraintes actives (contact uniquement)", - regles=(EXCLUS('DIST_ESCL','COEF_IMPO'), - EXCLUS('DIST_MAIT','COEF_IMPO'),), - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL", - into=("DEPL","PRES","TEMP","PRE1","PRE2")), - GLISSIERE =SIMP(statut='f',typ='TXM',defaut="NON", - into=("OUI","NON")), - b_glissiere =BLOC(condition = "GLISSIERE == 'OUI' ", - ALARME_JEU =SIMP(statut='f',typ='R',defaut=0.), - ), - TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), - TOLE_PROJ_INT =SIMP(statut='f',typ='R' ,defaut=0.001), - TOLE_REAC_GEOM =SIMP(statut='f',typ='R' ,defaut=0.05), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI", - into=("OUI","NON")), - NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), - REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE", - into=("AUTOMATIQUE","CONTROLE","SANS")), - b_reac_sans =BLOC(condition = "REAC_GEOM == 'SANS' ", - fr="Paramètre de la réactualisation géométrique", - - STOP_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="NON", - into=("OUI","NON")), - ), - b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ", - fr="Paramètre de la réactualisation géométrique", - NB_REAC_GEOM =SIMP(statut='o',typ='I'), - - STOP_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME", - into=("OUI","NON")), - ), - b_reac_auto =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", - fr="Paramètre de la réactualisation géométrique auto", - NB_REAC_MAXI =SIMP(statut='o',typ='I',defaut = 10), - ), - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - COEF_IMPO =SIMP(statut='f',typ='R'), - COEF_MULT_ESCL =SIMP(statut='f',typ='R'), - VECT_NORM_ESCL =SIMP(statut='f',typ='R',max=3), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), - DIST_MAIT =SIMP(statut='f',typ='R'), - DIST_ESCL =SIMP(statut='f',typ='R'), - - ), - b_lagrangien =BLOC(condition = "METHODE == 'LAGRANGIEN' ", - fr="Paramètres de la méthode Lagrangienne (contact avec ou sans frottement)", - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)), - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), - TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), - TOLE_PROJ_INT =SIMP(statut='f',typ='R' ,defaut=0.001), - TOLE_REAC_GEOM =SIMP(statut='f',typ='R' ,defaut=0.05), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI", - into=("OUI","NON")), - NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), - ITER_MULT_MAXI =SIMP(statut='f',typ='I' ,defaut=4), - - REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE", - into=("AUTOMATIQUE","CONTROLE","SANS")), - b_reac_sans =BLOC(condition = "REAC_GEOM == 'SANS' ",fr="Paramètre de la réactualisation géométrique", - VERI_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME", - into=("ALARME","ERREUR","NON")), - ), - b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Paramètre de la réactualisation géométrique", - NB_REAC_GEOM =SIMP(statut='o',typ='I'), - - VERI_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME", - into=("ALARME","ERREUR","NON")), - ), - b_reac_auto =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", - fr="Paramètre de la réactualisation géométrique auto", - NB_REAC_MAXI =SIMP(statut='o',typ='I',defaut = 10), - ), - - - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - DIST_MAIT =SIMP(statut='f',typ='R'), - DIST_ESCL =SIMP(statut='f',typ='R'), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), - b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", - COULOMB =SIMP(statut='o',typ='R',), - 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",) ), - TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), - TOLE_PROJ_INT =SIMP(statut='f',typ='R' ,defaut=0.001), - TOLE_REAC_GEOM =SIMP(statut='f',typ='R' ,defaut=0.05), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI", - into=("OUI","NON")), - NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), - ITER_MULT_MAXI =SIMP(statut='f',typ='I',defaut=4), - - REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE", - into=("AUTOMATIQUE","CONTROLE","SANS")), - b_reac_sans =BLOC(condition = "REAC_GEOM == 'SANS' ",fr="Paramètre de la réactualisation géométrique", - VERI_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME", - into=("ALARME","ERREUR","NON")), - ), - b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Paramètre de la réactualisation géométrique", - NB_REAC_GEOM =SIMP(statut='o',typ='I'), - - VERI_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME", - into=("ALARME","ERREUR","NON")), - ), - b_reac_auto =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", - fr="Paramètre de la réactualisation géométrique auto", - NB_REAC_MAXI =SIMP(statut='o',typ='I',defaut = 10), - ), - - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - DIST_MAIT =SIMP(statut='f',typ='R'), - DIST_ESCL =SIMP(statut='f',typ='R'), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), - - b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", - COULOMB =SIMP(statut='o',typ='R',), - E_T =SIMP(statut='f',typ='R', - fr="Active la pénalisation sur le frottement et définit le coefficient de pénalisation"), - COEF_MATR_FROT =SIMP(statut='f',typ='R',defaut=0.E+0), - ),), - - b_continue =BLOC(condition = "METHODE == 'CONTINUE' ", - fr="Paramètres de la méthode continue (contact avec ou sans frottement)", -# regles=(UN_PARMI('GLISSIERE','FROTTEMENT'),), - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE")), - GLISSIERE =SIMP(statut='f',typ='TXM',defaut="NON", - into=("OUI","NON")), - b_glissiere =BLOC(condition = "GLISSIERE == 'OUI' ", - ALARME_JEU =SIMP(statut='f',typ='R',defaut=0.), - ), - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), - COMPLIANCE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - INTEGRATION =SIMP(statut='f',typ='TXM',defaut="NOEUD",into=("GAUSS","NOEUD","SIMPSON","SIMPSON1","SIMPSON2", - "NCOTES","NCOTES1","NCOTES2")), - COEF_REGU_CONT =SIMP(statut='f',typ='R',defaut=100.E+0), - MODL_AXIS =SIMP(statut='o',typ='TXM',into=("OUI","NON")), - FORMULATION =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE")), - DIRE_APPA =SIMP(statut='f',typ='R',max=3,defaut=(0.,0.,0.,)), - ITER_GEOM_MAXI =SIMP(statut='f',typ='I',defaut=2), - ITER_CONT_MAXI =SIMP(statut='f',typ='I',defaut=30), - DIST_MAIT =SIMP(statut='f',typ='R',defaut=0.), - DIST_ESCL =SIMP(statut='f',typ='R',defaut=0.), - CONTACT_INIT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - b_compliance =BLOC(condition = "COMPLIANCE == 'OUI' ",fr="Parametres de la compliance", - ASPERITE =SIMP(statut='o',typ='R',), - E_N =SIMP(statut='o',typ='R',), - E_V =SIMP(statut='f',typ='R',defaut=0.E+0),), - b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", - COULOMB =SIMP(statut='o',typ='R',), - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), - VECT_Z =SIMP(statut='f',typ='R',min=3,max=3), - ITER_FROT_MAXI =SIMP(statut='f',typ='I',defaut=2), - COEF_REGU_FROT =SIMP(statut='f',typ='R',defaut=100.E+0), - SEUIL_INIT =SIMP(statut='f',typ='R',defaut=0.E+0),),), - ), - - FORCE_NODALE =FACT(statut='f',fr="Applique à des noeuds des forces nodales",max='**', - regles=(AU_MOINS_UN('GROUP_NO','NOEUD'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - MX =SIMP(statut='f',typ='R' ), - MY =SIMP(statut='f',typ='R' ), - MZ =SIMP(statut='f',typ='R' ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - ), - - FORCE_FACE =FACT(statut='f',max='**', - fr="Applique des forces surfaciques sur une face d'élément volumique", - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - ), - - FORCE_ARETE =FACT(statut='f',max='**', - fr="Applique des forces linéiques à une arete d'élément volumique ou de coque", - regles=(AU_MOINS_UN('GROUP_MA','MAILLE',), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - MX =SIMP(statut='f',typ='R' ), - MY =SIMP(statut='f',typ='R' ), - MZ =SIMP(statut='f',typ='R' ), - ), - - FORCE_CONTOUR =FACT(statut='f',max='**', - fr="Applique des forces linéiques au bord d'un domaine 2D ou AXIS ou AXIS_FOURIER", - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - MX =SIMP(statut='f',typ='R' ), - MY =SIMP(statut='f',typ='R' ), - MZ =SIMP(statut='f',typ='R' ), - ), - - FORCE_INTERNE =FACT(statut='f',max='**', - fr="Applique des forces volumiques (2D ou 3D) à un domaine volumique", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - ), - - PRES_REP =FACT(statut='f',max='**', - fr="Applique une pression à un domaine de milieu continu 2D ou 3D, ou à un domaine de coques et tuyaux", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('PRES','CISA_2D' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - PRES =SIMP(statut='f',typ='R' ), - CISA_2D =SIMP(statut='f',typ='R' ), - ), - - EFFE_FOND =FACT(statut='f',max='**', - fr="Calcul l'effet de fond sur une branche de tuyauterie (modélisation 3D) soumise à une pression", - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),), - GROUP_MA_INT =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - PRES =SIMP(statut='o',typ='R' ), - ), - - EPSI_INIT =FACT(statut='f',max='**', - fr="Applique un chargement de déformation initiale à un élément 2D, 3D ou de structure", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ','EPX', - 'KY','KZ','EXX','EYY','EXY','KXX','KYY','KXY'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - EPXX =SIMP(statut='f',typ='R' ), - EPYY =SIMP(statut='f',typ='R' ), - EPZZ =SIMP(statut='f',typ='R' ), - EPXY =SIMP(statut='f',typ='R' ), - EPXZ =SIMP(statut='f',typ='R' ), - EPYZ =SIMP(statut='f',typ='R' ), - EPX =SIMP(statut='f',typ='R' ), - KY =SIMP(statut='f',typ='R' ), - KZ =SIMP(statut='f',typ='R' ), - EXX =SIMP(statut='f',typ='R' ), - EYY =SIMP(statut='f',typ='R' ), - EXY =SIMP(statut='f',typ='R' ), - KXX =SIMP(statut='f',typ='R' ), - KYY =SIMP(statut='f',typ='R' ), - KXY =SIMP(statut='f',typ='R' ), - ), - - ARLEQUIN =FACT(statut='f',min=1,max='**', - fr="Définit les paramètres de la méthode Arlequin", - GROUP_MA_1 =SIMP(statut='o',typ=grma,max='**'), - GROUP_MA_2 =SIMP(statut='o',typ=grma,max='**'), - GROUP_MA_COLL =SIMP(statut='f',typ=grma,max='**'), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - COND_LIM =SIMP(statut='f',typ=char_meca ), - COLLAGE =SIMP(statut='f',typ='TXM',defaut="GROSSIER",into=("GROSSIER","FIN","GROUP_MA_1","GROUP_MA_2"),), - regles =(UN_PARMI('POIDS_1','POIDS_2','POIDS_GROSSIER','POIDS_FIN',),), - POIDS_1 =SIMP(statut='f',typ='R'), - POIDS_2 =SIMP(statut='f',typ='R'), - POIDS_GROSSIER =SIMP(statut='f',typ='R'), - POIDS_FIN =SIMP(statut='f',typ='R'),), - - FORCE_POUTRE =FACT(statut='f',max='**', - fr="Applique des forces linéiques sur des éléments de type poutre", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','N','VY','VZ'), - PRESENT_ABSENT('FX','N','VY','VZ'), - PRESENT_ABSENT('FY','N','VY','VZ'), - PRESENT_ABSENT('FZ','N','VY','VZ'), - PRESENT_ABSENT('N','FX','FY','FZ'), - PRESENT_ABSENT('VY','FX','FY','FZ'), - PRESENT_ABSENT('VZ','FX','FY','FZ'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE",) ), -# rajour d'un mot clé REPERE :/ LOCAL /GLOBAL - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - - N =SIMP(statut='f',typ='R' ), - VY =SIMP(statut='f',typ='R' ), - VZ =SIMP(statut='f',typ='R' ), - - ), - - FORCE_TUYAU =FACT(statut='f',max='**', - fr="Applique une pression sur des éléments TUYAU", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - PRES =SIMP(statut='f',typ='R' ), - ), - - FORCE_COQUE =FACT(statut='f',max='**', - fr="Applique des forces surfaciques sur des éléments de types coques", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('FX','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('FY','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('FZ','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('MX','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('MY','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('MZ','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('F1','FX','FY','FZ','MX','MY','MZ','PRES'), - PRESENT_ABSENT('F2','FX','FY','FZ','MX','MY','MZ','PRES'), - PRESENT_ABSENT('F3','FX','FY','FZ','MX','MY','MZ','PRES'), - PRESENT_ABSENT('MF1','FX','FY','FZ','MX','MY','MZ','PRES'), - PRESENT_ABSENT('MF2','FX','FY','FZ','MX','MY','MZ','PRES'), - PRESENT_ABSENT('PRES','FX','FY','FZ','MX','MY','MZ','F1','F2','F3','MF1','MF2'),), -# rajour d'un mot clé REPERE :/ LOCAL /GLOBAL - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - MX =SIMP(statut='f',typ='R' ), - MY =SIMP(statut='f',typ='R' ), - MZ =SIMP(statut='f',typ='R' ), - - F1 =SIMP(statut='f',typ='R' ), - F2 =SIMP(statut='f',typ='R' ), - F3 =SIMP(statut='f',typ='R' ), - MF1 =SIMP(statut='f',typ='R' ), - MF2 =SIMP(statut='f',typ='R' ), - - PRES =SIMP(statut='f',typ='R' ), - PLAN =SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL",) ), - ), - - - GRAPPE_FLUIDE =FACT(statut='f',max='**', - fr="Définit les données de calcul des forces fluides lors des études de chute de grappe", - regles=(EXCLUS('GROUP_NO_EXTR','NOEUD_EXTR'), - EXCLUS('GROUP_NO_ORIG','NOEUD_ORIG'), - PRESENT_PRESENT('CARA_HYDR','VALE_HYDR'), - PRESENT_PRESENT('CARA_GRAPPE','VALE_GRAPPE'), - PRESENT_PRESENT('CARA_COMMANDE','VALE_COMMANDE'), - PRESENT_PRESENT('CARA_MANCHETTE','VALE_MANCHETTE'), - PRESENT_PRESENT('CARA_GUIDE','VALE_GUIDE'), - PRESENT_PRESENT('CARA_ASSEMBLAGE','VALE_ASSEMBLAGE'), - PRESENT_PRESENT('CARA_PDC','VALE_PDC'),), - GROUP_MA =SIMP(statut='f',typ=grma,max=1), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno,max=1), - NOEUD_EXTR =SIMP(statut='f',typ=no,max=1), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,max=1), - NOEUD_ORIG =SIMP(statut='f',typ=no,max=1), - Z0 =SIMP(statut='f',typ='R' ), - CARA_HYDR =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - fr="définition des données hydrauliques", - into=("Q","ROC","ROD","ROP","ROM","ROML","ROG","NUC","NUM", - "NUML","NUG","P2","P3","P4","CGG","G") ), - VALE_HYDR =SIMP(statut='f',typ='R',max='**', - fr="valeurs des données hydrauliques",), - CARA_GRAPPE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - fr="définition des données géométriques de la grappe", - into=("M","DTIGE","DTMOY","ROTIGE","LTIGE","LLT","LCT", - "VARAI","RORAI","DCRAY","ROCRAY","LCRAY","LCHUT", - "CFCM","CFCI","CFCG","HRUGC","HRUGTC","NCA") ), - VALE_GRAPPE =SIMP(statut='f',typ='R',max='**', - fr="valeurs des données géométriques de la grappe",), - CARA_COMMANDE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - fr="définition des données géométriques du mécanisme de commande", - into=("LI","LML","LG","LIG","DIML","DEML","DCSP", - "DG","HRUGML","HRUGCSP","HRUGG") ), - VALE_COMMANDE =SIMP(statut='f',typ='R',max='**', - fr="valeurs des données géométriques du mécanisme de commande",), - CARA_MANCHETTE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - fr="définition des données géométriques de la manchette et son adaptateur", - into=("LM","LA","LIM","DIMT","DEMT","DCMT","VMT", - "ROMT","DA","HRUGM","HRUGA") ), - VALE_MANCHETTE =SIMP(statut='f',typ='R',max='**', - fr="valeurs des données géométriques de la manchette et son adaptateur",), - CARA_GUIDE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - fr="définition des données géométriques des tubes guides", - into=("NRET","L0","L1","L2","L3","L4","DTG","DR", - "DOR","D0","D00","HRUGTG") ), - VALE_GUIDE =SIMP(statut='f',typ='R',max='**', - fr="valeurs des données géométriques des tubes guides",), - CARA_ASSEMBLAGE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - fr="définition des données géométriques des assemblages", - into=("SASS","DCC","DTI","NGM","NGMDP","KM","KS","KI", - "KES","KEI","KF") ), - VALE_ASSEMBLAGE =SIMP(statut='f',typ='R',max='**', - fr="valeurs des données géométriques des assemblages",), - CARA_PDC =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - fr="définition des coefficients de perte de charge singulière", - into=("CD0","CD1","CD2","CDELARG","CDRET","CDM","CDA","CDML", - "CDI","CDG") ), - VALE_PDC =SIMP(statut='f',typ='R',max='**', - fr="valeurs des coefficients de perte de charge singulière",), - APPL_FORC_ARCHI =SIMP(statut='f',typ='TXM',defaut="REPARTIE" , - fr="application de la force d'archimède", - into=("REPARTIE","CDG") ), - APPL_FORC_FPLAQ =SIMP(statut='f',typ='TXM',defaut="REPARTIE" , - fr="application de la force de plaquage dans le guidage continu", - into=("REPARTIE","CDG","ZONE","MILIEU","DISTRI") ), - APPL_FORC_FMEC =SIMP(statut='f',typ='TXM',defaut="REPARTIE" , - fr="application de la force dans le mécanisme de levée", - into=("REPARTIE","CDG","ZONE","PTREP") ), - APPL_FORC_FTG =SIMP(statut='f',typ='TXM',defaut="REPARTIE" , - fr="application de la force tube_guide", - into=("REPARTIE","CDG","ZONE","PTREP") ), - DIRE_FORC_FPLAQ =SIMP(statut='f',typ='R',min=3,max=3, - fr="direction d'application de la force de plaquage",), - b_CDG =BLOC(condition = "(APPL_FORC_ARCHI == 'CDG') or (APPL_FORC_FPLAQ == 'CDG') or \ - (APPL_FORC_FMEC == 'CDG') or (APPL_FORC_FTG == 'CDG')", - MASS_INER =SIMP(statut='o',typ=tabl_mass_iner ), - ), - UNITE_IMPR_FORCE =SIMP(statut='f',typ='I', - fr="unité d'impression des forces",), - UNITE_IMPR_NOEUD =SIMP(statut='f',typ='I', - fr="unité d'impression des noeuds par zone",), - ), - - LIAISON_COQUE =FACT(statut='f',max='**', - fr="Permet de représenter le raccord entre des éléments de coques au moyen des relations linéaires", - GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), - ), - - RELA_CINE_BP =FACT(statut='f',max='**', - fr="Etablir des relations cinématiques permettant de relier les noeuds cable aux noeuds du béton, et spécifier" - +" la prise en compte des contraintes initiales dans les cables", - CABLE_BP =SIMP(statut='o',typ=cabl_precont ), - SIGM_BPEL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - RELA_CINE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - - FORCE_ELEC =FACT(statut='f',max='**', - fr="Appliquer la force de LAPLACE agissant sur un conducteur principal, due à la présence d'un conducteur" - +" secondaire droit", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - - POSITION =SIMP(statut='f',typ='TXM',fr="Direction prédéfinie",into=("PARA","INFI","FINI",) ), - b_fxyz =BLOC ( condition = "POSITION == None", - FX =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - FY =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - FZ =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - - b_para =BLOC ( condition = "POSITION == 'PARA'", - regles=(UN_PARMI('TRANS','DIST'),), - TRANS =SIMP(statut='f',typ='R',max=3), - DIST =SIMP(statut='f',typ='R' ), - b_point2 =BLOC ( condition = "DIST != None", - POINT2 =SIMP(statut='o',typ='R',max=3), - ), - ), - b_fini_infi =BLOC ( condition = "(POSITION == 'FINI') or (POSITION == 'INFI')", - POINT1 =SIMP(statut='o',typ='R',max=3), - POINT2 =SIMP(statut='o',typ='R',max=3), - ), - ), - - - - - INTE_ELEC =FACT(statut='f',max='**', - fr="Appliquer la force de LAPLACE agissant sur un conducteur principal, due à la présence d'un conducteur" - +" secondaire non nécessairement droit", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('GROUP_MA_2','MAILLE_2','TRANS','SYME'), - EXCLUS('TRANS','SYME'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - TRANS =SIMP(statut='f',typ='R' ,max='**'), - SYME =SIMP(statut='f',typ='R' ,max='**'), - ), - - - IMPE_FACE =FACT(statut='f',fr="Applique une impédance acoustique à une face",max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE' ),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - IMPE =SIMP(statut='o',typ='R' ), - ), - - VITE_FACE =FACT(statut='f',fr="Impose des vitesses normales à une face (phénomène ACOUSTIQUE), ",max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - VNOR =SIMP(statut='o',typ='R' ), - ), - - - - ONDE_FLUI =FACT(statut='f',max='**', - fr="Applique une amplitude de pression d'onde incidente sinusoidale arrivant normalement à une face", - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - PRES =SIMP(statut='o',typ='R' ), - ), - - FLUX_THM_REP =FACT(statut='f',max='**', - fr="Applique à un domaine de milieu continu 2D ou 3D un flux de chaleur et/ou un apport de masse fluide" - +" (flux hydraulique)", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FLUN','FLUN_HYDR1','FLUN_HYDR2'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FLUN =SIMP(statut='f',typ='R' ), - FLUN_HYDR1 =SIMP(statut='f',typ='R' ), - FLUN_HYDR2 =SIMP(statut='f',typ='R' ), - ), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; - - -#& MODIF COMMANDE DATE 24/08/2005 AUTEUR MABBAS M.ABBAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -AFFE_CHAR_MECA_C=OPER(nom="AFFE_CHAR_MECA_C",op= 7,sd_prod=char_meca, - fr="Affectation de charges et conditions aux limites mécaniques complexes", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('DDL_IMPO','FORCE_POUTRE','LIAISON_DDL', ),), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - DDL_IMPO =FACT(statut='f',max='**', - fr="Impose à des noeuds une ou plusieurs valeurs de déplacement (ou de certaines grandeurs asscociées)", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD',), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI','LIAISON', ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - LIAISON =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)), - DX =SIMP(statut='f',typ='C' ), - DY =SIMP(statut='f',typ='C' ), - DZ =SIMP(statut='f',typ='C' ), - DRX =SIMP(statut='f',typ='C' ), - DRY =SIMP(statut='f',typ='C' ), - DRZ =SIMP(statut='f',typ='C' ), - GRX =SIMP(statut='f',typ='C' ), - PRES =SIMP(statut='f',typ='C' ), - PHI =SIMP(statut='f',typ='C' ), - ), - FORCE_POUTRE =FACT(statut='f',max='**', - fr="Applique des forces linéiques sur des éléments de type poutre", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','N','VY','VZ',), - PRESENT_ABSENT('FX','N','VY','VZ',), - PRESENT_ABSENT('FY','N','VY','VZ',), - PRESENT_ABSENT('FZ','N','VY','VZ',), - PRESENT_ABSENT('N','FX','FY','FZ',), - PRESENT_ABSENT('VY', 'FX','FY','FZ',), - PRESENT_ABSENT('VZ','FX','FY','FZ', ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE") ), - FX =SIMP(statut='f',typ='C' ), - FY =SIMP(statut='f',typ='C' ), - FZ =SIMP(statut='f',typ='C' ), - N =SIMP(statut='f',typ='C' ), - VY =SIMP(statut='f',typ='C' ), - VZ =SIMP(statut='f',typ='C' ), - ), - LIAISON_DDL =FACT(statut='f',max='**', - fr="Définit une relation linéaire entre les DDLs de deux ou plusieurs noeuds", - regles=(UN_PARMI('GROUP_NO','NOEUD', ),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no ,max='**'), - DDL =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT =SIMP(statut='o',typ='R' ,max='**'), - COEF_IMPO =SIMP(statut='o',typ='C' ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 11/10/2005 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 G8BHHXD X.DESROCHES -AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, - fr="Affectation de charges et conditions aux limites mécaniques fonction d'un (ou plusieurs) paramètres", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('DDL_IMPO','FACE_IMPO','LIAISON_DDL','FORCE_NODALE', - 'FORCE_FACE','FORCE_ARETE','FORCE_CONTOUR','FORCE_INTERNE', - 'PRES_REP','FORCE_POUTRE','VITE_FACE','IMPE_FACE','ONDE_PLANE', - 'LIAISON_OBLIQUE','EPSI_INIT','LIAISON_GROUP','LIAISON_UNIF', - 'LIAISON_SOLIDE','FORCE_COQUE','LIAISON_COQUE','FORCE_TUYAU', - 'CONTACT','EFFE_FOND','FLUX_THM_REP'),), - VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - VERI_NORM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - MODELE =SIMP(statut='o',typ=modele_sdaster), - - DDL_IMPO =FACT(statut='f',max='**', - fr="Impose à des noeuds une ou plusieurs valeurs de déplacement (ou de certaines grandeurs asscociées) fournies" - +" par l'intermédiaire d'un concept fonction ", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', - 'TEMP','PRE1','PRE2','LIAISON','DCX','DCY','DCZ','H1X', - 'H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z', - 'E3X','E3Y','E3Z','E4X','E4Y','E4Z'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - LIAISON =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)), - DX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - GRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PHI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRE1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRE2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DCX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DCY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DCZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - H1X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - H1Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - H1Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - E1X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - E1Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - E1Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - E2X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - E2Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - E2Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - E3X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - E3Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - E3Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - E4X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - E4Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - E4Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - FACE_IMPO =FACT(statut='f',max='**', - fr="Impose à tous les noeuds d'une face une ou plusieurs valeurs de déplacement (ou de certaines grandeurs associées)" - +" fournies par l'intérmédiaire d'un concept fonction", - regles=(UN_PARMI('GROUP_MA','MAILLE'), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI','TEMP','PRE1','PRE2','DNOR','DTAN'), - EXCLUS('DNOR','DX'), - EXCLUS('DNOR','DY'), - EXCLUS('DNOR','DZ'), - EXCLUS('DNOR','DRX'), - EXCLUS('DNOR','DRY'), - EXCLUS('DNOR','DRZ'), - EXCLUS('DTAN','DX'), - EXCLUS('DTAN','DY'), - EXCLUS('DTAN','DZ'), - EXCLUS('DTAN','DRX'), - EXCLUS('DTAN','DRY'), - EXCLUS('DTAN','DRZ'),), -# rajout d un mot cle REPERE : / GLOBAL / LOCAL - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - DX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - GRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PHI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRE1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRE2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DNOR =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DTAN =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - LIAISON_DDL =FACT(statut='f',max='**', - fr="Définit une relation linéaire entre des DDLs de deux ou plusieurs noeuds, les valeurs sont fournies par" - +" l'intermediaire d'un concept de type fonction", - regles=(UN_PARMI('GROUP_NO','NOEUD'),), - 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_sdaster,nappe_sdaster,formule) ), - ), - - LIAISON_OBLIQUE =FACT(statut='f',max='**', - fr="Applique à des noeuds la meme valeur de déplacement définie composante par composante dans un repère oblique" - +" quelconque, les valeurs sont fournis par l'intermédiaire d'un concept fonction", - regles=(UN_PARMI('GROUP_NO','NOEUD'), - UN_PARMI('DX','DY','DZ','DRX','DRY','DRZ'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no ,max='**'), - ANGL_NAUT =SIMP(statut='o',typ='R',max=3), - DX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - LIAISON_GROUP =FACT(statut='f',max='**', - fr="Définit la meme relation linéaire entre certains DDLs de couples de noeuds, les valeurs sont fournies par" - +" l'intermédiaire de concept fonction", - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), - UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'), - EXCLUS('GROUP_MA_1','GROUP_NO_2'), - EXCLUS('GROUP_MA_1','NOEUD_2'), - EXCLUS('GROUP_NO_1','GROUP_MA_2'), - EXCLUS('GROUP_NO_1','MAILLE_2'), - EXCLUS('MAILLE_1','GROUP_NO_2'), - EXCLUS('MAILLE_1','NOEUD_2'), - EXCLUS('NOEUD_1','GROUP_MA_2'), - EXCLUS('NOEUD_1','MAILLE_2'), - EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),), - GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - DDL_1 =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT_1 =SIMP(statut='o',typ='R',max='**'), - DDL_2 =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT_2 =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ), - TRAN =SIMP(statut='f',typ='R',max=3), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - CENTRE =SIMP(statut='f',typ='R',max=3), - ), - - CONTACT =FACT(statut='f', - fr="Définit les zones soumises à des conditions de contact unilatéral avec ou \sans frottement, certaines valeurs" - +" sont données par l'intermédiaire de concept fonction",max='**', - regles=(UN_PARMI('GROUP_MA_ESCL','MAILLE_ESCL'),), - APPARIEMENT =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL", - into=("NON","NODAL","MAIT_ESCL","MAIT_ESCL_SYME")), - RECHERCHE =SIMP(statut='f',typ='TXM',defaut="NOEUD_BOUCLE",into=("NOEUD_BOUCLE","NOEUD_VOISIN")), - LISSAGE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - NORMALE =SIMP(statut='f',typ='TXM',defaut="MAIT",into=("MAIT","MAIT_ESCL")), - METHODE =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE", - into=("CONTRAINTE","VERIF","LAGRANGIEN","PENALISATION","CONTINUE") ), - PROJECTION =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","QUADRATIQUE") ), - GROUP_MA_MAIT =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_MAIT =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_ESCL =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_ESCL =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - - b_verif =BLOC(condition = "METHODE == 'VERIF' ", - fr="Paramètres de la méthode sans calcul de contact", - STOP_INTERP =SIMP(statut='f',typ='TXM',defaut="NON", - into=("OUI","NON")), - TOLE_INTERP =SIMP(statut='f',typ='R',defaut = 0.), - DIST_MAIT =SIMP(statut='f',typ='R'), - DIST_ESCL =SIMP(statut='f',typ='R'), - VECT_NORM_ESCL =SIMP(statut='f',typ='R',max=3), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), - ), - - b_active =BLOC(condition = "METHODE == 'CONTRAINTE' ", - fr="Paramètres de la méthode des contraintes actives (contact uniquement)", - regles=(EXCLUS('DIST_ESCL','COEF_IMPO'), - EXCLUS('DIST_MAIT','COEF_IMPO'),), - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL", - into=("DEPL","PRES","TEMP","PRE1","PRE2")), - GLISSIERE =SIMP(statut='f',typ='TXM',defaut="NON", - into=("OUI","NON")), - b_glissiere =BLOC(condition = "GLISSIERE == 'OUI' ", - ALARME_JEU =SIMP(statut='f',typ='R',defaut=0.), - ), - TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), - TOLE_PROJ_INT =SIMP(statut='f',typ='R' ,defaut=0.001), - TOLE_REAC_GEOM =SIMP(statut='f',typ='R' ,defaut=0.05), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI", - into=("OUI","NON")), - NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), - REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE", - into=("AUTOMATIQUE","CONTROLE","SANS")), - b_reac_sans =BLOC(condition = "REAC_GEOM == 'SANS' ", - fr="Parametre de la reactualisation geometrique", - - VERI_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME", - into=("ALARME","ERREUR","NON")), - ), - b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ", - fr="Parametre de la reactualisation geometrique", - NB_REAC_GEOM =SIMP(statut='o',typ='I'), - - VERI_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME", - into=("ALARME","ERREUR","NON")), - ), - b_reac_auto =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", - fr="Parametre de la reactualisation geometrique auto", - NB_REAC_MAXI =SIMP(statut='o',typ='I',defaut = 10), - ), - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - COEF_IMPO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - COEF_MULT_ESCL =SIMP(statut='f',typ='R'), - VECT_NORM_ESCL =SIMP(statut='f',typ='R',max=3), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), - DIST_MAIT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - DIST_ESCL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - b_lagrangien =BLOC(condition = "METHODE == 'LAGRANGIEN' ", - fr="Paramètres de la méthode Lagrangienne (contact avec ou sans frottement)", - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)), - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), - TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), - TOLE_PROJ_INT =SIMP(statut='f',typ='R' ,defaut=0.001), - TOLE_REAC_GEOM =SIMP(statut='f',typ='R' ,defaut=0.05), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI", - into=("OUI","NON")), - NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), - ITER_MULT_MAXI =SIMP(statut='f',typ='I' ,defaut=4), - - REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE", - into=("AUTOMATIQUE","CONTROLE","SANS")), - b_reac_sans =BLOC(condition = "REAC_GEOM == 'SANS' ",fr="Parametre de la reactualisation geometrique", - VERI_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME", - into=("ALARME","ERREUR","NON")), - ), - b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Parametre de la reactualisation geometrique", - NB_REAC_GEOM =SIMP(statut='o',typ='I'), - - VERI_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME", - into=("ALARME","ERREUR","NON")), - ), - b_reac_auto =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", - fr="Parametre de la reactualisation geometrique auto", - NB_REAC_MAXI =SIMP(statut='o',typ='I',defaut = 10), - ), - - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - DIST_MAIT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - DIST_ESCL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), - - b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", - COULOMB =SIMP(statut='o',typ='R',), - 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",) ), - TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), - TOLE_PROJ_INT =SIMP(statut='f',typ='R' ,defaut=0.001), - TOLE_REAC_GEOM =SIMP(statut='f',typ='R' ,defaut=0.05), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI", - into=("OUI","NON")), - NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), - ITER_MULT_MAXI =SIMP(statut='f',typ='I',defaut=4), - - REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE", - into=("AUTOMATIQUE","CONTROLE","SANS")), - b_reac_sans =BLOC(condition = "REAC_GEOM == 'SANS' ",fr="Paramètre de la réactualisation géométrique", - VERI_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME", - into=("ALARME","ERREUR","NON")), - ), - b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Paramètre de la réactualisation géométrique", - NB_REAC_GEOM =SIMP(statut='o',typ='I'), - - VERI_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME", - into=("ALARME","ERREUR","NON")), - ), - b_reac_auto =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", - fr="Paramètre de la réactualisation géométrique auto", - NB_REAC_MAXI =SIMP(statut='o',typ='I',defaut = 10), - ), - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - DIST_MAIT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - DIST_ESCL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), - - b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", - COULOMB =SIMP(statut='o',typ='R',), - E_T =SIMP(statut='f',typ='R', - fr="Active la pénalisation sur le frottement et définit le coefficient de pénalisation"), - COEF_MATR_FROT =SIMP(statut='f',typ='R',defaut=0.E+0), - ),), - b_continue =BLOC(condition = "METHODE == 'CONTINUE' ", - fr="Paramètres de la méthode continue (contact avec ou sans frottement)", -# regles=(UN_PARMI('GLISSIERE','FROTTEMENT'),), - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)), - GLISSIERE =SIMP(statut='f',typ='TXM',defaut="NON", - into=("OUI","NON")), - b_glissiere =BLOC(condition = "GLISSIERE == 'OUI' ", - ALARME_JEU =SIMP(statut='f',typ='R',defaut=0.), - ), - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), - COMPLIANCE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - INTEGRATION =SIMP(statut='f',typ='TXM',defaut="NOEUD",into=("GAUSS","NOEUD","SIMPSON","SIMPSON1","SIMPSON2", - "NCOTES","NCOTES1","NCOTES2")), - COEF_REGU_CONT =SIMP(statut='f',typ='R',defaut=100.E+0), - FORMULATION =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE")), - MODL_AXIS =SIMP(statut='o',typ='TXM',into=("OUI","NON")), - DIRE_APPA =SIMP(statut='f',typ='R',max=3), - ITER_GEOM_MAXI =SIMP(statut='f',typ='I',defaut=2), - ITER_CONT_MAXI =SIMP(statut='f',typ='I',defaut=30), - DIST_MAIT =SIMP(statut='f',typ='R'), - DIST_ESCL =SIMP(statut='f',typ='R'), - CONTACT_INIT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - b_compliance =BLOC(condition = "COMPLIANCE == 'OUI' ",fr="Parametres de la compliance", - ASPERITE =SIMP(statut='o',typ='R',), - E_N =SIMP(statut='o',typ='R',), - E_V =SIMP(statut='f',typ='R',defaut=0.E+0),), - b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", - COULOMB =SIMP(statut='o',typ='R',), - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), - VECT_Z =SIMP(statut='f',typ='R',min=3,max=3), - ITER_FROT_MAXI =SIMP(statut='f',typ='I',defaut=2), - COEF_REGU_FROT =SIMP(statut='f',typ='R',defaut=100.E+0), - SEUIL_INIT =SIMP(statut='f',typ='I',defaut=0),),), - ), - - LIAISON_UNIF =FACT(statut='f',max='**', - fr="Impose une meme valeur (inconnue) à des DDLs d'un ensemble de noeuds", - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - DDL =SIMP(statut='o',typ='TXM',max='**'), - ), - - LIAISON_SOLIDE =FACT(statut='f',max='**', - fr="Modélise une partie indéformable d'une structure", - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES",) ), - ), - - - - FORCE_NODALE =FACT(statut='f',max='**', - fr="Applique à des noeuds des forces nodales dont les valeurs des composantes sont fournies par l'intermédiaire" - +" d'un concept fonction", - regles=(UN_PARMI('GROUP_NO','NOEUD'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ANGL_NAUT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max=3 ), - ), - - FORCE_FACE =FACT(statut='f',max='**', - fr="Applique des forces surfaciques sur une face d'élément volumique dont les valeurs des composantes sont fournies" - +" par l'intermédiaire d'un concept fonction", - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - FORCE_ARETE =FACT(statut='f',max='**', - fr="Applique des forces linéiques à une arete d'élément volumique ou de coque dont les valeurs des composantes sont" - +" fournies par l'intermédiaire d'un concept fonction", - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - FORCE_CONTOUR =FACT(statut='f',max='**', - fr="Applique des forces linéiques au bord d'un domaine 2D ou AXIS ou AXIS_FOURIER, dont les valeurs des composantes" - +" sont fournies par l'intermédiaire d'un concept fonction", - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - FORCE_INTERNE =FACT(statut='f',max='**', - fr="Applique des forces volumiques (2D ou 3D) à un domaine volumique, dont les valeurs des composantes sont fournies" - +" par l'intermédiaire d'un concept fonction", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - PRES_REP =FACT(statut='f',max='**', - fr="Applique une pression à un domaine de milieu continu 2D ou 3D ou à un domaine de coques et tuyaux, dont les" - +" valeurs imposées (pression et/ou cisaillement) sont fournies par l'intermédiaire d'un concept fonction", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('PRES','CISA_2D'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - CISA_2D =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - EFFE_FOND =FACT(statut='f',max='**', - fr="Calcul l'effet de fond sur une branche de tuyauterie (modélisation 3D) soumise" - +" à une pression dont la valeur est fournie par l'intermédiaire d'un concept fonction", - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),), - GROUP_MA_INT =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - PRES =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - EPSI_INIT =FACT(statut='f',max='**', - fr="Applique un chargement de déformation initiale à un élément 2D, 3D ou de structure dont les composantes" - +" du tenseur de déformation sont fournies par l'intermédiaire d'un concept fonction", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - EPXX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - EPYY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - EPZZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - EPXY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - EPXZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - EPYZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - FORCE_POUTRE =FACT(statut='f',max='**', - fr="Applique des forces linéiques sur des éléments de type poutre dont les valeurs sont fournies par" - +" l'intermédiaire d'un concept fonction", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','N','VY','VZ'), - PRESENT_ABSENT('FX','N','VY','VZ'), - PRESENT_ABSENT('FY','N','VY','VZ'), - PRESENT_ABSENT('FZ','N','VY','VZ'), - PRESENT_ABSENT('N','FX','FY','FZ'), - PRESENT_ABSENT('VY','FX','FY','FZ'), - PRESENT_ABSENT('VZ','FX','FY','FZ'),), -# rajout d un mot cle REPERE : / GLOBAL / LOCAL - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE") ), - FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - VY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - VZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - FORCE_TUYAU =FACT(statut='f',max='**', - fr="Applique une pression sur des éléments TUYAU, la valeur est fournie par l'intermédiaire d'un concept fonction", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - FORCE_COQUE =FACT(statut='f',max='**', - fr="Applique des forces surfaciques sur des éléments de types coques dont les valeurs sont fournies par" - +" l'intermédiaires d'un concept fonction", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('FX','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('FY','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('FZ','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('MX','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('MY','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('MZ','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('F1','PRES','FX','FY','FZ','MX','MY','MZ'), - PRESENT_ABSENT('F2','PRES','FX','FY','FZ','MX','MY','MZ'), - PRESENT_ABSENT('F3','PRES','FX','FY','FZ','MX','MY','MZ'), - PRESENT_ABSENT('MF1','PRES','FX','FY','FZ','MX','MY','MZ'), - PRESENT_ABSENT('MF2','PRES','FX','FY','FZ','MX','MY','MZ'), - PRESENT_ABSENT('PRES','FX','FY','FZ','MX','MY','MZ','F1','F2','F3','MF1','MF2'),), -# rajout d un mot cle REPERE : / GLOBAL / LOCAL - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - F1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - F2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - F3 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MF1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MF2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PLAN =SIMP(statut='f',typ='TXM',defaut="MAIL", - into=("SUP","INF","MOY","MAIL") ), - ), - - LIAISON_COQUE =FACT(statut='f',max='**', - fr="Permet de représenter le raccord entre des éléments de coques au moyen des relations linéaires", - GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES",) ), - ), - - - VITE_FACE =FACT(statut='f',max='**', - fr="Impose des vitesses normales à une face (phénomène ACOUSTIQUE) dont les valeurs sont fournies par" - +" l'intermédiaire d'un concept fonction", - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), - PRESENT_ABSENT('GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - VNOR =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - IMPE_FACE =FACT(statut='f',max='**', - fr="Applique à une face une impédance acoustique dont la valeur est fournie par l'intermédiaire" - +" d'un concept fonction", - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), - PRESENT_ABSENT('GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - IMPE =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - ONDE_PLANE =FACT(statut='f',max='**', - fr="Impose un chargement sismique par onde plane dont la valeur est fournie par l'intermédiaire" - +" d'un concept fonction", - DIRECTION =SIMP(statut='o',typ='R',max='**'), - TYPE_ONDE =SIMP(statut='o',typ='TXM' ), - FONC_SIGNAL =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DIST_ORIG =SIMP(statut='o',typ='R' ), - ), - - - - FLUX_THM_REP =FACT(statut='f',max='**', - fr="Applique à un domaine continue 2D ou 3D un flux de chaleur et/ou un apport de masse fluide (flux hydraulique)" - +" dont les valeurs des flux sont fournies par l'intermédiaire d'un concept fonction", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FLUN','FLUN_HYDR1','FLUN_HYDR2'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FLUN =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FLUN_HYDR1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FLUN_HYDR2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; - - -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -AFFE_CHAR_OPS011=OPER(nom="AFFE_CHAR_OPS011",op= 190,sd_prod=char_ther, - fr="Affectation de charges et conditions limites thermiques spécifique à CARA_TORSION", - reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - regles=(AU_MOINS_UN('CARA_TORSION', ),), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI", - into=("OUI","NON") ), - CARA_TORSION =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','GROUP_MA'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 11/10/2005 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. -# ====================================================================== -AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther - ,fr="Affectation de charges et conditions aux limites thermiques constantes", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('TEMP_IMPO','SOURCE','FLUX_REP','ECHANGE', - 'ECHANGE_PAROI','GRAD_TEMP_INIT','LIAISON_DDL','LIAISON_GROUP', - 'LIAISON_UNIF','LIAISON_CHAMNO','RAYONNEMENT','LIAISON_MAIL' ),), - MODELE =SIMP(statut='o',typ=(modele_sdaster) ), - - TEMP_IMPO =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), - AU_MOINS_UN('TEMP_SUP','TEMP','TEMP_INF'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - TEMP =SIMP(statut='f',typ='R'), - TEMP_INF =SIMP(statut='f',typ='R'), - TEMP_SUP =SIMP(statut='f',typ='R'), ), - - FLUX_REP =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - PRESENT_PRESENT('CARA_TORSION','GROUP_MA'), - AU_MOINS_UN('FLUN','FLUN_INF','FLUN_SUP','CARA_TORSION') ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FLUN =SIMP(statut='f',typ='R'), - FLUN_INF =SIMP(statut='f',typ='R'), - FLUN_SUP =SIMP(statut='f',typ='R'), - CARA_TORSION =SIMP(statut='f',typ=tabl_aire_int ), - ), - - - RAYONNEMENT =FACT(statut='f',max='**', - fr="Attention, exprimer les températures en Celsius si rayonnement", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - SIGMA =SIMP(statut='o',typ='R'), - EPSILON =SIMP(statut='o',typ='R'), - TEMP_EXT =SIMP(statut='o',typ='R'), - ), - - ECHANGE =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('COEF_H','COEF_H_INF','COEF_H_SUP'), - ENSEMBLE('COEF_H','TEMP_EXT',), - ENSEMBLE('COEF_H_INF','TEMP_EXT_INF'), - ENSEMBLE('COEF_H_SUP','TEMP_EXT_SUP'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - COEF_H =SIMP(statut='f',typ='R'), - TEMP_EXT =SIMP(statut='f',typ='R'), - COEF_H_INF =SIMP(statut='f',typ='R'), - TEMP_EXT_INF =SIMP(statut='f',typ='R'), - COEF_H_SUP =SIMP(statut='f',typ='R'), - TEMP_EXT_SUP =SIMP(statut='f',typ='R'), - ), - - SOURCE =FACT(statut='f',max='**', - regles=(UN_PARMI('SOUR','SOUR_CALCULEE',), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('SOUR_CALCULEE','TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - SOUR =SIMP(statut='f',typ='R'), - SOUR_CALCULEE =SIMP(statut='f',typ=(cham_elem_sour_r) ), - ), - - GRAD_TEMP_INIT =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FLUX_X','FLUX_Y','FLUX_Z'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FLUX_X =SIMP(statut='f',typ='R' ), - FLUX_Y =SIMP(statut='f',typ='R' ), - FLUX_Z =SIMP(statut='f',typ='R' ), - ), - - LIAISON_DDL =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD', ),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no ,max='**'), - DDL =SIMP(statut='f',typ='TXM',max='**', - into=("TEMP","TEMP_INF","TEMP_SUP") ), - COEF_MULT =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ='R' ), - ), - - LIAISON_GROUP =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), - UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'), - EXCLUS('GROUP_MA_1','GROUP_NO_2'), - EXCLUS('GROUP_MA_1','NOEUD_2'), - EXCLUS('GROUP_NO_1','GROUP_MA_2'), - EXCLUS('GROUP_NO_1','MAILLE_2'), - EXCLUS('MAILLE_1','GROUP_NO_2'), - EXCLUS('MAILLE_1','NOEUD_2'), - EXCLUS('NOEUD_1','GROUP_MA_2'), - EXCLUS('NOEUD_1','MAILLE_2'), - EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),), - GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - DDL_1 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", - into=("TEMP","TEMP_INF","TEMP_SUP") ), - COEF_MULT_1 =SIMP(statut='o',typ='R',max='**'), - DDL_2 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", - into=("TEMP","TEMP_INF","TEMP_SUP",) ), - COEF_MULT_2 =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ='R' ), - SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ), - TRAN =SIMP(statut='f',typ='R',max='**'), - ANGL_NAUT =SIMP(statut='f',typ='R',max='**'), - CENTRE =SIMP(statut='f',typ='R',max='**'), - ), - - LIAISON_MAIL =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('GROUP_MA_MAIT','MAILLE_MAIT'), - AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL', - 'NOEUD_ESCL'),), - GROUP_MA_MAIT =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_MAIT =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_ESCL =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_ESCL =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_ESCL =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_ESCL =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - TRAN =SIMP(statut='f',typ='R',max='**' ), - ANGL_NAUT =SIMP(statut='f',typ='R',max='**' ), - CENTRE =SIMP(statut='f',typ='R',max='**' ), - ELIM_MULT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - - ECHANGE_PAROI =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'), - UN_PARMI('GROUP_MA_2','MAILLE_2'),), - GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - COEF_H =SIMP(statut='f',typ='R'), - TRAN =SIMP(statut='f',typ='R',min=2,max=3), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - CENTRE =SIMP(statut='f',typ='R',min=2,max=3), - ), - - LIAISON_UNIF =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - DDL =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", - into=("TEMP","TEMP_INF","TEMP_SUP") ), - ), - - LIAISON_CHAMNO =FACT(statut='f',max='**', - CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster),# CO()# "il faut definir une structure de donnee generique chamno" - COEF_IMPO =SIMP(statut='o',typ='R' ), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), - ), - - CONVECTION =FACT(statut='f',max='**', - VITESSE =SIMP(statut='o',typ=(cham_no_depl_r) ), - ), - - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 11/10/2005 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. -# ====================================================================== -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 d'un (ou plusieurs)" - +" paramètres (temps, ...)", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('TEMP_IMPO','SOURCE','FLUX_REP','FLUX_NL','ECHANGE', - 'ECHANGE_PAROI','LIAISON_DDL','LIAISON_GROUP','LIAISON_UNIF', - 'GRAD_TEMP_INIT','RAYONNEMENT'),), - MODELE =SIMP(statut='o',typ=(modele_sdaster) ), - - TEMP_IMPO =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), - AU_MOINS_UN('TEMP_SUP','TEMP','TEMP_INF','EVOL_THER'), - PRESENT_ABSENT('EVOL_THER','TEMP','TEMP_INF','TEMP_SUP'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - EVOL_THER =SIMP(statut='f',typ=(evol_ther) ), - DDL =SIMP(statut='f',typ='TXM',into=("TEMP",) ), - TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TEMP_INF =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TEMP_SUP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - FLUX_REP =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FLUN','FLUN_INF','FLUN_SUP','FLUX_X','FLUX_Y','FLUX_Z'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FLUN =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FLUN_INF =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FLUN_SUP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FLUX_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FLUX_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FLUX_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - FLUX_NL =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FLUN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - - RAYONNEMENT =FACT(statut='f',max='**', - fr="Attention, exprimer les températures en Celsius si rayonnement", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - SIGMA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - EPSILON =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TEMP_EXT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - - - ECHANGE =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('COEF_H','COEF_H_INF','COEF_H_SUP'), - ENSEMBLE('COEF_H','TEMP_EXT'), - ENSEMBLE('COEF_H_INF','TEMP_EXT_INF'), - ENSEMBLE('COEF_H_SUP','TEMP_EXT_SUP'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - COEF_H =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TEMP_EXT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - COEF_H_INF =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TEMP_EXT_INF =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - COEF_H_SUP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TEMP_EXT_SUP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - - SOURCE =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - SOUR =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - GRAD_TEMP_INIT =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FLUX_X','FLUX_Y','FLUX_Z'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FLUX_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FLUX_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FLUX_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - ECHANGE_PAROI =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'), - UN_PARMI('GROUP_MA_2','MAILLE_2'),), - GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - COEF_H =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TRAN =SIMP(statut='f',typ='R',min=2,max=3), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - CENTRE =SIMP(statut='f',typ='R',min=2,max=3), - ), - - LIAISON_DDL =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no ,max='**'), - DDL =SIMP(statut='f',typ='TXM',max='**',into=("TEMP","TEMP_INF","TEMP_SUP") ), - COEF_MULT =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - LIAISON_GROUP =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), - UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'), - EXCLUS('GROUP_MA_1','GROUP_NO_2'), - EXCLUS('GROUP_MA_1','NOEUD_2'), - EXCLUS('GROUP_NO_1','GROUP_MA_2'), - EXCLUS('GROUP_NO_1','MAILLE_2'), - EXCLUS('MAILLE_1','GROUP_NO_2'), - EXCLUS('MAILLE_1','NOEUD_2'), - EXCLUS('NOEUD_1','GROUP_MA_2'), - EXCLUS('NOEUD_1','MAILLE_2'), - EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),), - GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - DDL_1 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", - into=("TEMP","TEMP_INF","TEMP_SUP") ), - COEF_MULT_1 =SIMP(statut='o',typ='R',max='**'), - DDL_2 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", - into=("TEMP","TEMP_INF","TEMP_SUP") ), - COEF_MULT_2 =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ), - TRAN =SIMP(statut='f',typ='R',max='**'), - ANGL_NAUT =SIMP(statut='f',typ='R',max='**'), - CENTRE =SIMP(statut='f',typ='R',max='**'), - ), - - LIAISON_UNIF =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - DDL =SIMP(statut='f',typ='TXM',defaut="TEMP", - into=("TEMP","TEMP_INF","TEMP_SUP") ), - ), - - CONVECTION =FACT(statut='f',max='**', - VITESSE =SIMP(statut='o',typ=(cham_no_depl_r) ), - ), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 27/06/2005 AUTEUR D6BHHJP J.P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater, - fr="Affecter des matériaux à des zones géométriques d'un maillage", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), - MODELE =SIMP(statut='f',typ=modele_sdaster), - - # affectation du nom du matériau : - # ------------------------------- - AFFE =FACT(statut='o',max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - MATER =SIMP(statut='o',typ=mater_sdaster,max=30), - TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - SECH_REF =SIMP(statut='f',typ='R',val_min=0.E+0), - ), - - # affectation des variables de commande : - # -------------------------------------------------- - # un mot clé caché qui ne sert qu'à boucler sur les VARC possibles : - LIST_NOM_VARC =SIMP(statut='c',typ='TXM', defaut=("CORR","IRRA","NEUT1","NEUT2")), - - AFFE_VARC =FACT(statut='f',max='**', - - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('GROUP_MA','TOUT'), - PRESENT_ABSENT('MAILLE','TOUT'), - UN_PARMI('EVOL','CHAMP_GD'),), - - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), # [défaut] - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - - CHAMP_GD =SIMP(statut='f',typ=cham_gd_sdaster,), - B_CHAMP_GD =BLOC(condition="CHAMP_GD!=None", - NOM_VARC =SIMP(statut='o',typ='TXM', into=("CORR","IRRA","NEUT1","NEUT2")), - ), - EVOL =SIMP(statut='f',typ=evol_sdaster,), - B_EVOL =BLOC(condition="EVOL!=None", - NOM_VARC =SIMP(statut='o',typ='TXM', into=("CORR","IRRA","NEUT1","NEUT2")), - B_NOM_CORR =BLOC(condition="NOM_VARC=='CORR'", NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'CORR',),), - B_NOM_IRRA =BLOC(condition="NOM_VARC=='IRRA'", NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'IRRA',),), - B_NOM_NEUT1 =BLOC(condition="NOM_VARC=='NEUT1'", NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'NEUT',),), - B_NOM_NEUT2 =BLOC(condition="NOM_VARC=='NEUT2'", NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'NEUT',),), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - ), - VALE_REF =SIMP(statut='f',typ='R'), - ), - - # mots clés cachés pour les variables de commande NEUTi : - # ------------------------------------------------------- - VARC_NEUT1 =FACT(statut='d', - NOM_VARC =SIMP(statut='c',typ='TXM',defaut="NEUT1"), - GRANDEUR =SIMP(statut='c',typ='TXM',defaut="NEUT_R"), - CMP_GD =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("X1")), - CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("NEUT1")), - ), - VARC_NEUT2 =FACT(statut='d', - NOM_VARC =SIMP(statut='c',typ='TXM',defaut="NEUT2"), - GRANDEUR =SIMP(statut='c',typ='TXM',defaut="NEUT_R"), - CMP_GD =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("X1")), - CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("NEUT2")), - ), - - # mots clés cachés pour variable de commande TEMP : - # -------------------------------------------------- - VARC_TEMP =FACT(statut='d', - NOM_VARC =SIMP(statut='c',typ='TXM',defaut="TEMP"), - GRANDEUR =SIMP(statut='c',typ='TXM',defaut="TEMP_R"), - CMP_GD =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("TEMP",)), - CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("TEMP",)), - ), - - # mots clés cachés pour variable de commande SECH : - # -------------------------------------------------- - VARC_SECH =FACT(statut='d', - NOM_VARC =SIMP(statut='c',typ='TXM',defaut="SECH"), - GRANDEUR =SIMP(statut='c',typ='TXM',defaut="TEMP_R"), - CMP_GD =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("TEMP",)), - CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("SECH",)), - ), - - # mots clés cachés pour variable de commande HYDR : - # -------------------------------------------------- - VARC_HYDR =FACT(statut='d', - NOM_VARC =SIMP(statut='c',typ='TXM',defaut="HYDR"), - GRANDEUR =SIMP(statut='c',typ='TXM',defaut="HYDR_R"), - CMP_GD =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("HYDR",)), - CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("HYDR",)), - ), - - # mots clés cachés pour variable de commande CORR : - # -------------------------------------------------- - VARC_CORR =FACT(statut='d', - NOM_VARC =SIMP(statut='c',typ='TXM',defaut="CORR"), - GRANDEUR =SIMP(statut='c',typ='TXM',defaut="CORR_R"), - CMP_GD =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("CORR",)), - CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("CORR",)), - ), - - # mots clés cachés pour variable de commande IRRA : - # -------------------------------------------------- - VARC_IRRA =FACT(statut='d', - NOM_VARC =SIMP(statut='c',typ='TXM',defaut="IRRA"), - GRANDEUR =SIMP(statut='c',typ='TXM',defaut="IRRA_R"), - CMP_GD =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("IRRA",)), - CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("IRRA",)), - VALE_DEF =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=(0.,)), - ), - - # mots clés cachés pour variable de commande EPSA : - # -------------------------------------------------- - VARC_EPSA =FACT(statut='d', - NOM_VARC =SIMP(statut='c',typ='TXM',defaut="EPSA"), - GRANDEUR =SIMP(statut='c',typ='TXM',defaut="EPSI_R"), - CMP_GD =SIMP(statut='c',typ='TXM',max=6,min=6,defaut=("EPXX","EPYY","EPZZ","EPXY","EPXZ","EPYZ",)), - CMP_VARC =SIMP(statut='c',typ='TXM',max=6,min=6,defaut=("EPXX","EPYY","EPZZ","EPXY","EPXZ","EPYZ",)), - VALE_DEF =SIMP(statut='c',typ='TXM',max=6,min=6,defaut=( 0., 0., 0., 0., 0., 0., )), - ), -) ; - - -#& MODIF COMMANDE DATE 16/08/2005 AUTEUR ROMEO R.FERNANDES -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE JMBHH01 J.M.PROIX -AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster, - UIinfo={"groupes":("Modélisation",)}, - fr="Définir le phénomène physique modélisé et le type d'éléments finis sur le maillage",reentrant='n', - regles=(AU_MOINS_UN('AFFE','AFFE_SOUS_STRUC'),), - MAILLAGE =SIMP(statut='o',typ=(maillage_sdaster) ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), - VERIF =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2,into=("MAILLE","NOEUD") ), - AFFE_SOUS_STRUC =FACT(statut='f', - regles=(UN_PARMI('TOUT','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), - PHENOMENE =SIMP(statut='f',typ='TXM',defaut="MECANIQUE",into=("MECANIQUE",) ), - ), - AFFE =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - PHENOMENE =SIMP(statut='o',typ='TXM', - into=("MECANIQUE","THERMIQUE","ACOUSTIQUE") ), - b_mecanique =BLOC( condition = "PHENOMENE=='MECANIQUE'", - fr="modelisations mécaniques", - MODELISATION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=( - "2D_DIS_T", - "2D_DIS_TR", - "2D_FLUI_ABSO", - "2D_FLUI_PESA", - "2D_FLUI_STRU", - "2D_FLUIDE", - "3D", - "3D_ABSO", - "3D_FAISCEAU", - "3D_FLUI_ABSO", - "3D_FLUIDE", - "3D_INCO", - "3D_JOINT_CT", - "3D_SI", - "3D_GRAD_EPSI", - "3D_GRAD_VARI", - "3D_XFEM", - "APPUI_REP", - "ASSE_GRIL", - "AXIS", - "AXIS_FLUI_STRU", - "AXIS_FLUIDE", - "AXIS_FOURIER", - "AXIS_INCO", - "AXIS_NS", - "AXIS_SI", - "AXIS_GRAD_VARI", - "AXIS_JOINT", - "AXIS_ELDI", - "BARRE", - "2D_BARRE", - "C_PLAN", - "C_PLAN_NS", - "C_PLAN_SI", - "C_PLAN_GRAD_EPSI", - "C_PLAN_GRAD_VARI", - "CABLE", - "CABLE_POULIE", - "COQUE_3D", - "COQUE_AXIS", - "COQUE_C_PLAN", - "COQUE_D_PLAN", - "D_PLAN", - "D_PLAN_GRAD_EPSI", - "D_PLAN_GRAD_VARI", - "D_PLAN_NS", - "PLAN_JOINT", - "PLAN_ELDI", - "D_PLAN_ABSO", - "D_PLAN_INCO", - "D_PLAN_SI", - "DIS_T", - "DIS_TR", - "DKT", - "DKTG", - "DST", - "FLUI_STRU", - "GRILLE", - "GRILLE_MEMBRANE", - "POU_C_T", - "POU_D_E", - "POU_D_EM", - "POU_D_T", - "POU_D_T_GD", - "POU_D_TG", - "POU_D_TGM", - "Q4G", - "TUYAU_3M", - "TUYAU_6M", - "SHB8", - "D_PLAN_HHM", - "D_PLAN_HM", - "D_PLAN_THH", - "D_PLAN_THHM", - "D_PLAN_THM", - "D_PLAN_HHMD", - "D_PLAN_HH2MD", - "D_PLAN_HMD", - "D_PLAN_THHD", - "D_PLAN_THH2D", - "D_PLAN_THVD", - "D_PLAN_THH2MD", - "D_PLAN_THHMD", - "D_PLAN_THMD", - "D_PLAN_HHMS", - "D_PLAN_HH2MS", - "D_PLAN_HMS", - "D_PLAN_THHS", - "D_PLAN_THH2S", - "D_PLAN_THVS", - "D_PLAN_THH2MS", - "D_PLAN_THHMS", - "D_PLAN_THMS", - "AXIS_THH", - "AXIS_THHM", - "AXIS_THM", - "AXIS_HHM", - "AXIS_HM", - "AXIS_HH2MD", - "AXIS_HHMD", - "AXIS_HMD", - "AXIS_THHD", - "AXIS_THH2D", - "AXIS_THVD", - "AXIS_THHMD", - "AXIS_THH2MD", - "AXIS_THMD", - "AXIS_HH2MS", - "AXIS_HHMS", - "AXIS_HMS", - "AXIS_THHS", - "AXIS_THH2S", - "AXIS_THVS", - "AXIS_THHMS", - "AXIS_THH2MS", - "AXIS_THMS", - "3D_HHM" , - "3D_HM", - "3D_THH", - "3D_THV", - "3D_THHM", - "3D_THM", - "3D_HHMD", - "3D_HMD", - "3D_THHD", - "3D_THVD", - "3D_THHMD", - "3D_THMD", - "3D_HHMS", - "3D_HMS", - "3D_THHS", - "3D_THVS", - "3D_THHMS", - "3D_THMS", - ) ) ), - - b_thermique =BLOC( condition = "PHENOMENE=='THERMIQUE'", - fr="modelisations thermiques", - MODELISATION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=( - "3D", - "3D_DIAG", - "AXIS", - "AXIS_DIAG", - "AXIS_FOURIER", - "COQUE", - "COQUE_AXIS", - "COQUE_PLAN", - "PLAN", - "PLAN_DIAG", - ),),), - - b_acoustique =BLOC( condition = "PHENOMENE=='ACOUSTIQUE'", - fr="modelisations acoustiques", - MODELISATION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=( - "3D", - "PLAN" - ), ),), - - ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -AIDE=PROC(nom="AIDE",op=42, - UIinfo={"groupes":("Modélisation",)}, - fr="Interroger et imprimer une documentation partielle sur les noms des concepts déjà définis et sur les couples" - +" (type d'éléments, option) disponibles dans la version.", - regles=(AU_MOINS_UN('CONCEPT','TYPE_ELEM', ),), - UNITE =SIMP(statut='f',typ='I',defaut=8), - TYPE_ELEM =FACT(fr="couple type_elem option",statut='f', - INITEL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - ), - CONCEPT =FACT(statut='f',max='**', - NOM =SIMP(fr="liste des noms de concept",statut='f',typ='TXM',validators=NoRepeat(),max='**',defaut="*"), - OPTION =SIMP(fr="option d'édition de concept",statut='f',typ='TXM',defaut="TOUT_TYPE", - into=("TOUT_TYPE","CREER","A_CREER",) ), - ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -ASSE_MAILLAGE=OPER(nom="ASSE_MAILLAGE",op= 105,sd_prod=maillage_sdaster, - fr="Assembler deux maillages pour en former un nouveau", - reentrant='n', - UIinfo={"groupes":("Maillage",)}, - MAILLAGE_1 = SIMP(statut='o',typ=maillage_sdaster,), - MAILLAGE_2 = SIMP(statut='o',typ=maillage_sdaster,), - OPERATION = SIMP(statut='o',typ='TXM',into=("SOUS_STR","SUPERPOSE","COLLAGE"),), - b_collage = BLOC(condition = "OPERATION == 'COLLAGE'", - COLLAGE = FACT(statut='o', - GROUP_MA_1 =SIMP(statut='o',typ=grma), - GROUP_MA_2 =SIMP(statut='o',typ=grma), - ), - ), -) ; -#& MODIF COMMANDE DATE 18/04/2005 AUTEUR NICOLAS O.NICOLAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -ASSE_MATR_GENE=OPER(nom="ASSE_MATR_GENE",op= 128,sd_prod=matr_asse_gene_r, - fr="Assemblage des matrices généralisées de macro éléments pour construction de la matrice globale généralisée", - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), - METHODE =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","INITIAL") ), - b_option =BLOC(condition = "METHODE == 'CLASSIQUE'", - OPTION =SIMP(statut='o',typ='TXM',into=("RIGI_GENE","MASS_GENE","AMOR_GENE") ), - ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def asse_matrice_prod(MATR_ELEM,**args): - if AsType(MATR_ELEM) == matr_elem_depl_r : return matr_asse_depl_r - if AsType(MATR_ELEM) == matr_elem_depl_c : return matr_asse_depl_c - if AsType(MATR_ELEM) == matr_elem_temp_r : return matr_asse_temp_r - if AsType(MATR_ELEM) == matr_elem_pres_c : return matr_asse_pres_c - raise AsException("type de concept resultat non prevu") - -ASSE_MATRICE=OPER(nom="ASSE_MATRICE",op=12,sd_prod=asse_matrice_prod, - fr="Construction d'une matrice assemblée",reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - MATR_ELEM =SIMP(statut='o', - typ=(matr_elem_depl_r,matr_elem_depl_c,matr_elem_temp_r,matr_elem_pres_c) ), - NUME_DDL =SIMP(statut='o',typ=nume_ddl_sdaster), - CHAR_CINE =SIMP(statut='f',typ=(char_cine_meca,char_cine_ther,char_cine_acou) ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -ASSE_VECT_GENE=OPER(nom="ASSE_VECT_GENE",op= 140,sd_prod=vect_asse_gene_r, - fr="Projection des chargements sur la base modale d'une sous structure", - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), - METHODE =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","INITIAL") ), - b_nume =BLOC(condition = "METHODE == 'CLASSIQUE'", - CHAR_SOUS_STRUC =FACT(statut='o',max='**', - SOUS_STRUC =SIMP(statut='o',typ='TXM' ), - VECT_ASSE =SIMP(statut='o',typ=cham_no_depl_r ), - ), - ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def asse_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="Construire un champ aux noeuds par assemblage de vecteurs élémentaires",reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - VECT_ELEM =SIMP(statut='o',typ=vect_elem,max='**'), - NUME_DDL =SIMP(statut='o',typ=nume_ddl_sdaster ), - INFO =SIMP(statut='f',typ='I',into=(1,2,) ), -) ; -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_AMOR_MODAL=OPER(nom="CALC_AMOR_MODAL",op= 172,sd_prod=listr8_sdaster, - fr="Création d'une liste d'amortissements modaux calculés selon la règle du RCC-G", - reentrant='n', - UIinfo={"groupes":("Résolution",)}, - ENER_SOL =FACT(statut='o', - regles=(UN_PARMI('GROUP_NO_RADIER','GROUP_MA_RADIER'), - PRESENT_ABSENT('COEF_GROUP','FONC_GROUP'), -# Peut-on remplacer les deux règles suivantes par un ENSEMBLE_('KRX','KRY','KRZ') - PRESENT_PRESENT('KRX','KRY'), - PRESENT_PRESENT('KRX','KRZ'), - PRESENT_ABSENT('COOR_CENTRE','NOEUD_CENTRE'), - PRESENT_ABSENT('GROUP_NO_CENTRE','NOEUD_CENTRE'), - PRESENT_ABSENT('GROUP_NO_CENTRE','COOR_CENTRE'),), - METHODE =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","RIGI_PARASOL") ), - MODE_MECA =SIMP(statut='o',typ=mode_meca ), - GROUP_NO_RADIER =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - GROUP_MA_RADIER =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - FONC_GROUP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - COEF_GROUP =SIMP(statut='f',typ='R',max='**'), - KX =SIMP(statut='o',typ='R' ), - KY =SIMP(statut='o',typ='R' ), - KZ =SIMP(statut='o',typ='R' ), - KRX =SIMP(statut='f',typ='R' ), - KRY =SIMP(statut='f',typ='R' ), - KRZ =SIMP(statut='f',typ='R' ), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno), - NOEUD_CENTRE =SIMP(statut='f',typ=no), - COOR_CENTRE =SIMP(statut='f',typ='R',max=3), - ), - AMOR_INTERNE =FACT(statut='o', - ENER_POT =SIMP(statut='o',typ=tabl_ener_pot ), - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - AMOR_REDUIT =SIMP(statut='o',typ='R',max='**'), - ), - AMOR_SOL =FACT(statut='o', - AMOR_REDUIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - FONC_AMOR_GEO =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ), - HOMOGENE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - SEUIL =SIMP(statut='f',typ='R',defaut= 0.3 ), - ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE JMBHH01 J.M.PROIX -def calc_cham_elem_prod(OPTION,**args): - - -# options thermiques - - if OPTION == "FLUX_ELGA_TEMP" : return cham_elem_flux_r - if OPTION == "FLUX_ELNO_TEMP" : return cham_elem_flux_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="Calculer un champ élémentaire en thermique et en accoustique à partir de champs déjà calculés" - +" de type cham_no", - reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - - regles=(EXCLUS('TOUT','GROUP_MA',),EXCLUS('TOUT','MAILLE',),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - -# -# -# introduire un mot cle de type modelisation : mécanique,thermique,... -# - - OPTION =SIMP(statut='o',typ='TXM', - into=("FLUX_ELGA_TEMP","FLUX_ELNO_TEMP", - "PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG", - "COOR_ELGA"), ), - - b_thermique =BLOC(condition="OPTION in ('FLUX_ELNO_TEMP','FLUX_ELGA_TEMP',)", - TEMP =SIMP(statut='o',typ=(cham_no_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',max='**', - regles=(EXCLUS('FONC_MULT','COEF_MULT', ),), - CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou)), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - COEF_MULT =SIMP(statut='f',typ='R'), ), - - INST =SIMP(statut='f',typ='R',defaut= 0.E+0), - ACCE =SIMP(statut='f',typ=cham_no_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 24/01/2005 AUTEUR LEBOUVIE F.LEBOUVIER -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE 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)", - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - NUME_DDL =SIMP(statut='o',typ=nume_ddl_sdaster ), - CHAR_CINE =SIMP(statut='o',typ=(char_cine_meca,char_cine_ther,char_cine_acou ),validators=NoRepeat(),max='**' ), - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def 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, - reentrant='n',fr="Calcul du chargement sismique", - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(UN_PARMI('MONO_APPUI','MODE_STAT' ),), - MATR_MASS =SIMP(statut='o',typ=matr_asse_depl_r,fr="Matrice de masse" ), - DIRECTION =SIMP(statut='o',typ='R',max=6,fr="Directions du séisme imposé"), - MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ), - b_mode_stat =BLOC ( condition = "MODE_STAT != None", - regles=(UN_PARMI('NOEUD','GROUP_NO' ),), - NOEUD =SIMP(statut='f',typ=no,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 11/07/2005 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 JMBHH01 J.M.PROIX -def calc_elem_prod(RESULTAT,**args): - if AsType(RESULTAT) != None : return AsType(RESULTAT) - raise AsException("type de concept resultat non prevu") - -CALC_ELEM=OPER(nom="CALC_ELEM",op=58,sd_prod=calc_elem_prod,reentrant='f', - UIinfo={"groupes":("Post traitements",)}, - fr="Compléter ou créer un résultat en calculant des champs par éléments (contraintes, déformations,... )", - MODELE =SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - - RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,mode_meca, - mode_stat,mode_stat_depl,mode_stat_acce,mode_stat_forc, - evol_noli,mult_elas,fourier_elas, - evol_ther,base_modale, - acou_harmo,mode_acou,mode_flamb) , - fr="Résultat d'une commande globale"), - - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM' ), - - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', - fr="le calcul ne sera effectué que sur ces mailles là"), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**', - fr="le calcul ne sera effectué que sur ces mailles là"), - -# options pour des resultats lineaire - - b_lineaire =BLOC( condition = "AsType(RESULTAT) in (evol_elas,dyna_trans,dyna_harmo,mode_meca,\ - mode_stat,mode_stat_depl,mode_stat_acce,mode_stat_forc,\ - mult_elas,fourier_elas,base_modale,mode_flamb)", - fr="options mecaniques lineaires", - TYPE_OPTION =SIMP(statut='f',typ='TXM',defaut='TOUTES',fr="type d'options mecaniques lineaires", - into=("SIGM_MASSIF","SIGM_STRUCT","EPSI","ENER","CRIT","DERIVEES", - "INDI_ERRE","AUTRES","TOUTES"), - ), - b_toutes=BLOC( condition = "TYPE_OPTION == 'TOUTES'",fr="toutes les options evol elas", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="SIEF_ELNO_ELGA", - # contraintes - into=( "SIEF_ELNO_ELGA","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL", - "SIPO_ELNO_DEPL","EFGE_ELNO_DEPL","EFGE_ELNO_CART","SIGM_ELNO_CART", - "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF","SIGM_ELNO_TUYO", - # déformations - "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPSG_ELGA_DEPL","EPSG_ELNO_DEPL", - "EPME_ELNO_DEPL","EPME_ELGA_DEPL","DEGE_ELNO_DEPL","EPSI_ELNO_TUYO", - # ENER - "EPOT_ELEM_DEPL","ECIN_ELEM_DEPL","ENEL_ELGA","ENEL_ELNO_ELGA", - "ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM", - # estimateurs erreur - "SIGM_NOZ1_ELGA","ERRE_ELEM_NOZ1","SIGM_NOZ2_ELGA","ERRE_ELEM_NOZ2", - "SIRE_ELNO_DEPL","ERRE_ELGA_NORE","ERRE_ELNO_ELGA", - "SING_ELEM","SING_ELNO_ELEM", - # CRIT - "EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","CRIT_ELNO_RUPT", - "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME", - "ENDO_ELGA","ENDO_ELNO_ELGA", - "ENDO_ELNO_SIGA","ENDO_ELNO_SINO","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO", - # derivees - "DEUL_ELGA_DEPL","DEDE_ELNO_DLDE","DESI_ELNO_DLSI", - # autres - "VNOR_ELEM_DEPL","VALE_NCOU_MAXI","PRES_DBEL_DEPL"),), - - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1, - fr="numero de couche dans l'épaisseur de la coque ou du tuyau" ), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), - fr="position dans l'épaisseur de la coque, ou de la couche" ), - ANGLE =SIMP(statut='f',typ='I',defaut= 0,fr="angle en degres à partir de la génératrice"), - NOM_CHAM =SIMP(statut='f',typ='TXM',fr="nom du champ pour VALE_NCOU_MAXI", ), - NOM_CMP =SIMP(statut='f',typ='TXM',fr="nom de la composante pour VALE_NCOU_MAXI", ), - PLAN = SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL"), - fr="Plan de calcul pour les plaques excentrées" ), - - b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \ - (type(OPTION)==type(()) and 'SING_ELEM' in OPTION)", - PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,val_max= 1., - fr="precision demandee pour calculer la carte de taille des elements"),), - - EXCIT =FACT(statut='f',max='**', - fr="Charges contenant les températures, les efforts répartis pour les poutres...", - regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),), - CHARGE =SIMP(statut='o',typ=char_meca ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FONC_MULT_C =SIMP(statut='f',typ=fonction_c), - COEF_MULT =SIMP(statut='f',typ='R'), - COEF_MULT_C =SIMP(statut='f',typ='C'), - PHAS_DEG =SIMP(statut='f',typ='R'), - PUIS_PULS =SIMP(statut='f',typ='I'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),), - - - ), -# fin bloc b_toutes - - b_sigm_massif =BLOC( condition = "TYPE_OPTION == 'SIGM_MASSIF'", - fr="options de contraintes elasticite 2D et 3D", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut='SIEF_ELNO_ELGA', - fr="option de calcul des contraintes", - into=( "SIEF_ELNO_ELGA","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL",),), - - b_charge =BLOC( condition = "OPTION in ('SIGM_ELNO_DEPL','SIEF_ELGA_DEPL',) or \ - (type(OPTION)==type(()) and 'SIGM_ELNO_DEPL' in OPTION ) or \ - (type(OPTION)==type(()) and 'SIEF_ELGA_DEPL' in OPTION ) ", - fr="charge contenant les temperatures ou autre charge", - EXCIT =FACT(statut='f',max='**', - CHARGE =SIMP(statut='o',typ=char_meca ),), - ), - ), - - b_sigm_struct =BLOC( condition = "TYPE_OPTION == 'SIGM_STRUCT'", - fr="options de contraintes elasticite poutres, coques, tuyaux", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut='SIEF_ELNO_ELGA', - fr="option de calcul des contraintes ou efforts generalises", - into=( "SIEF_ELNO_ELGA","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL","SIGM_ELNO_TUYO", - "SIPO_ELNO_DEPL","EFGE_ELNO_DEPL","EFGE_ELNO_CART","SIGM_ELNO_CART", - "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF"),), - - b_charge =BLOC( condition = "OPTION in ('SIGM_ELNO_DEPL','SIEF_ELGA_DEPL',\ - 'SIPO_ELNO_DEPL','EFGE_ELNO_DEPL',) or \ - (type(OPTION)==type(()) and 'SIGM_ELNO_DEPL' in OPTION ) or \ - (type(OPTION)==type(()) and 'SIEF_ELGA_DEPL' in OPTION ) or \ - (type(OPTION)==type(()) and 'SIPO_ELNO_DEPL' in OPTION ) or \ - (type(OPTION)==type(()) and 'EFGE_ELNO_DEPL' in OPTION ) ", - fr="charge contenant les temperatures ou les efforts répartis (poutres) ou autre", - EXCIT =FACT(statut='f',max='**', - regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),), - CHARGE =SIMP(statut='f',typ=char_meca ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FONC_MULT_C =SIMP(statut='f',typ=fonction_c), - COEF_MULT =SIMP(statut='f',typ='R'), - COEF_MULT_C =SIMP(statut='f',typ='C'), - PHAS_DEG =SIMP(statut='f',typ='R'), - PUIS_PULS =SIMP(statut='f',typ='I'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),), - ), - - b_niv_couche = BLOC( condition = "OPTION in ('SIGM_ELNO_DEPL',) or \ - (type(OPTION)==type(()) and 'SIGM_ELNO_DEPL' in OPTION) ", - - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1, - fr="numero de couche dans l'épaisseur de la coque (coques multicouches)" ), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), - fr="position dans l'épaisseur de la coque, ou de la couche" ), - ), - - b_sigtuyo = BLOC( condition = "OPTION == 'SIGM_ELNO_TUYO' or \ - (type(OPTION)==type(()) and 'SIGM_ELNO_TUYO' in OPTION) ", - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1 , - fr="numero de couche dans l'épaisseur du tuyau" ), - ANGLE =SIMP(statut='f',typ='I',defaut= 0,fr="angle en degres à partir de la génératrice" ), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), - fr="position dans l'épaisseur de la couche" ), - ), - b_plan_excentrement =BLOC( condition = "OPTION=='EFGE_ELNO_DEPL' or \ - (type(OPTION)==type(()) and 'EFGE_ELNO_DEPL' in OPTION)", - fr="Plan de calcul des efforts pour les plaques avec excentrement", - PLAN = SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL"), - fr="Plan de calcul des efforts pour les plaques avec excentrement",), - - ), - ), -# fin bloc contraintes struct - - b_epsi =BLOC( condition = "TYPE_OPTION=='EPSI'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPME_ELNO_DEPL","EPME_ELGA_DEPL", - "DEGE_ELNO_DEPL","EPSI_ELNO_TUYO",), - ), - b_niv_couche = BLOC( condition = "OPTION =='EPSI_ELNO_DEPL' or \ - (type(OPTION)==type(()) and 'EPSI_ELNO_DEPL' in OPTION) ", - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1, - fr="numero de couche dans l'épaisseur de la coque (coques multicouches)" ), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), - fr="position dans l'épaisseur de la coque, ou de la couche" ), - ) , - b_epstuyo = BLOC( condition = "OPTION == 'EPSI_ELNO_TUYO' or \ - (type(OPTION)==type(()) and 'EPSI_ELNO_TUYO' in OPTION) ", - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1 , - fr="numero de couche dans l'épaisseur du tuyau" ), - ANGLE =SIMP(statut='f',typ='I',defaut= 0,fr="angle en degres à partir de la génératrice" ), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), - fr="position dans l'épaisseur de la couche" ), - ), -b_charge =BLOC( condition = "OPTION in ('EPME_ELNO_DEPL','EPSI_ELGA_DEPL','EPME_ELGA_DEPL','EPSI_ELNO_DEPL','EPSI_ELNO_TUYO' ) or \ - (type(OPTION)==type(()) and 'EPSI_ELNO_DEPL' in OPTION ) or \ - (type(OPTION)==type(()) and 'EPSI_ELNO_TUYO' in OPTION ) or \ - (type(OPTION)==type(()) and 'EPSI_ELGA_DEPL' in OPTION ) or \ - (type(OPTION)==type(()) and 'EPME_ELNO_DEPL' in OPTION ) or \ - (type(OPTION)==type(()) and 'EPME_ELGA_DEPL' in OPTION ) ", - fr="charge contenant les temperatures", - EXCIT =FACT(statut='f',max='**', - CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), - ), - ), - b_ener =BLOC( condition = "TYPE_OPTION=='ENER'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("EPOT_ELEM_DEPL","ECIN_ELEM_DEPL","ENEL_ELGA","ENEL_ELNO_ELGA", - "ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM",), - ), - b_charge =BLOC( condition = "OPTION in ('EPOT_ELEM_DEPL','ECIN_ELEM_DEPL','ENEL_ELGA','ENEL_ELNO_ELGA',) or \ - (type(OPTION)==type(()) and 'EPOT_ELEM_DEPL' in OPTION ) or \ - (type(OPTION)==type(()) and 'ENEL_ELGA' in OPTION ) or \ - (type(OPTION)==type(()) and 'ENEL_ELNO_ELGA' in OPTION ) or \ - (type(OPTION)==type(()) and 'ECIN_ELEM_DEPL' in OPTION ) ", - fr="charge contenant les temperatures", - EXCIT =FACT(statut='f',max='**', - CHARGE =SIMP(statut='f',typ=(char_meca,char_ther,char_acou) ),), - ), - ), - - b_crit =BLOC( condition = "TYPE_OPTION=='CRIT'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("EQUI_ELNO_SIGM","EQUI_ELGA_SIGM", - "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME", - "ENDO_ELGA","ENDO_ELNO_ELGA", - "ENDO_ELNO_SIGA","ENDO_ELNO_SINO","CRIT_ELNO_RUPT","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO", - ) ), - b_niv_couche = BLOC( condition = "OPTION in ('CRIT_ELNO_RUPT','EQUI_ELNO_SIGM') or \ - (type(OPTION)==type(()) and 'EQUI_ELNO_SIGM' in OPTION) or \ - (type(OPTION)==type(()) and 'SIEQ_ELNO_TUYO' in OPTION) or \ - (type(OPTION)==type(()) and 'CRIT_ELNO_RUPT' in OPTION) ", - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1, - fr="numero de couche dans l'épaisseur de la coque (coques multicouches)" ), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), - fr="position dans l'épaisseur de la coque, ou de la couche" ), - ), - EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures", - CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), - ), - - b_derivees =BLOC( condition = "TYPE_OPTION=='DERIVEES'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("DEUL_ELGA_DEPL","DEDE_ELNO_DLDE","DESI_ELNO_DLSI", - ) ),), - - b_autres =BLOC( condition = "TYPE_OPTION=='AUTRES'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("VALE_NCOU_MAXI","PRES_DBEL_DEPL","VNOR_ELEM_DEPL", - ) ), - b_maxi =BLOC( condition = "OPTION=='VALE_NCOU_MAXI' or \ - (type(OPTION)==type(()) and 'VALE_NCOU_MAXI' in OPTION)", - NOM_CHAM =SIMP(statut='o',typ='TXM',fr="Nom du champ pour VALE_NCOU_MAXI" ), - NOM_CMP =SIMP(statut='o',typ='TXM',fr="Nom de la composante pour VALE_NCOU_MAXI"),), - ), - - b_indi_erre =BLOC( condition = "TYPE_OPTION=='INDI_ERRE'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="ERRE_ELGA_NORE", - into=("SIGM_NOZ1_ELGA","ERRE_ELEM_NOZ1","SIGM_NOZ2_ELGA","ERRE_ELEM_NOZ2", - "SIRE_ELNO_DEPL","ERRE_ELGA_NORE","ERRE_ELNO_ELGA", - "SING_ELEM","SING_ELNO_ELEM", - )), - - b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \ - (type(OPTION)==type(()) and 'SING_ELEM' in OPTION)", - PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,val_max=1., - fr="precision demandee pour calculer la de taille des elements" ),), - - EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures", - CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), - ), - ), -# fin bloc lineaire - - -# statique ou dynamique non lineaire : evol_noli - b_noli =BLOC( condition = "AsType(RESULTAT) == evol_noli",fr="options evol noli", - TYPE_OPTION =SIMP(statut='f',typ='TXM',defaut='TOUTES', - into=("SIGM_MASSIF","SIGM_STRUCT","EPSI","ENER","CRIT", - "VARI","INDI_ERRE","TOUTES","AUTRES"), - ), - b_toutes =BLOC( condition = "TYPE_OPTION == 'TOUTES'",fr="toutes les options evol elas", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=( "SIEF_ELNO_ELGA", - "SIGM_ELNO_TUYO","SIGM_ELNO_COQU", - "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF","EFGE_ELNO_CART", - # EPSI - "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPSG_ELNO_DEPL","EPSG_ELGA_DEPL", - "EPME_ELNO_DEPL","EPME_ELGA_DEPL","EPMG_ELNO_DEPL","EPMG_ELGA_DEPL", - "DEGE_ELNO_DEPL","EPSI_ELNO_TUYO", - "EPSP_ELNO","EPSP_ELGA", - "EPGR_ELNO","EPGR_ELGA", - "VARI_ELNO_ELGA","VARI_ELNO_TUYO","VARI_ELNO_COQU","CRIT_ELNO_RUPT", - "EXTR_ELGA_VARI","EXTR_ELNO_VARI", - # CRIT - "EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO", - "ERRE_ELGA_NORE","ERRE_ELNO_ELGA","ERRE_ELEM_NOZ1","ERRE_ELEM_NOZ2", - "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME", - "DCHA_ELNO_SIGM","DCHA_ELGA_SIGM","RADI_ELNO_SIGM","RADI_ELGA_SIGM", - "ENDO_ELGA","ENDO_ELNO_ELGA","INDI_LOCA_ELGA","SING_ELEM", - "SING_ELNO_ELEM","ENDO_ELNO_SIGA","ENDO_ELNO_SINO", - "PMPB_ELNO_SIEF","PMPB_ELGA_SIEF","ENEL_ELGA","ENEL_ELNO_ELGA", - "ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM","VALE_NCOU_MAXI"), - ), - NORME =SIMP(statut='f',typ='TXM',defaut="VMIS", - into=("VMIS","TOTAL","VMIS_CINE","TOTAL_CINE"), - fr="Type de norme pour les options RADI_ et DCHA_"), - - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1,fr="numéro de couche pour coques et tuyaux" ), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), - fr="choix du point d'intégration dans la couche" ), - ANGLE =SIMP(statut='f',typ='I',defaut= 0 ,fr="angle de dépouillement pour les tuyaux"), - NOM_CHAM =SIMP(statut='f',typ='TXM',fr="Nom du champ pour VALE_NCOU_MAXI"), - NOM_CMP =SIMP(statut='f',typ='TXM',fr="Nom de la composante pour VALE_NCOU_MAXI"), - PLAN = SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL") ), - - b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \ - (type(OPTION)==type(()) and 'SING_ELEM' in OPTION)", - PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,val_max=1., - fr="precision demandee pour calculer la carte de taille des elements" ),), - - - b_extr = BLOC( condition = "OPTION in ('EXTR_ELNO_VARI','EXTR_ELGA_VARI')", - NOM_VARI =SIMP(statut='o',typ='TXM',min= 1,max=1,fr="nom de la variable à extraire", - into=("DPORO","DRHOLQ","DPVP","SATLIQ","EVP","IND_ETA","D","IND_END","TEMP_MAX","GAMP","PCR", - "SEUIL_HYD","IND_HYD","PCOHE","COMP_ROC","SEUIL_ISO","ANG_DEV","X11","X22","X33","X12","X13","X23", - "DIST_DEV","DEV_SUR_CRIT","DIST_ISO","NB_ITER","ARRET","NB_REDE","SIGNE"),), - ), - EXCIT =FACT(statut='f',max='**', - regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),), - CHARGE =SIMP(statut='o',typ=char_meca ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FONC_MULT_C =SIMP(statut='f',typ=fonction_c), - COEF_MULT =SIMP(statut='f',typ='R'), - COEF_MULT_C =SIMP(statut='f',typ='C'), - PHAS_DEG =SIMP(statut='f',typ='R'), - PUIS_PULS =SIMP(statut='f',typ='I'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),), - ), - - b_sigm_massif =BLOC( condition = "TYPE_OPTION == 'SIGM_MASSIF'", - fr="options de contraintes non lin 2D et 3D", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - # contraintes - into=( "SIEF_ELNO_ELGA",),), - ), - - b_sigm_struct =BLOC( condition = "TYPE_OPTION == 'SIGM_STRUCT'", - fr="options de contraintes non lin poutres, coques", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - # contraintes - into=( "SIEF_ELNO_ELGA","EFGE_ELNO_CART","SIGM_ELNO_TUYO","SIGM_ELNO_COQU", - "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF",),), - b_sigcoqu = BLOC( condition = "OPTION in ('SIGM_ELNO_COQU',) or \ - (type(OPTION)==type(()) and 'SIGM_ELNO_COQU' in OPTION) ", - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1, - fr="numéro de couche dans l'épaisseur de la coque" ), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), - fr="choix du point d'intégration dans la couche" ), - ), - b_sigtuyo = BLOC( condition = "OPTION in ('SIGM_ELNO_TUYO',) or \ - (type(OPTION)==type(()) and 'SIGM_ELNO_TUYO' in OPTION)", - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1, - fr="numéro de couche dans l'épaisseur du tuyau" ), - ANGLE =SIMP(statut='f',typ='I',defaut= 0, - fr="angle de dépouillement pour les tuyaux, en degres" ), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), - fr="choix du point d'intégration dans la couche"), - ), - ), - - b_epsi =BLOC( condition = "TYPE_OPTION=='EPSI'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=( "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPSG_ELNO_DEPL","EPSG_ELGA_DEPL", - "EPME_ELNO_DEPL","EPME_ELGA_DEPL","EPMG_ELNO_DEPL","EPMG_ELGA_DEPL", - "EPSP_ELNO","EPSP_ELGA","EPGR_ELNO","EPGR_ELGA", - "DEGE_ELNO_DEPL",), - ), - b_niv_couche = BLOC( condition = "OPTION =='EPSI_ELNO_DEPL' or \ - (type(OPTION)==type(()) and 'EPSI_ELNO_DEPL' in OPTION) ", - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1, - fr="numero de couche dans l'épaisseur de la coque (coques multicouches)" ), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), - fr="position dans l'épaisseur de la coque, ou de la couche" ), - ) , - EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures", - CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), - ), - b_epstuyo = BLOC( condition = "OPTION == 'EPSI_ELNO_TUYO' or \ - (type(OPTION)==type(()) and 'EPSI_ELNO_TUYO' in OPTION) ", - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1 , - fr="numero de couche dans l'épaisseur du tuyau" ), - ANGLE =SIMP(statut='f',typ='I',defaut= 0,fr="angle en degres à partir de la génératrice" ), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), - fr="position dans l'épaisseur de la couche" ), - EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures", - CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), - ), - - b_vari =BLOC( condition = "TYPE_OPTION=='VARI'", - fr="Calcul et extraction des variables internes", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("VARI_ELNO_ELGA","VARI_ELNO_TUYO","VARI_ELNO_COQU", - "EXTR_ELGA_VARI","EXTR_ELNO_VARI"), - ), - b_varcoqu = BLOC( condition = "OPTION in ('VARI_ELNO_COQU',) or \ - (type(OPTION)==type(()) and 'VARI_ELNO_COQU' in OPTION) ", - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1, - fr="numéro de couche dans l'épaisseur de la coque"), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), - fr="choix du point d'intégration dans la couche" ), - ), - b_vartuyo = BLOC( condition = "OPTION in ('VARI_ELNO_TUYO',) or \ - (type(OPTION)==type(()) and 'VARI_ELNO_TUYO' in OPTION) ", - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1, - fr="numéro de couche dans l'épaisseur de tuyau" ), - ANGLE =SIMP(statut='f',typ='I',defaut= 0, - fr="angle de dépouillement pour les tuyaux, en degres"), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), - fr="choix du point d'intégration dans la couche" ), - ), - b_extr = BLOC( condition = "OPTION in ('EXTR_ELNO_VARI','EXTR_ELGA_VARI')", - NOM_VARI =SIMP(statut='o',typ='TXM',min= 1,max=1,fr="nom de la variable à extraire", - into=("DPORO","DRHOLQ","DPVP","SATLIQ","EVP","IND_ETA","D","IND_END","TEMP_MAX","GAMP","PCR", - "SEUIL_HYD","IND_HYD","PCOHE","COMP_ROC","SEUIL_ISO","ANG_DEV","X11","X22","X33","X12","X13","X23", - "DIST_DEV","DEV_SUR_CRIT","DIST_ISO","NB_ITER","ARRET","NB_REDE","SIGNE"),), - ), - ), - - b_ener =BLOC( condition = "TYPE_OPTION=='ENER'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM","ENEL_ELGA","ENEL_ELNO_ELGA",), - ), - EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures", - CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), - ), - - b_crit =BLOC( condition = "TYPE_OPTION=='CRIT'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("EQUI_ELNO_SIGM","EQUI_ELGA_SIGM", - "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME", - "ENDO_ELNO_SIGA","ENDO_ELNO_SINO","CRIT_ELNO_RUPT", - "ENDO_ELGA","ENDO_ELNO_ELGA", - "PMPB_ELNO_SIEF","PMPB_ELGA_SIEF","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO", - ) ), - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1,fr="numéro de couche dans l'épaisseur de la coque"), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), - fr="choix du point d'intégration dans la couche" ), - ), - - b_autres =BLOC( condition = "TYPE_OPTION=='AUTRES'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("VALE_NCOU_MAXI",) ), - b_maxi =BLOC( condition = "OPTION=='VALE_NCOU_MAXI' or \ - (type(OPTION)==type(()) and 'VALE_NCOU_MAXI' in OPTION)", - NOM_CHAM =SIMP(statut='o',typ='TXM',fr="Nom du champ pour VALE_NCOU_MAXI" ), - NOM_CMP =SIMP(statut='o',typ='TXM',fr="Nom de la composante pour VALE_NCOU_MAXI"),), - ), - - - b_indi_erre =BLOC( condition = "TYPE_OPTION=='INDI_ERRE'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="ERRE_ELGA_NORE", - into=("ERRE_ELGA_NORE","ERRE_ELNO_ELGA","ERRE_ELEM_NOZ1","ERRE_ELEM_NOZ2", - "DCHA_ELNO_SIGM","DCHA_ELGA_SIGM","RADI_ELNO_SIGM","RADI_ELGA_SIGM", - "SING_ELEM","SING_ELNO_ELEM",) ), - - b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \ - (type(OPTION)==type(()) and 'SING_ELEM' in OPTION)", - PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,val_max=1., - fr="precision demandee pour calculer la carte de taille des elements" ),), - - b_indic = BLOC( condition ="OPTION in ('DCHA_ELNO_SIGM','DCHA_ELGA_SIGM','RADI_ELNO_SIGM','RADI_ELGA_SIGM') or\ - (type(OPTION)==type(()) and 'DCHA_ELNO_SIGM' in OPTION) or\ - (type(OPTION)==type(()) and 'DCHA_ELGA_SIGM' in OPTION) or\ - (type(OPTION)==type(()) and 'RADI_ELNO_SIGM' in OPTION) or\ - (type(OPTION)==type(()) and 'RADI_ELGA_SIGM' in OPTION) ", - NORME =SIMP(statut='f',typ='TXM',defaut="VMIS", - into=("VMIS","TOTAL","VMIS_CINE","TOTAL_CINE") ), - ), - ), - ), -# fin bloc evol_noli - -# thermique : evol_ther - b_ther =BLOC( condition = "AsType(RESULTAT) == evol_ther",fr="options thermiques", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("DEUL_ELGA_TEMP","DETE_ELNO_DLTE","FLUX_ELGA_TEMP","FLUX_ELNO_TEMP", - "HYDR_ELNO_ELGA","DURT_ELGA_META","DURT_ELNO_META", - "SOUR_ELGA_ELEC","ERTH_ELEM_TEMP","ERTH_ELNO_ELEM",),), - EXCIT =FACT(statut='f',max='**', - regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),), - CHARGE =SIMP(statut='o',typ=char_ther ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FONC_MULT_C =SIMP(statut='f',typ=fonction_c), - COEF_MULT =SIMP(statut='f',typ='R'), - COEF_MULT_C =SIMP(statut='f',typ='C'), - PHAS_DEG =SIMP(statut='f',typ='R'), - PUIS_PULS =SIMP(statut='f',typ='I'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),), - ), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), - fr="choix du point de calcul dans l'épaisseur des coques" ), - - ), - -# acoustique - b_acou =BLOC( condition = "AsType(RESULTAT) in (acou_harmo,mode_acou,)",fr="options acoustiques", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG", - "INTE_ELNO_ACTI","INTE_ELNO_REAC", - ),), - EXCIT =FACT(statut='f',max='**', - regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),), - CHARGE =SIMP(statut='o',typ=char_acou ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FONC_MULT_C =SIMP(statut='f',typ=fonction_c), - COEF_MULT =SIMP(statut='f',typ='R'), - COEF_MULT_C =SIMP(statut='f',typ='C'), - PHAS_DEG =SIMP(statut='f',typ='R'), - PUIS_PULS =SIMP(statut='f',typ='I'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),), - ), - - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 28/06/2005 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. -# ====================================================================== -def calc_fatigue_prod(TYPE_CALCUL,OPTION,**args): - if TYPE_CALCUL == "CUMUL_DOMMAGE" : return cham_elem_dommag - if TYPE_CALCUL == "FATIGUE_MULTI" and OPTION == "DOMA_ELGA": return cham_elem_facy_r - if TYPE_CALCUL == "FATIGUE_MULTI" and OPTION == "DOMA_NOEUD": return cham_no_facy_r - raise AsException("type de calcul non prevu") - -CALC_FATIGUE=OPER(nom="CALC_FATIGUE",op= 151,sd_prod=calc_fatigue_prod,reentrant='n', - fr="Calculer un champ de dommage de fatigue subit par une structure et déterminer le plan critique" - +" dans lequel le cisaillement est maximal.", - UIinfo={"groupes":("Post traitements",)}, - - TYPE_CALCUL = SIMP(statut='o',typ='TXM', - into=("CUMUL_DOMMAGE","FATIGUE_MULTI",) ), - - b_cumul_domma =BLOC(condition = "TYPE_CALCUL == 'CUMUL_DOMMAGE'", - fr="Calcul d un champ de dommage subi par une structure.", - regles=(PRESENT_PRESENT('DOMMAGE','MATER', ),), - OPTION =SIMP(statut='o',typ='TXM', - into=("DOMA_ELNO_SIGM","DOMA_ELGA_SIGM", - "DOMA_ELNO_EPSI","DOMA_ELGA_EPSI", - "DOMA_ELNO_EPME","DOMA_ELGA_EPME") ), - HISTOIRE =FACT(statut='o', - RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans, - evol_noli) ), - EQUI_GD =SIMP(statut='f',typ='TXM',defaut="VMIS_SG", - into=("VMIS_SG","INVA_2_SG") ), - ), - DOMMAGE =SIMP(statut='o',typ='TXM', - into=("WOHLER","MANSON_COFFIN","TAHERI_MANSON", - "TAHERI_MIXTE",) ), - MATER =SIMP(statut='o',typ=(mater_sdaster) ), - TAHERI_NAPPE =SIMP(statut='f',typ=(nappe_sdaster,formule) ), - TAHERI_FONC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - b_fatigue_multi =BLOC(condition = "TYPE_CALCUL == 'FATIGUE_MULTI'", - fr="Plan critique dans le cas de la fatigue multiaxiale à grand nombre de cycles.", - TYPE_CHARGE =SIMP(statut='o',typ='TXM',into=("PERIODIQUE","NON_PERIODIQUE") ), - OPTION =SIMP(statut='o',typ='TXM',into=("DOMA_ELGA","DOMA_NOEUD") ), - RESULTAT =SIMP(statut='o',typ=(evol_elas, evol_noli) ), - CHAM_MATER =SIMP(statut='o',typ=(cham_mater) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**' ), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**' ), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**' ), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**' ), - COEF_PREECROU =SIMP(statut='f',typ='R',defaut= 1.0E+0), - b_period =BLOC(condition = "TYPE_CHARGE == 'PERIODIQUE'", - CRITERE =SIMP(statut='o',typ='TXM',into=("MATAKE","DANG_VAN_MODI_AC") ), - METHODE =SIMP(statut='o',typ='TXM',into=("CERCLE_EXACT",) ), - ), - b_non_period =BLOC(condition = "TYPE_CHARGE == 'NON_PERIODIQUE'", - CRITERE =SIMP(statut='o',typ='TXM',into=("DOMM_MAXI","DANG_VAN_MODI_AV","FATEMI_SOCIE") ), - PROJECTION =SIMP(statut='o',typ='TXM',into=("UN_AXE", "DEUX_AXES") ), - DELTA_OSCI =SIMP(statut='f',typ='R',defaut= 0.0E+0), - ), - b_fati_grmano =BLOC(condition = "(GROUP_MA != None or MAILLE != None or GROUP_NO != None or NOEUD != None)", - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), - ), - ), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_FLUI_STRU=OPER(nom="CALC_FLUI_STRU",op= 144,sd_prod=melasflu_sdaster, - reentrant='n', - fr="Calculer les paramètres modaux d'une structure soumise à un écoulement", - UIinfo={"groupes":("Matrices/vecteurs",)}, - VITE_FLUI =FACT(statut='f', - fr="Définir la plage de vitesse fluide étudiée", - VITE_MIN =SIMP(statut='f',typ='R' ), - VITE_MAX =SIMP(statut='f',typ='R' ), - NB_POIN =SIMP(statut='f',typ='I' ), - ), - BASE_MODALE =FACT(statut='o', - - regles=(AU_MOINS_UN('AMOR_REDUIT','AMOR_UNIF','AMOR_REDUIT_CONN'),), - MODE_MECA =SIMP(statut='o',typ=mode_meca ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**',val_min=0.E+00), - AMOR_UNIF =SIMP(statut='f',typ='R',val_min=0.E+00 ), - AMOR_REDUIT_CONN=SIMP(statut='f',typ='R',max='**',val_min=0.E+00), - ), - TYPE_FLUI_STRU =SIMP(statut='o',typ=type_flui_stru ), - IMPRESSION =FACT(statut='f', - fr="Choix des informations à imprimer dans le fichier RESULTAT", - PARA_COUPLAGE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - DEFORMEE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def calc_fonc_interp_prod(FONCTION,**args): - if AsType(FONCTION) ==nappe_sdaster : return nappe_sdaster - elif AsType(FONCTION)==fonction_sdaster : return fonction_sdaster - elif AsType(FONCTION)==fonction_c : return fonction_c - elif AsType(FONCTION)==formule : return fonction_sdaster - elif AsType(FONCTION)==para_sensi : return para_sensi - raise AsException("type de concept resultat non prevu") - -CALC_FONC_INTERP=OPER(nom="CALC_FONC_INTERP",op= 134,sd_prod=calc_fonc_interp_prod, - docu="U4.32.01-e",reentrant='n', - fr="Définit une fonction (ou une nappe) à partir d'une fonction FORMULE à 1 ou 2 variables", - UIinfo={"groupes":("Fonction",)}, - regles=(UN_PARMI('VALE_PARA','LIST_PARA'),), - FONCTION =SIMP(statut='o',typ=(formule,fonction_sdaster,nappe_sdaster,fonction_c) ), - VALE_PARA =SIMP(statut='f',typ='R',max='**'), - LIST_PARA =SIMP(statut='f',typ=listr8_sdaster ), - NOM_RESU =SIMP(statut='f',typ='TXM'), - NOM_PARA =SIMP(statut='f',typ='TXM'), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ), - NOM_PARA_FONC =SIMP(statut='f',typ='TXM'), - b_eval_nappe =BLOC(condition = "NOM_PARA_FONC != None", - regles=(UN_PARMI('VALE_PARA_FONC','LIST_PARA_FONC'),), - VALE_PARA_FONC =SIMP(statut='f',typ='R',max='**'), - LIST_PARA_FONC =SIMP(statut='f',typ=listr8_sdaster ), - INTERPOL_FONC =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG")), - PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ), - PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), -) ; -#& MODIF COMMANDE DATE 19/09/2005 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 -from Macro.calc_fonction_ops import calc_fonction_ops -def calc_fonction_prod(self,DERIVE,EXTRACTION,INTEGRE,INVERSE,COMB,COMB_C, - ENVELOPPE,SPEC_OSCI,ASSE,FFT,COMPOSE,CORR_ACCE,PUISSANCE, - LISS_ENVELOP,ABS, **args): - - if (INTEGRE != None): return fonction_sdaster - if (DERIVE != None): return fonction_sdaster - if (INVERSE != None): return fonction_sdaster - if (COMB != None): - type_vale=AsType(COMB[0]['FONCTION']) - for mcfact in COMB : - if(AsType(mcfact['FONCTION'])!=type_vale): - raise AsException("CALC_FONCTION/COMB : pas de types hétérogènes nappe/fonction") - return type_vale - if (COMB_C != None): - vale=COMB_C[0]['FONCTION'] - if(AsType(vale) == nappe_sdaster): - for mcfact in COMB_C[1:] : - if(AsType(mcfact['FONCTION'])!=nappe_sdaster): - raise AsException("CALC_FONCTION/COMB_C : pas de types hétérogènes nappe/fonction") - return nappe_sdaster - else: - for mcfact in COMB_C : - if(AsType(mcfact['FONCTION'])==nappe_sdaster): - raise AsException("CALC_FONCTION/COMB_C : pas de types hétérogènes nappe/fonction") - return fonction_c - if (ENVELOPPE != None): return AsType(ENVELOPPE[0]['FONCTION']) - if (EXTRACTION != None): return fonction_sdaster - if (SPEC_OSCI != None): return nappe_sdaster - if (COMPOSE != None): return fonction_sdaster - if (ASSE != None): return fonction_sdaster - if (FFT != None): - vale=FFT[0]['FONCTION'] - if (AsType(vale) == fonction_sdaster ) : return fonction_c - if (AsType(vale) == fonction_c) : return fonction_sdaster - if (CORR_ACCE != None): return fonction_sdaster - if (LISS_ENVELOP!= None): return nappe_sdaster - if (PUISSANCE != None): return AsType(PUISSANCE[0]['FONCTION']) - if (ABS != None): return fonction_sdaster - raise AsException("type de concept resultat non prevu") - -CALC_FONCTION=MACRO(nom="CALC_FONCTION",op=calc_fonction_ops,sd_prod=calc_fonction_prod - ,fr="Effectue des opérations mathématiques sur des concepts de type fonction", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - regles=(UN_PARMI('DERIVE','INTEGRE','SPEC_OSCI','COMB','COMB_C','ENVELOPPE', - 'COMPOSE','EXTRACTION','ASSE','FFT','CORR_ACCE', 'PUISSANCE', - 'LISS_ENVELOP','INVERSE','ABS'),), - FFT =FACT(statut='f',fr="Transformée de Fourier ou de son inverse", - FONCTION =SIMP(statut='o',typ=(fonction_sdaster,fonction_c) ), - METHODE =SIMP(statut='f',typ='TXM',defaut="PROL_ZERO",into=("PROL_ZERO","TRONCATURE") ), - b_syme =BLOC ( condition = " AsType(FONCTION)==fonction_c ", - SYME =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI' ), - ), - ), - DERIVE =FACT(statut='f',fr="Dérivée d une fonction", - METHODE =SIMP(statut='f',typ='TXM',defaut="DIFF_CENTREE",into=("DIFF_CENTREE",) ), - FONCTION =SIMP(statut='o',typ=fonction_sdaster ), - ), - INTEGRE =FACT(statut='f',fr="Intégrale d'une fonction", - METHODE =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ), - FONCTION =SIMP(statut='o',typ=fonction_sdaster), - COEF =SIMP(statut='f',typ='R',defaut= 0.E+0,fr="Valeur de la constante d intégration" ), - ), - LISS_ENVELOP = FACT(statut='f',fr="Lissage d une enveloppe", - NAPPE =SIMP(statut='o',typ=nappe_sdaster ), - FREQ_MIN =SIMP(statut='f',typ='R',defaut =0.2), - FREQ_MAX =SIMP(statut='f',typ='R',defaut =35.5), - ELARG =SIMP(statut='f',typ='R',defaut =0.1 ), - TOLE_LISS =SIMP(statut='f',typ='R',defaut =0.25 ), - ), - SPEC_OSCI =FACT(statut='f',fr="Spectre d'oscillateur", - METHODE =SIMP(statut='f',typ='TXM',defaut="NIGAM",into=("NIGAM",) ), - FONCTION =SIMP(statut='o',typ=fonction_sdaster ), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), - FREQ =SIMP(statut='f',typ='R',max='**'), - NORME =SIMP(statut='o',typ='R',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") ), - ), - ABS =FACT(statut='f',fr="Valeur absolue d'une fonction", - FONCTION =SIMP(statut='o',typ=fonction_sdaster,), - ), - COMB =FACT(statut='f',max='**',fr="Combinaison linéaire réelle de fonctions", - FONCTION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster) ), - COEF =SIMP(statut='o',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ), - ), - COMB_C =FACT(statut='f',max='**',fr="Combinaison linéaire complexe de fonctions", - regles=(UN_PARMI('COEF_R','COEF_C'),), - FONCTION =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster) ), - COEF_R =SIMP(statut='f',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ), - COEF_C =SIMP(statut='f',typ='C',fr="Coefficient complexe de la combinaison linéaire associée à la fonction" ), - ), - b_comb =BLOC ( condition = " (COMB != None) or (COMB_C != None)", - LIST_PARA =SIMP(statut='f',typ=listr8_sdaster ), - ), - COMPOSE =FACT(statut='f',fr="Composition de deux fonctions FONC_RESU(FONC_PARA)", - FONC_RESU =SIMP(statut='o',typ=fonction_sdaster), - FONC_PARA =SIMP(statut='o',typ=fonction_sdaster), - ), - EXTRACTION =FACT(statut='f',fr="Extraction sur une fonction complexe", - FONCTION =SIMP(statut='o',typ=fonction_c), - PARTIE =SIMP(statut='o',typ='TXM',into=("REEL","IMAG","MODULE","PHASE"),fr="Partie à extraire"), - ), - ENVELOPPE =FACT(statut='f',fr="Enveloppe d une famille de fonctions", - FONCTION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster),max='**' ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="SUP",into=("SUP","INF"),fr="Type de l enveloppe" ), - ), - ASSE =FACT(statut='f',fr="Concatenation de fonctions", - FONCTION =SIMP(statut='o',typ=fonction_sdaster,min=2,max=2 ), - SURCHARGE =SIMP(statut='f',typ='TXM',defaut="DROITE",into=("DROITE","GAUCHE")), - ), - CORR_ACCE =FACT(statut='f',fr="Correction d un accelerogramme reel", - CORR_DEPL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - FONCTION =SIMP(statut='o',typ=fonction_sdaster ), - ), - PUISSANCE =FACT(statut='f',fr="Fonction élevée à une puissance", - FONCTION =SIMP(statut='o', typ=(fonction_sdaster,nappe_sdaster) ), - EXPOSANT =SIMP(statut='f', typ='I', defaut=1 ), - ), - INVERSE =FACT(statut='f',fr="Inverse d'une fonction", - FONCTION =SIMP(statut='o', typ=fonction_sdaster), - ), - NOM_PARA =SIMP(statut='f',typ='TXM',into=C_PARA_FONCTION() ), - NOM_RESU =SIMP(statut='f',typ='TXM' ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - NOM_PARA_FONC =SIMP(statut='f',typ='TXM',into=C_PARA_FONCTION() ), - INTERPOL_FONC =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ), - PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_FORC_AJOU=OPER(nom="CALC_FORC_AJOU",op=199,sd_prod=vect_asse_gene_r, - fr="Calculer l'effet de surpression hydrodynamique due au mouvement d'entrainement de la structure" - +" en analyse sismique", - reentrant ='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - - regles=(EXCLUS('MODE_MECA','MODELE_GENE'), - PRESENT_PRESENT( 'MODELE_GENE','NUME_DDL_GENE'), - UN_PARMI('MONO_APPUI', 'NOEUD','GROUP_NO'), - UN_PARMI('MONO_APPUI','MODE_STAT')), - - MODELE_FLUIDE =SIMP(statut='o',typ=modele_sdaster ), - MODELE_INTERFACE=SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='o',typ=char_ther ), - MODE_MECA =SIMP(statut='f',typ=mode_meca ), - MODELE_GENE =SIMP(statut='f',typ=modele_gene ), - NUME_DDL_GENE =SIMP(statut='f',typ=nume_ddl_gene ), - DIST_REFE =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - AVEC_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - NUME_MODE_MECA =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - POTENTIEL =SIMP(statut='f',typ=evol_ther ), - NOEUD_DOUBLE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - - DIRECTION =SIMP(statut='o',typ='R',max=3), - MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,),), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), - - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front = BLOC ( condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC( condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC( condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non iversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC (condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - ), - - ) ; -#& MODIF COMMANDE DATE 03/10/2005 AUTEUR GALENNE E.GALENNE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_G_LOCAL_T=OPER(nom="CALC_G_LOCAL_T",op=77,sd_prod=tabl_calc_g_loca, - fr="Calculer le taux de restitution d'énergie local et sous certaines conditions" - +" les facteurs d'intensité de contraintes en 3D par la méthode théta", - UIinfo={"groupes":("Post traitements",)},reentrant='n', - MODELE =SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - regles=(UN_PARMI('RESULTAT','DEPL'), - PRESENT_PRESENT('VITE','ACCE'), - UN_PARMI('R_INF','R_INF_FO'), - PRESENT_PRESENT('R_INF','R_SUP'), - PRESENT_PRESENT('R_INF_FO','R_SUP_FO'), ), - FOND_FISS =SIMP(statut='f',typ=fond_fiss), - DEPL =SIMP(statut='f',typ=cham_no_depl_r), - VITE =SIMP(statut='f',typ=cham_no_depl_r), - ACCE =SIMP(statut='f',typ=cham_no_depl_r), - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,dyna_trans,mode_meca),), - b_extrac =BLOC(condition="RESULTAT != None",fr="extraction d un champ", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST', - 'TOUT_MODE','NUME_MODE','LIST_MODE','FREQ','LIST_FREQ',),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - TOUT_MODE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_MODE =SIMP(statut='f',typ=listis_sdaster), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - - b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)or(FREQ != None)or(LIST_FREQ != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - ), - EXCIT =FACT(statut='f',max='**', - CHARGE =SIMP(statut='o',typ=(char_meca,char_cine_meca)), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), - ), - SYME_CHAR =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","ANTI","SANS") ), - - COMP_ELAS =FACT(statut='f', - RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS", - into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC") ), - ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - ELAS_VMIS_LINE =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - ELAS_VMIS_TRAC =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN") ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), - ), - - COMP_INCR =FACT(statut='f', - RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS", - into=("ELAS","VMIS_ISOT_TRAC","VMIS_ISOT_LINE","VMIS_CINE_LINE") ), - ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - VMIS_ISOT_TRAC =SIMP(statut='f',typ='I',defaut=2,into=(2,) ), - VMIS_ISOT_LINE =SIMP(statut='f',typ='I',defaut=2,into=(2,) ), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC") ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), - ), - - ETAT_INIT =FACT(statut='f', - SIGM =SIMP(statut='f',typ=cham_elem_sief_r), - DEPL =SIMP(statut='f',typ=cham_no_depl_r), - ), - - OPTION =SIMP(statut='f',typ='TXM',defaut="CALC_G", - into=("CALC_G","CALC_K_G","CALC_G_LGLO","G_BILINEAIRE","CALC_G_MAX","K_G_MODA") ), - 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_k_g =BLOC(condition="OPTION=='CALC_K_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") ), - FISSURE =SIMP(statut='o',typ=fiss_xfem,max=1), - ), - b_calc_g_max =BLOC(condition="OPTION=='CALC_G_MAX'", - BORNES =FACT(statut='o',max='**', - NUME_ORDRE =SIMP(statut='o',typ='I'), - VALE_MIN =SIMP(statut='o',typ='R'), - VALE_MAX =SIMP(statut='o',typ='R'), - ), - 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_k_g_moda =BLOC(condition="OPTION=='K_G_MODA'", - LISSAGE_THETA =SIMP(statut='f',typ='TXM',defaut="LAGRANGE",into=("LEGENDRE","LAGRANGE") ), - LISSAGE_G =SIMP(statut='f',typ='TXM',defaut="LAGRANGE",into=("LEGENDRE","LAGRANGE") ), - FISSURE =SIMP(statut='o',typ=fiss_xfem,max=1), - ), - - 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_sdaster,nappe_sdaster,formule)), - R_SUP_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 03/10/2005 AUTEUR GALENNE E.GALENNE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_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" - +" et les facteurs d'intensité de contraintes en 2D.", - reentrant='f', - UIinfo={"groupes":("Post traitements",)}, - regles=(UN_PARMI('RESULTAT','DEPL'), - PRESENT_PRESENT('VITE','ACCE'), - EXCLUS('COMP_ELAS','COMP_INCR'),), - MODELE =SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - THETA =SIMP(statut='o',typ=(theta_geom,cham_no_depl_r),), - DEPL =SIMP(statut='f',typ=cham_no_depl_r), - VITE =SIMP(statut='f',typ=cham_no_depl_r), - ACCE =SIMP(statut='f',typ=cham_no_depl_r), - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,dyna_trans,mode_meca),), - - b_extrac =BLOC(condition="RESULTAT != None",fr="extraction d un champ", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST', - 'TOUT_MODE','NUME_MODE','LIST_MODE','FREQ','LIST_FREQ',),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - TOUT_MODE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_MODE =SIMP(statut='f',typ=listis_sdaster), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - - b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)or(FREQ != None)or(LIST_FREQ != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - ), - EXCIT =FACT(statut='f',max='**', - CHARGE =SIMP(statut='o',typ=(char_meca,char_cine_meca)), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), - ), - SYME_CHAR =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","ANTI","SANS") ), - - COMP_ELAS =FACT(statut='f', - RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS", - into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC") ), - ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - ELAS_VMIS_LINE =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - ELAS_VMIS_TRAC =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN") ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), - ), - COMP_INCR =FACT(statut='f', - RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS", - into=("ELAS","VMIS_ISOT_TRAC","VMIS_ISOT_LINE","VMIS_CINE_LINE") ), - ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - VMIS_ISOT_TRAC =SIMP(statut='f',typ='I',defaut=2,into=(2,) ), - VMIS_ISOT_LINE =SIMP(statut='f',typ='I',defaut=2,into=(2,) ), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC") ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), - ), - ETAT_INIT =FACT(statut='f', - SIGM =SIMP(statut='f',typ=cham_elem_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","K_G_MODA") ), - b_calc_g_max =BLOC(condition="OPTION=='CALC_G_MAX'", - BORNES =FACT(statut='o',max='**', - NUME_ORDRE =SIMP(statut='o',typ='I'), - VALE_MIN =SIMP(statut='o',typ='R'), - VALE_MAX =SIMP(statut='o',typ='R'), - ), - ), - b_calc_k_g =BLOC(condition="OPTION=='CALC_K_G'", - FOND_FISS =SIMP(statut='o',typ=fond_fiss), - ), - b_calc_g_lagr =BLOC(condition="OPTION=='CALC_G_LAGR'", - PROPAGATION =SIMP(statut='o',typ='R'), - ), - b_k_g_moda =BLOC(condition="OPTION=='K_G_MODA'", - FOND_FISS =SIMP(statut='o',typ=fond_fiss,max=1), - ), - - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"), - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_INTE_SPEC=OPER(nom="CALC_INTE_SPEC",op= 120,sd_prod=tabl_intsp, - fr="Calcul d'une matrice interspectrale à partir d'une fonction du temps", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - INST_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - INST_FIN =SIMP(statut='o',typ='R' ), - DUREE_ANALYSE =SIMP(statut='f',typ='R' ), - DUREE_DECALAGE =SIMP(statut='f',typ='R' ), - NB_POIN =SIMP(statut='o',typ='I' ), - FONCTION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ), - TITRE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_MATR_AJOU=OPER(nom="CALC_MATR_AJOU",op= 152,sd_prod=matr_asse_gene_r, - fr="Calcul des matrices de masse, d'amortissement ou de rigidité ajoutés", - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(EXCLUS('MODE_MECA','CHAM_NO','MODELE_GENE'), - PRESENT_ABSENT('NUME_DDL_GENE','CHAM_NO'), - PRESENT_PRESENT('MODELE_GENE','NUME_DDL_GENE'),), - MODELE_FLUIDE =SIMP(statut='o',typ=modele_sdaster ), - MODELE_INTERFACE=SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='o',typ=char_ther ), - MODE_MECA =SIMP(statut='f',typ=mode_meca ), - CHAM_NO =SIMP(statut='f',typ=cham_no_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',validators=NoRepeat(),max='**'), - OPTION =SIMP(statut='o',typ='TXM',into=("MASS_AJOU","AMOR_AJOU","RIGI_AJOU") ), - POTENTIEL =SIMP(statut='f',typ=evol_ther ), - NOEUD_DOUBLE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), - - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front = BLOC ( condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC( condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC( condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non iversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC (condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - ), -) ; -#& MODIF COMMANDE DATE 28/01/2005 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 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",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") ), - - # mots clés facultatifs que l'on a du mal à mettre dans les blocs - # sans gener MACRO_MATR_ASSE : - #------------------------------------------------------------------ - INST=SIMP(statut='f',typ='R',defaut= 0.E+0 ), - - - b_rigi_meca = BLOC( condition = "OPTION=='RIGI_MECA'", - regles=(AU_MOINS_UN('MODELE','CHARGE' ),), - MODELE =SIMP(statut='f',typ=modele_sdaster ), - b_modele =BLOC(condition = "MODELE != None", - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**' ), - ), - - b_rigi_meca_lagr =BLOC(condition = "OPTION=='RIGI_MECA_LAGR'", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**' ), - THETA =SIMP(statut='o',typ=theta_geom ), - PROPAGATION =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - - b_mass_meca =BLOC(condition = "(OPTION=='MASS_MECA') or (OPTION=='MASS_MECA_DIAG')", - regles=(AU_MOINS_UN('MODELE','CHARGE'),), - MODELE =SIMP(statut='f',typ=modele_sdaster ), - b_modele =BLOC(condition = "MODELE != None", - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - ), - CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), - ), - - b_mass_identite =BLOC(condition = "(OPTION in ('MASS_ID_MDEP_R','MASS_ID_MTEM_R','MASS_ID_MDNS_R','MASS_ID_MTNS_R')) ", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - # j'ajoute ces 2 mot clés inutiles à cause de l'alarme pas assez subtile de MEDOME - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - ), - - b_rigi_geom =BLOC(condition = "OPTION=='RIGI_GEOM'", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - SIEF_ELGA =SIMP(statut='o',typ=cham_elem_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_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**' ), - ), - - b_amor_meca =BLOC(condition = "OPTION=='AMOR_MECA'", - regles=(AU_MOINS_UN('CARA_ELEM','RIGI_MECA'), - ENSEMBLE('RIGI_MECA','MASS_MECA','CHAM_MATER'), ), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - RIGI_MECA =SIMP(statut='f',typ=matr_elem_depl_r ), - MASS_MECA =SIMP(statut='f',typ=matr_elem_depl_r ), - CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), - ), - - b_rigi_meca_hyst =BLOC( condition = "OPTION=='RIGI_MECA_HYST'", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHARGE =SIMP(statut='f',typ=char_meca ,validators=NoRepeat(),max='**' ), - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - RIGI_MECA =SIMP(statut='o',typ=matr_elem_depl_r ), - ), - - b_rigi_ther =BLOC(condition = "OPTION=='RIGI_THER'", - regles=(AU_MOINS_UN('MODELE','CHARGE' ),), - MODELE =SIMP(statut='f',typ=modele_sdaster ), - b_modele =BLOC(condition = "MODELE != None", - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - CHARGE =SIMP(statut='f',typ=char_ther,validators=NoRepeat(),max='**' ), - ), - - b_mass_ther =BLOC(condition = "OPTION=='MASS_THER'", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - CHARGE =SIMP(statut='f',typ=char_ther ,validators=NoRepeat(),max='**' ), - ), - - b_rigi_acou =BLOC(condition = "OPTION=='RIGI_ACOU'", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='f',typ=char_acou ,validators=NoRepeat(),max='**' ), - ), - - b_mass_acou =BLOC(condition = "(OPTION=='MASS_ACOU') or (OPTION=='AMOR_ACOU')", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='f',typ=char_acou ,validators=NoRepeat(),max='**' ), - ), - - b_rigi_flui =BLOC(condition = "OPTION=='RIGI_FLUI_STRU'", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='o',typ=char_meca ,validators=NoRepeat(),max='**' ), - ), - - b_mass_flui =BLOC(condition = "OPTION=='MASS_FLUI_STRU'", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='o',typ=char_meca ,validators=NoRepeat(),max='**'), - ), - - b_impe_meca =BLOC(condition = "(OPTION=='IMPE_MECA') or (OPTION=='ONDE_FLUI')", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**' ), - ), -) ; -#& MODIF COMMANDE DATE 24/10/2005 AUTEUR ADBHHVV V.CANO -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_META=OPER(nom="CALC_META",op=194,sd_prod=evol_ther,reentrant='o', - UIinfo={"groupes":("Post traitements",)}, - fr="Calcule l'évolution métallurgique à partir du résultat d'un calcul thermique", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - RESULTAT =SIMP(statut='o',typ=evol_ther ), - ETAT_INIT =FACT(statut='o', - regles=(UN_PARMI('EVOL_THER', 'META_INIT_ELNO'),), - EVOL_THER =SIMP(statut='f',typ=evol_ther ), - META_INIT_ELNO =SIMP(statut='f',typ=carte_var2_r ), - b_etat =BLOC(condition="EVOL_THER != None", - regles=(UN_PARMI('NUME_INIT', 'INST_INIT',),), - NUME_INIT =SIMP(statut='f',typ='I'), - INST_INIT =SIMP(statut='f',typ='R'), - b_inst =BLOC(condition="INST_INIT != None", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ) - ), - ), - ), - COMP_INCR =FACT(statut='o',max='**', - RELATION =SIMP(statut='o',typ='TXM',into=("ACIER","ZIRC",) ), - ACIER =SIMP(statut='c',typ='I',defaut=7,into=(7,) ), - ZIRC =SIMP(statut='c',typ='I',defaut=3,into=(3,) ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma), - MAILLE =SIMP(statut='f',typ=ma), - ), - OPTION =SIMP(statut='f',typ='TXM' - ,into=("META_ELNO_TEMP",) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -def calc_no_prod(RESULTAT,**args): - if AsType(RESULTAT) != None : return AsType(RESULTAT) - raise AsException("type de concept resultat non prevu") - -CALC_NO=OPER(nom="CALC_NO",op= 106,sd_prod=calc_no_prod,reentrant='o', - fr="Enrichir une SD Résultat par des champs aux noeuds calculés à partir de champs aux éléments évalués aux noeuds", - UIinfo={"groupes":("Post traitements",)}, - RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,acou_harmo,mode_meca, - mode_acou,mode_stat,mode_stat_depl,mode_stat_acce, - mode_stat_forc,evol_ther,evol_noli,base_modale, - mult_elas,fourier_elas,mode_flamb ) ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"), - - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM' ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("FORC_NODA","REAC_NODA", - "DCHA_NOEU_SIGM", - "DEGE_NOEU_DEPL", - "DETE_NOEU_DLTE", - "DEDE_NOEU_DLDE", - "DESI_NOEU_DLSI", - "DURT_NOEU_META", - "EFGE_NOEU_CART","EFGE_NOEU_DEPL", - "ENDO_NOEU_SINO", - "ENEL_NOEU_ELGA", - "EPMG_NOEU_DEPL", - "EPSA_NOEU", - "EPSG_NOEU_DEPL", - "EPSI_NOEU_DEPL", - "EPSP_NOEU" ,"EPSP_NOEU_ZAC", - "EQUI_NOEU_EPME","EQUI_NOEU_EPSI","EQUI_NOEU_SIGM", - "ERRE_NOEU_ELGA", - "FLUX_NOEU_TEMP", - "HYDR_NOEU_ELGA", - "INTE_NOEU_ACTI","INTE_NOEU_REAC", - "META_NOEU_TEMP", - "PMPB_NOEU_SIEF", - "PRES_NOEU_DBEL","PRES_NOEU_IMAG","PRES_NOEU_REEL", - "RADI_NOEU_SIGM", - "SIEF_NOEU" ,"SIEF_NOEU_ELGA", - "SIGM_NOEU_CART","SIGM_NOEU_COQU","SIGM_NOEU_DEPL", - "SIGM_NOEU_SIEF","SIGM_NOEU_ZAC", - "SIPO_NOEU_DEPL","SIPO_NOEU_SIEF", - "SIRE_NOEU_DEPL", - "VARI_NOEU","EXTR_NOEU_VARI","VARI_NOEU_ELGA",) ), - - b_forc_reac =BLOC(condition = """(OPTION == 'FORC_NODA') or (type(OPTION) == type(()) and 'FORC_NODA' in OPTION) or\ - (OPTION == 'REAC_NODA') or (type(OPTION) == type(()) and 'REAC_NODA' in OPTION)""", - MODELE =SIMP(statut='f',typ=modele_sdaster), - ), - - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - EXCIT =FACT(statut='f',max='**', - CHARGE =SIMP(statut='f',typ=(char_meca,char_ther,char_acou) ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE", - into=("FIXE_CSTE","FIXE_PILO","SUIV") ), - ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), - GROUP_MA_RESU =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_RESU =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), - GROUP_NO_RESU =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - NOEUD_RESU =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), -) ; -#& MODIF COMMANDE DATE 07/10/2005 AUTEUR CIBHHPD L.SALMONA -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ASSIRE A.ASSIRE - -from Macro.calc_precont_ops import calc_precont_ops - - -# =========================================================================== -# CATALOGUE DE LA MACRO "CALC_PRECONT" -# ----------------------------------------- -# USAGE : -# -# -# =========================================================================== - -CALC_PRECONT=MACRO(nom="CALC_PRECONT",op=calc_precont_ops,sd_prod=evol_noli, - fr="Imposer la tension définie par le BPEL dans les cables", - reentrant='f',UIinfo={"groupe":("Modélisation",)}, - reuse =SIMP(statut='f',typ='evol_noli'), - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - CARA_ELEM =SIMP(statut='o',typ=cara_elem), - CABLE_BP =SIMP(statut='o',typ=cabl_precont,validators=NoRepeat(),max='**'), - CABLE_BP_INACTIF =SIMP(statut='f',typ=cabl_precont,validators=NoRepeat(),max='**'), - INCREMENT =FACT(statut='o', - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - INST_INIT =SIMP(statut='f',typ='R'), - INST_FIN =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - 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', - REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), - PREDICTION =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ), - MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ), - PAS_MINI_ELAS =SIMP(statut='f',typ='R',defaut=0.0E+0), - REAC_ITER =SIMP(statut='f',typ='I',defaut=0), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - ), - RECH_LINEAIRE =FACT(statut='f', - RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-1 ), - ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3), - ), - CONVERGENCE =FACT(statut='d', - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), - ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25), - ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), - ), - ETAT_INIT =FACT(statut='f', - regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), - EXCLUS('NUME_ORDRE','INST'), ), - DEPL =SIMP(statut='f',typ=cham_no_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'), - ), - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - SOLV_NON_LOCAL =FACT(statut='f', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - LAGR_NON_LOCAL =FACT(statut='f', - ITER_DUAL_MAXI =SIMP(statut='f',typ='I',defaut= 50), - RESI_DUAL_ABSO =SIMP(statut='o',typ='R'), - RESI_PRIM_ABSO =SIMP(statut='o',typ='R'), - R =SIMP(statut='f',typ='R',defaut= 1000.), - ITER_PRIM_MAXI =SIMP(statut='f',typ='I',defaut= 10), - ), - PARM_THETA =SIMP(statut='f',typ='R' - ,defaut= 1. ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - - EXCIT =FACT(statut='o',max='**', - CHARGE =SIMP(statut='o',typ=char_meca), - ), - - COMP_INCR =C_COMP_INCR(), - ) ; -#& MODIF COMMANDE DATE 14/11/2005 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# -*- coding: iso-8859-1 -*- - -# RESPONSABLE MCOURTOI M.COURTOIS - -def calc_table_prod(self, TABLE, **kargs): - """Typage du concept produit. - """ - typ_table = AsType(TABLE) - if issubclass(typ_table, table_sdaster): - return typ_table - raise AsException("type de concept resultat non prevu") - -from Macro.calc_table_ops import calc_table_ops - -CALC_TABLE=MACRO(nom="CALC_TABLE",op=calc_table_ops, sd_prod=calc_table_prod, - fr="Opérations sur une table", - reentrant='f', - TABLE = SIMP(statut='o',typ=table_sdaster), - regles=(UN_PARMI('FILTRE', 'EXTR', 'RENOMME', 'TRI', 'COMB', 'OPER',),), - FILTRE = FACT(statut='f',max='**', - fr="Sélectionne les lignes de la table vérifiant un critère", - NOM_PARA = SIMP(statut='o',typ='TXM'), - CRIT_COMP = SIMP(statut='f',typ='TXM',defaut="EQ", - into=("EQ","LT","GT","NE","LE","GE","VIDE", - "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI"),), - b_vale =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))", - regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),), - VALE =SIMP(statut='f',typ='R'), - VALE_I =SIMP(statut='f',typ='I'), - VALE_C =SIMP(statut='f',typ='C'), - VALE_K =SIMP(statut='f',typ='TXM'), - ), - b_crit =BLOC(condition = "CRIT_COMP in ('EQ','NE')", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ), - ), - EXTR =FACT(statut='f', - fr="Extrait une ou plusieurs colonnes de la table", - NOM_PARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - fr="Noms des colonnes à extraire"), - ), - RENOMME =FACT(statut='f', max='**', - fr="Renomme un ou plusieurs paramètres de la table", - NOM_PARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=2,max=2, - fr="Couple (ancien nom du paramètre, nouveau nom du paramètre)",), - ), - TRI =FACT(statut='f', - fr="Ordonne les lignes de la table selon les valeurs d'un ou plusieurs paramètres", - NOM_PARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'), - ORDRE =SIMP(statut='f',typ='TXM',defaut="CROISSANT", # max='**', - into=("CROISSANT","DECROISSANT") ), - ), - COMB =FACT(statut='f', - fr="Combine deux tables ayant éventuellement des paramètres communs", - TABLE =SIMP(statut='o',typ=table_sdaster, - fr="Table dont les colonnes vont venir surcharger la table initiale"), - NOM_PARA =SIMP(statut='f',typ='TXM',max='**', - fr="Noms des paramètres dont les valeurs doivent etre identiques dans les deux tables "\ - "pour que les colonnes soient combinées"), - ), - OPER =FACT(statut='f', max='**', - fr="Applique une formule dans laquelle les variables sont les paramètres de la table", - FORMULE =SIMP(statut='o',typ=formule, - fr="Formule à appliquer aux colonnes de la table"), - NOM_PARA =SIMP(statut='o',typ='TXM', - fr="Nom de la nouvelle colonne"), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**', - fr="Titre de la table produite"), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_THETA=OPER(nom="CALC_THETA",op=54,sd_prod=theta_geom,reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - fr="Définir un champ theta pour le calcul du taux de restitution d'énergie" - +" ou des facteurs d'intensité de contraintes", - regles=(UN_PARMI('THETA_2D','THETA_3D','THETA_BANDE'), - PRESENT_ABSENT('THETA_2D','DIRE_THETA'), - EXCLUS('DIRECTION','DIRE_THETA'),), - OPTION =SIMP(statut='f',typ='TXM',defaut="COURONNE",into=("COURONNE","BANDE") ), - MODELE =SIMP(statut='o',typ=(modele_sdaster) ), - THETA_3D =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'), - UN_PARMI('MODULE','MODULE_FO'), - ENSEMBLE('MODULE','R_INF','R_SUP'), - ENSEMBLE('MODULE_FO','R_INF_FO','R_SUP_FO'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MODULE =SIMP(statut='f',typ='R'), - R_INF =SIMP(statut='f',typ='R'), - R_SUP =SIMP(statut='f',typ='R'), - MODULE_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - R_INF_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - R_SUP_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - b_theta_3d =BLOC(condition="THETA_3D != None", - FOND_FISS =SIMP(statut='f',typ=fond_fiss),), - DIRE_THETA =SIMP(statut='f',typ=(cham_no_depl_r) ), - DIRECTION =SIMP(statut='f',typ='R',max='**'), - THETA_2D =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MODULE =SIMP(statut='o',typ='R'), - R_INF =SIMP(statut='o',typ='R'), - R_SUP =SIMP(statut='o',typ='R'), - ), - THETA_BANDE =FACT(statut='f',max='**', - MODULE =SIMP(statut='o',typ='R'), - R_INF =SIMP(statut='o',typ='R'), - R_SUP =SIMP(statut='o',typ='R'), - ), - GRAD_NOEU_THETA =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - IMPRESSION =FACT(statut='f', - UNITE =SIMP(statut='f',typ='I',defaut=8), - FORMAT =SIMP(statut='f',typ='TXM',defaut="EXCEL",into=("EXCEL","AGRAF") ), - ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def calc_vect_elem_prod(OPTION,**args): - if OPTION == "CHAR_MECA" : return vect_elem_depl_r - if OPTION == "CHAR_MECA_LAGR" : return vect_elem_depl_r - if OPTION == "CHAR_THER" : return vect_elem_temp_r - if OPTION == "CHAR_ACOU" : return vect_elem_pres_c - if OPTION == "FORC_NODA" : return vect_elem_depl_r - raise AsException("type de concept resultat non prevu") - -CALC_VECT_ELEM=OPER(nom="CALC_VECT_ELEM",op=8,sd_prod=calc_vect_elem_prod,reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - fr="Calcul des seconds membres élémentaires", - OPTION =SIMP(statut='o',typ='TXM',into=("CHAR_MECA","CHAR_THER","CHAR_ACOU", - "FORC_NODA","CHAR_MECA_LAGR") ), - b_char_meca =BLOC(condition = "OPTION=='CHAR_MECA'", - regles=(AU_MOINS_UN('CHARGE','MODELE'),), - CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), - MODELE =SIMP(statut='f',typ=modele_sdaster), - b_charge =BLOC(condition = "CHARGE != None", fr="modèle ne contenant pas de sous-structure", - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - b_modele =BLOC(condition = "(MODELE != None)",fr="modèle contenant une sous-structure", - SOUS_STRUC =FACT(statut='o',min=01, - regles=(UN_PARMI('TOUT','MAILLE'),), - CAS_CHARGE =SIMP(statut='o',typ='TXM' ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',), - ), - ), - ), - b_char_ther =BLOC(condition = "OPTION=='CHAR_THER'", - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - CHARGE =SIMP(statut='o',typ=char_ther,validators=NoRepeat(),max='**'), - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - - b_char_acou =BLOC(condition = "OPTION=='CHAR_ACOU'", - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - CHARGE =SIMP(statut='o',typ=char_acou,validators=NoRepeat(),max='**'), - ), - - b_forc_noda =BLOC(condition = "OPTION=='FORC_NODA'", - SIEF_ELGA =SIMP(statut='o',typ=cham_elem_sief_r), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - MODELE =SIMP(statut='f',typ=modele_sdaster), - ), - - b_meca_lagr =BLOC(condition = "OPTION=='CHAR_MECA_LAGR'", - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - THETA =SIMP(statut='o',typ=theta_geom), - PROPAGATION =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -def comb_cham_elem_prod(COMB_R=None,COMB_C=None,COMB_FOURIER=None,**args): - - if COMB_R != None: - vale=COMB_R[0]['CHAM_ELEM'] - elif COMB_C != None: - vale=COMB_C[0]['CHAM_ELEM'] - elif COMB_FOURIER != None: - vale=COMB_FOURIER[0]['CHAM_ELEM'] - 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="Effectuer la combinaison linéaire de champs par éléments", - UIinfo={"groupes":("Résultats et champs",)}, - regles=(UN_PARMI('COMB_R','COMB_C','COMB_FOURIER'), - PRESENT_PRESENT('COMB_FOURIER','ANGL'),), - COMB_R =FACT(statut='f',max='**', - 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',max='**', - regles=(UN_PARMI('COEF_R','COEF_C', ),), - COEF_R =SIMP(statut='f',typ='R'), - COEF_C =SIMP(statut='f',typ='C'), - CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r) ), - ), - COMB_FOURIER =FACT(statut='f',max='**', - 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 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -def comb_cham_no_prod(COMB_R,COMB_C,COMB_FOURIER,**args): - if COMB_C != None: - type_mat = AsType(COMB_C[0]['CHAM_NO']) - 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[0]['CHAM_NO']) - 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[0]['CHAM_NO']) - 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="Effectuer la combinaison linéaire de champs aux noeuds", - reentrant='f', - UIinfo={"groupes":("Résultats et champs",)}, - regles=(UN_PARMI('COMB_R','COMB_C','COMB_FOURIER'),), - COMB_R =FACT(statut='f',max='**', - PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG",) ), - CHAM_NO =SIMP(statut='o',typ=(cham_no_temp_r,cham_no_temp_c,cham_no_depl_r,cham_no_depl_c - ,cham_no_pres_r,cham_no_pres_c ) ), - COEF_R =SIMP(statut='o',typ='R' ), - ), - COMB_C =FACT(statut='f',max='**', - regles=(UN_PARMI('COEF_R','COEF_C' ),), - CHAM_NO =SIMP(statut='o',typ=(cham_no_temp_r,cham_no_depl_r,cham_no_pres_r,cham_no_temp_c - ,cham_no_depl_c,cham_no_pres_c ) ), - COEF_R =SIMP(statut='f',typ='R' ), - COEF_C =SIMP(statut='f',typ='C' ), - ), - COMB_FOURIER =FACT(statut='f',max='**', - 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 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -COMB_FOURIER=OPER(nom="COMB_FOURIER",op= 161,sd_prod=comb_fourier, - reentrant='n',fr="Recombiner les modes de Fourier d'une SD Résultat dans des directions particulières", - UIinfo={"groupes":("Post traitements",)}, - RESULTAT =SIMP(statut='o',typ=fourier_elas ), - ANGL =SIMP(statut='o',typ='R',max='**'), - NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=5, - into=("DEPL","REAC_NODA","SIEF_ELGA_DEPL","EPSI_ELNO_DEPL","SIGM_ELNO_DEPL") ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def comb_matr_asse_prod(COMB_R,COMB_C,CALC_AMOR_GENE,**args): - if COMB_C != None: - type_mat = AsType(COMB_C[0]['MATR_ASSE']) - if type_mat in (matr_asse_depl_c,matr_asse_depl_r) : return matr_asse_depl_c - if type_mat in (matr_asse_gene_c,matr_asse_gene_r) : return matr_asse_gene_c - if type_mat in (matr_asse_temp_c,matr_asse_temp_r) : return matr_asse_temp_c - if type_mat in (matr_asse_pres_c,matr_asse_pres_r) : return matr_asse_pres_c - elif COMB_R != None: - type_mat = AsType(COMB_R[0]['MATR_ASSE']) - if type_mat in (matr_asse_depl_c,matr_asse_depl_r) : return matr_asse_depl_r - if type_mat in (matr_asse_temp_c,matr_asse_temp_r) : return matr_asse_temp_r - if type_mat in (matr_asse_pres_c,matr_asse_pres_r) : return matr_asse_pres_r - if type_mat in (matr_asse_gene_c,matr_asse_gene_r) : return matr_asse_gene_r - elif CALC_AMOR_GENE != None: return matr_asse_gene_r - raise AsException("type de concept resultat non prevu") - -COMB_MATR_ASSE=OPER(nom="COMB_MATR_ASSE",op= 31,sd_prod=comb_matr_asse_prod, - fr="Effectuer la combinaison linéaire de matrices assemblées", - reentrant='f', - UIinfo={"groupes":("Résultats et champs",)}, - regles=(UN_PARMI('COMB_R','COMB_C','CALC_AMOR_GENE' ),), - COMB_R =FACT(statut='f',max='**', - PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ), - MATR_ASSE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,matr_asse_temp_c - ,matr_asse_pres_r,matr_asse_pres_c,matr_asse_gene_r,matr_asse_gene_c ) ), - COEF_R =SIMP(statut='o',typ='R' ), - ), - COMB_C =FACT(statut='f',max='**', - regles=(UN_PARMI('COEF_R','COEF_C' ),), - MATR_ASSE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,matr_asse_temp_c - ,matr_asse_pres_r,matr_asse_pres_c,matr_asse_gene_r,matr_asse_gene_c ) ), - COEF_R =SIMP(statut='f',typ='R' ), - COEF_C =SIMP(statut='f',typ='C' ), - ), - CALC_AMOR_GENE =FACT(statut='f', - 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_sdaster ), - ), - SANS_CMP =SIMP(statut='f',typ='TXM',into=("LAGR",) ), -) ; -#& MODIF COMMANDE DATE 30/06/2004 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. -# ====================================================================== -COMB_SISM_MODAL=OPER(nom="COMB_SISM_MODAL",op= 109,sd_prod=mode_stat, - fr="Réponse sismique par recombinaison modale par une méthode spectrale", - reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','FREQ','NUME_MODE','LIST_FREQ','LIST_ORDRE'), - UN_PARMI('AMOR_REDUIT','LIST_AMOR','AMOR_GENE' ),), - MODE_MECA =SIMP(statut='o',typ=mode_meca ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster ), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), - b_freq =BLOC(condition = "FREQ != None or LIST_FREQ != None", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - MODE_CORR =SIMP(statut='f',typ=mode_stat_acce ), - - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - LIST_AMOR =SIMP(statut='f',typ=listr8_sdaster ), - AMOR_GENE =SIMP(statut='f',typ=matr_asse_gene_r ), - - MASS_INER =SIMP(statut='f',typ=tabl_mass_iner ), - CORR_FREQ =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - - EXCIT =FACT(statut='o',max='**', - regles=(UN_PARMI('MONO_APPUI','NOEUD','GROUP_NO'), - UN_PARMI('AXE','TRI_AXE','TRI_SPEC' ),), - - MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - AXE =SIMP(statut='f',typ='R',max=3,fr="Excitation suivant un seul axe",), - TRI_AXE =SIMP(statut='f',typ='R',max=3,fr="Excitation suivant les trois axes mais avec le meme spectre",), - TRI_SPEC =SIMP(statut='f',typ='TXM',into=("OUI",), - fr="Excitation suivant les trois axes avec trois spectres"), - b_axe =BLOC(condition = "AXE != None",fr="Excitation suivant un seul axe", - SPEC_OSCI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),), - ECHELLE =SIMP(statut='f',typ='R',), - ), - b_tri_axe =BLOC(condition = "TRI_AXE != None",fr="Excitation suivant les trois axes mais avec le meme spectre", - SPEC_OSCI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),), - ECHELLE =SIMP(statut='f',typ='R',), - ), - b_tri_spec =BLOC(condition = "TRI_SPEC != None",fr="Excitation suivant les trois axes avec trois spectres", - SPEC_OSCI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),min=3,max=3 ), - ECHELLE =SIMP(statut='f',typ='R',min=3,max=3), - ), - NATURE =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("ACCE","VITE","DEPL") ), - ), - COMB_MODE =FACT(statut='o', - TYPE =SIMP(statut='o',typ='TXM',into=("SRSS","CQC","DSC","ABS","DPC") ), - DUREE =SIMP(statut='f',typ='R' ), - ), - COMB_DIRECTION =FACT(statut='f', - TYPE =SIMP(statut='f',typ='TXM',into=("QUAD","NEWMARK") ), - ), - COMB_MULT_APPUI =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - TYPE_COMBI =SIMP(statut='f',typ='TXM',into=("QUAD","LINE",) ), - ), - COMB_DEPL_APPUI=FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','LIST_CAS'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)), - LIST_CAS =SIMP(statut='f',typ='I',max='**'), - TYPE_COMBI =SIMP(statut='f',typ='TXM',into=("QUAD","LINE","ABS") ), - ), - DEPL_MULT_APPUI =FACT(statut='f',max='**', - regles=(UN_PARMI('NOEUD','GROUP_NO'), - AU_MOINS_UN('DX','DY','DZ' ),), - NOM_CAS =SIMP(statut='o',typ='TXM',max='**'), - NUME_CAS =SIMP(statut='o',typ='I',max='**'), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,), ), - NOEUD_REFE =SIMP(statut='f',typ=no), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - DX =SIMP(statut='f',typ='R' ), - DY =SIMP(statut='f',typ='R' ), - DZ =SIMP(statut='f',typ='R' ), - ), - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=9, - into=("DEPL","VITE","ACCE_ABSOLU","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL", - "EFGE_ELNO_DEPL","REAC_NODA","FORC_NODA","EFGE_ELNO_CART", - "SIPO_ELNO_DEPL") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), - IMPRESSION =FACT(statut='f',max='**', - regles=(EXCLUS('TOUT','NIVEAU'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NIVEAU =SIMP(statut='f',typ='TXM',into=("SPEC_OSCI","MASS_EFFE","MAXI_GENE"),validators=NoRepeat(),max=3 ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 14/11/2005 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. -# ====================================================================== -def crea_champ_prod(TYPE_CHAM,**args): - import string - grandeur=string.lower(TYPE_CHAM[5:]) - - if TYPE_CHAM[0:5] == "CART_" : - uu="carte_"+grandeur - elif TYPE_CHAM[0:5] == "NOEU_" : - uu="cham_no_"+grandeur - elif TYPE_CHAM[0:2] == "EL" : - uu="cham_elem_"+grandeur - else : - raise AsException("type de concept resultat_sdaster non prevu") - - try : - vv=eval(uu) - except : - raise AsException("type de concept champ non prevu : %s" % uu) - return vv - - -CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod, - fr="Création d'un champ de type CHAM_NO, CARTE ou CHAM_ELEM",reentrant='n', - UIinfo={"groupes":("Résultats et champs",)}, - TYPE_CHAM =SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO()), - # TYPE_CHAM doit etre de la forme : CART_xx, NOEU_xx, ELEM_xx, ELGA_xx ou ELNO_xx - # ou xx est le nom d'une grandeur définie dans le catalogue des grandeurs - -# SI CREATION D'UN CHAM_NO, POUR IMPOSER LA NUMEROTATION DES DDLS : -# ------------------------------------------------------------------ - regles=(EXCLUS('NUME_DDL','CHAM_NO',)), - NUME_DDL =SIMP(statut='f',typ=(nume_ddl_sdaster) ), - CHAM_NO =SIMP(statut='f',typ=(cham_no_sdaster) ), - -# SI CREATION D'UN CHAM_ELEM, POUR aider a l'allocation du champ : -# (PAR DEFAUT : TOU_INI_ELNO/_ELGA/_ELEM) -# ------------------------------------------------------------------ - OPTION =SIMP(statut='f',typ='TXM'), - - OPERATION =SIMP(statut='o',typ='TXM',into=("AFFE","ASSE","EVAL","EXTR","DISC",) ), - - b_affe =BLOC(condition = "OPERATION == 'AFFE'", - regles=(UN_PARMI('MAILLAGE','MODELE'),), - MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster) ), - MODELE =SIMP(statut='f',typ=(modele_sdaster) ), - b_affe_modele =BLOC(condition = "MODELE != None", - PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), ), - AFFE =FACT(statut='o',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD',), - UN_PARMI('VALE','VALE_I','VALE_C','VALE_F', ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), - VALE =SIMP(statut='f',typ='R',max='**' ), - VALE_I =SIMP(statut='f',typ='I',max='**' ), - VALE_C =SIMP(statut='f',typ='C',max='**' ), - VALE_F =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'), - ), - ), - b_asse =BLOC(condition = "OPERATION == 'ASSE'", - regles=(UN_PARMI('MAILLAGE','MODELE'),), - MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster) ), - MODELE =SIMP(statut='f',typ=(modele_sdaster) ), - b_asse_modele =BLOC(condition = "MODELE != None", - PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), ), - ASSE =FACT(statut='o',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD',), - PRESENT_PRESENT('NOM_CMP_RESU','NOM_CMP', ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - CHAM_GD =SIMP(statut='o',typ=(cham_gd_sdaster)), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**' ), - NOM_CMP_RESU =SIMP(statut='f',typ='TXM',max='**' ), - CUMUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - COEF_R =SIMP(statut='f',typ='R',defaut= 1. ), - ), - ), - b_eval =BLOC(condition = "OPERATION == 'EVAL'", - CHAM_F =SIMP(statut='o',typ=(cham_gd_sdaster)), - CHAM_PARA =SIMP(statut='o',typ=(cham_gd_sdaster),max='**'), - ), - b_disc =BLOC(condition = "OPERATION == 'DISC'", - MODELE =SIMP(statut='f',typ=(modele_sdaster) ), - PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - CHAM_GD =SIMP(statut='o',typ=(cham_gd_sdaster)), - ), - b_extr =BLOC(condition = "OPERATION == 'EXTR'", - regles=(AU_MOINS_UN('MAILLAGE','FISSURE','RESULTAT','TABLE'),), - MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster) ), - FISSURE =SIMP(statut='f',typ=(fiss_xfem) ), - RESULTAT =SIMP(statut='f',typ=(resultat_sdaster) ), - TABLE =SIMP(statut='f',typ=(table_sdaster),min=1,max=1), - b_extr_maillage =BLOC(condition = "MAILLAGE != None and TABLE == None", - NOM_CHAM =SIMP(statut='o',typ='TXM',into=("GEOMETRIE",)), - ), - b_extr_fissure =BLOC(condition = "FISSURE != None", - NOM_CHAM =SIMP(statut='o',typ='TXM',into=("LTNO","LNNO","GRLTNO","GRLNNO",)), - ), - b_extr_table =BLOC(condition = "TABLE != None", - regles=( EXCLUS('MODELE','MAILLAGE'), - EXCLUS('PROL_ZERO','MAILLAGE'),), - MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster),), - MODELE =SIMP(statut='f',typ=(modele_sdaster),), - OPTION =SIMP(statut='f',typ='TXM'), - PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - ), - b_extr_resultat =BLOC(condition = "RESULTAT != None", - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom), - fr="Paramètre de sensibilité.", - ang="Sensitivity parameter"), - NOM_CHAM =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()), - TYPE_MAXI =SIMP(statut='f',typ='TXM',into=("MAXI","MINI","MAXI_ABS","MINI_ABS","NORM_TRAN",) ), - - # si TYPE_MAXI, on spécifie en général plusieurs numéros d'ordre : - b_type_maxi =BLOC(condition = "TYPE_MAXI != None", - TYPE_RESU =SIMP(statut='o',typ='TXM',defaut="VALE",into=("VALE","INST",) ), - - regles=(AU_PLUS_UN('LIST_INST','LIST_FREQ','NUME_ORDRE','INST', - 'FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'),), - LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ), - LIST_FREQ =SIMP(statut='f',typ=(listr8_sdaster) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - INST =SIMP(statut='f',typ='R',max='**'), - FREQ =SIMP(statut='f',typ='R',max='**'), - NUME_MODE =SIMP(statut='f',typ='I',max='**'), - NOEUD_CMP =SIMP(statut='f',typ='TXM',max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM',max='**'), - ANGL =SIMP(statut='f',typ='R',max='**'), - - b_tout =BLOC(condition = "(LIST_INST,LIST_FREQ,NUME_ORDRE,INST,\ - FREQ,NUME_MODE,NOEUD_CMP,NOM_CAS,ANGL)\ - ==(None ,None ,None ,None,\ - None,None ,None ,None ,None)", - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",),defaut="OUI",), - ), - ), - - # si .not. TYPE_MAXI, on ne doit spécifier qu'un seul numéro d'ordre : - b_non_type_maxi =BLOC(condition = "TYPE_MAXI == None", - regles=(AU_PLUS_UN('INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'),), - INST =SIMP(statut='f',typ='R'), - FREQ =SIMP(statut='f',typ='R'), - NUME_MODE =SIMP(statut='f',typ='I'), - NOEUD_CMP =SIMP(statut='f',typ='TXM',max=2), - NOM_CAS =SIMP(statut='f',typ='TXM'), - ANGL =SIMP(statut='f',typ='R'), - - b_nume_1 =BLOC(condition = "(INST,FREQ,NUME_MODE,NOEUD_CMP,NOM_CAS,ANGL)\ - ==(None,None,None ,None ,None ,None)", - NUME_ORDRE =SIMP(statut='f',typ='I',defaut=1,), - ), - - INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN",) ), - ), - - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - - ), # fin bloc b_extr - - ), -# FIN DU CATALOGUE : INFO,TITRE ET TYPAGE DU RESULAT : -#----------------------------------------------------- - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# RESPONSABLE MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage_sdaster, - reentrant='n',fr="Crée un maillage à partir d'un maillage existant", - UIinfo={"groupes":("Maillage",)}, - regles=(EXCLUS('ECLA_PG','CREA_MAILLE'), - EXCLUS('ECLA_PG','CREA_GROUP_MA'), - EXCLUS('ECLA_PG','DETR_GROUP_MA'), - EXCLUS('ECLA_PG','MODI_MAILLE'), - EXCLUS('ECLA_PG','LINE_QUAD'), - EXCLUS('ECLA_PG','CREA_FISS'), - EXCLUS('ECLA_PG','COQU_VOLU'), - EXCLUS('LINE_QUAD','MODI_MAILLE'), - EXCLUS('LINE_QUAD','CREA_MAILLE'), - EXCLUS('LINE_QUAD','CREA_GROUP_MA'), - EXCLUS('LINE_QUAD','DETR_GROUP_MA'), - EXCLUS('LINE_QUAD','CREA_FISS'), - EXCLUS('LINE_QUAD','COQU_VOLU'), - EXCLUS('CREA_FISS','MODI_MAILLE'), - EXCLUS('CREA_FISS','CREA_MAILLE'), - EXCLUS('CREA_FISS','CREA_GROUP_MA'), - EXCLUS('CREA_FISS','DETR_GROUP_MA'), - EXCLUS('CREA_FISS','COQU_VOLU'), - EXCLUS('COQU_VOLU','MODI_MAILLE'), - EXCLUS('COQU_VOLU','CREA_MAILLE'), - EXCLUS('COQU_VOLU','CREA_GROUP_MA'), - EXCLUS('COQU_VOLU','DETR_GROUP_MA'), - ), - - # le MAILLAGE est inutile si ECLA_PG - MAILLAGE =SIMP(statut='f',typ=maillage_sdaster ), - - CREA_POI1 =FACT(statut='f',max='**',fr="Création de mailles de type POI1 à partir de noeuds", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD' ),), - NOM_GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - ), - CREA_MAILLE =FACT(statut='f',max='**',fr="Duplication de mailles", - regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - PREF_MAILLE =SIMP(statut='o',typ='TXM' ), - PREF_NUME =SIMP(statut='f',typ='I' ), - ), - CREA_GROUP_MA =FACT(statut='f',max='**',fr="Duplication de mailles et création de groupes de mailles", - regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),), - NOM =SIMP(statut='o',typ='TXM'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - PREF_MAILLE =SIMP(statut='o',typ='TXM' ), - PREF_NUME =SIMP(statut='f',typ='I' ), - ), - DETR_GROUP_MA =FACT(statut='f',fr="Destruction de groupes de mailles", - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - NB_MAILLE =SIMP(statut='f',typ='I',defaut= 0, - fr="Nombre minimal de mailles que doit contenir le groupe pour etre détruit", ), - ), - COQU_VOLU =FACT(statut='f', - fr="Creation de mailles volumiques à partir de mailles surfaciques", - NOM =SIMP(statut='o',typ='TXM'), - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max ='**'), - EPAIS =SIMP(statut='o',typ='R' ), - PREF_MAILLE =SIMP(statut='f',typ='TXM',defaut="MS" ), - PREF_NOEUD =SIMP(statut='f',typ='TXM',defaut="NS" ), - PREF_NUME =SIMP(statut='f',typ='I' ,defaut=1 ), - PLAN =SIMP(statut='o',typ='TXM',into=("SUP","MOY","INF")), - b_MOY =BLOC(condition = "PLAN == 'MOY'", - TRANSLATION =SIMP(statut='o',typ='TXM',into=("SUP","INF") ), - ), - ), - MODI_MAILLE =FACT(statut='f',max='**',fr="Modification du type de mailles", - regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - OPTION =SIMP(statut='o',typ='TXM',into=("TRIA6_7","QUAD8_9","SEG3_4","QUAD_TRIA3"), - fr="Choix de la transformation" ), - b_NOS =BLOC(condition = "OPTION == 'TRIA6_7' or OPTION == 'QUAD8_9' or OPTION == 'SEG3_4'", - PREF_NOEUD =SIMP(statut='f',typ='TXM',defaut="NS"), - PREF_NUME =SIMP(statut='f',typ='I',defaut= 1 ), - ), - b_QTR =BLOC(condition = "OPTION == 'QUAD_TRIA3'", - PREF_MAILLE =SIMP(statut='f',typ='TXM',defaut="MS" ), - PREF_NUME =SIMP(statut='f',typ='I',defaut= 1 ), - ), - ), - CREA_FISS = FACT(statut='f',max='**',fr="Creation d'une fissure potentielle avec elts de joint ou elts à disc", - NOM =SIMP(statut='o',typ='TXM'), - GROUP_NO_1 =SIMP(statut='o',typ=grno), - GROUP_NO_2 =SIMP(statut='o',typ=grno), - PREF_MAILLE =SIMP(statut='o',typ='TXM'), - PREF_NUME =SIMP(statut='f',typ='I',defaut=1 ), - ), - LINE_QUAD =FACT(statut='f',fr="Passage linéaire -> quadratique", - regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - PREF_NOEUD =SIMP(statut='f',typ='TXM',defaut="NS"), - PREF_NUME =SIMP(statut='f',typ='I',defaut= 1 ), - ), - QUAD_LINE =FACT(statut='f',fr="Passage quadratique -> linéaire", - regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - ), - REPERE =FACT(statut='f',max='**', - fr="changement de repère servant à déterminer les caractéristiques d'une section de poutre", - TABLE =SIMP(statut='o',typ=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', - fr="Eclatement des mailles en petites mailles contenant chacune un seul point de gauss", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - SHRINK =SIMP(statut='f',typ='R',defaut= 0.9, fr="Facteur de réduction" ), - TAILLE_MIN =SIMP(statut='f',typ='R',defaut= 0.0, fr="Taille minimale d'un coté" ), - NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - into=("SIEF_ELGA","VARI_ELGA","SIEF_ELGA_DEPL","FLUX_ELGA_TEMP",) ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -# - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 24/10/2005 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def 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 - if TYPE_RESU == "EVOL_CHAR" : return evol_char - raise AsException("type de concept resultat non prevu") - -CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f', - UIinfo={"groupes":("Modélisation",)}, - fr="Créer ou enrichir une structure de donnees resultat à partir de champs aux noeuds", - - OPERATION =SIMP(statut='o',typ='TXM',into=("AFFE","ECLA_PG","PERM_CHAM","PROL_RTZ",), - 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","EVOL_CHAR",) ), - NOM_CHAM =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()), - - AFFE =FACT(statut='o',max='**', - CHAM_GD =SIMP(statut='o',typ=(cham_gd_sdaster)), - MODELE =SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - - # affectation de plusieurs instants à l'aide d'un champ aux noeuds de fonctions du temps: - b_fonc =BLOC(condition = "AsType(CHAM_GD) in (cham_no_temp_f,cham_no_depl_f)", - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - NUME_INIT =SIMP(statut='f',typ='I', val_min=1), - NUME_FIN =SIMP(statut='f',typ='I', val_min=1), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - - # affectation d'un seul nume_ordre : - b_reel =BLOC(condition = "AsType(CHAM_GD) not in (cham_no_temp_f,cham_no_depl_f)", - regles=(UN_PARMI('NOM_CAS','NUME_MODE','INST','LIST_INST'),), - NOM_CAS =SIMP(statut='f',typ='TXM' ), - NUME_MODE =SIMP(statut='f',typ='I'), - TYPE_MODE =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - NUME_INIT =SIMP(statut='f',typ='I', val_min=1), - NUME_FIN =SIMP(statut='f',typ='I', val_min=1), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - ), - ), - - b_ecla_pg =BLOC(condition = "OPERATION == 'ECLA_PG'", - - TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_ELAS","EVOL_NOLI","EVOL_THER"), ), - - ECLA_PG =FACT(statut='o', - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),), - NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("SIEF_ELGA","VARI_ELGA","SIEF_ELGA_DEPL","FLUX_ELGA_TEMP",) ), - MODELE_INIT =SIMP(statut='o',typ=modele_sdaster), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - RESU_INIT =SIMP(statut='o',typ=resultat_sdaster), - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - ), - ), - - b_perm_cham =BLOC(condition = "OPERATION == 'PERM_CHAM'", - - TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_NOLI",) ), - NOM_CHAM =SIMP(statut='f',typ='TXM',into=("DEPL","SIEF_ELGA","VARI_ELGA",),validators=NoRepeat(),max='**' ), - RESU_INIT =SIMP(statut='o',typ=evol_noli), - INST_INIT =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',into=('RELATIF','ABSOLU'),defaut='RELATIF'), - MAILLAGE_INIT =SIMP(statut='o',typ=maillage_sdaster,), - RESU_FINAL =SIMP(statut='o',typ=evol_noli,), - MAILLAGE_FINAL =SIMP(statut='o',typ=maillage_sdaster,), - PERM_CHAM =FACT(statut='o',max='**', - GROUP_MA_FINAL =SIMP(statut='o',typ=grma), - GROUP_MA_INIT =SIMP(statut='o',typ=grma), - TRAN =SIMP(statut='o',typ='R',max='**'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - ), - ), - - b_prol_rtz =BLOC(condition = "OPERATION == 'PROL_RTZ'", - - TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_THER",) ), - - PROL_RTZ =FACT(statut='o', - regles=(EXCLUS('INST','LIST_INST'),), - MAILLAGE_FINAL =SIMP(statut='o',typ=maillage_sdaster,), - TABLE =SIMP(statut='o',typ=tabl_post_rele,fr="Table issue de post_releve_t"), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU",),), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU",),), - REPERE =SIMP(statut='o',typ='TXM',into=("CYLINDRIQUE",),), - ORIGINE =SIMP(statut='o',typ='R',min=3,max=3), - AXE_Z =SIMP(statut='o',typ='R',min=3,max=3), - ), - ), - -) ; -#& MODIF COMMANDE DATE 14/11/2005 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def dict_table_types(): - """Extraction des types de table - """ - from types import ClassType - # en attendant la résorption des 30 types de table ! - d_table = {} - for k, v in globals().items(): - if type(v) is ClassType and issubclass(v, table_sdaster): - d_table[k] = v - # traduction de type - d_table['table'] = d_table['table_sdaster'] - d_table['tabl_inte_spec'] = d_table['tabl_intsp'] - return d_table - -def into_table_types(): - """Récupération de la liste des type de table. - """ - return tuple([typ.upper() for typ in dict_table_types().keys()]) - -def crea_table_prod(TYPE_TABLE,**args): - """Typage du concept résultat - """ - d_table = dict_table_types() - if TYPE_TABLE.lower() in d_table.keys(): - return d_table[TYPE_TABLE.lower()] - raise AsException("type de concept resultat non prevu") - -CREA_TABLE=OPER(nom="CREA_TABLE",op= 36,sd_prod=crea_table_prod, - fr="Création d'une table à partir d'une fonction ou de deux listes", - reentrant='n',UIinfo={"groupes":("Table",)}, - - regles=(EXCLUS('FONCTION','LISTE')), - - TYPE_TABLE=SIMP(statut='f',typ='TXM',defaut="TABLE", - into=into_table_types(),), - LISTE=FACT(statut='f',min=2,max='**', - fr="Creation d'une table a partir de listes", - regles=(UN_PARMI('LISTE_I','LISTE_R','LISTE_K')), - PARA=SIMP(statut='o',typ='TXM'), - TYPE_K=SIMP(statut='f',typ='TXM',defaut='K8', - into=('K8','K16','K24')), - NUME_LIGN=SIMP(statut='f',typ='I',max='**'), - LISTE_I=SIMP(statut='f',typ='I',max='**'), - LISTE_R=SIMP(statut='f',typ='R',max='**'), - LISTE_K=SIMP(statut='f',typ='TXM', max='**')), - FONCTION=FACT(statut='f',min=1,max=1, - fr="Creation d'une table a partir d'une fonction", - FONCTION=SIMP(statut='o',typ=fonction_sdaster), - PARA=SIMP(statut='f',typ='TXM',min=2,max=2)), - TITRE=SIMP(statut='f',typ='TXM',max='**'), -) ; - - - -#& MODIF COMMANDE DATE 17/10/2005 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. -# ====================================================================== -DEBUT=MACRO(nom="DEBUT",op=ops.build_debut ,repetable='n', - UIinfo={"groupes":("Gestion du travail",)}, - fr="Ouverture d'une étude. Allocation des ressources mémoire et disque et fichiers", - sd_prod=ops.DEBUT, - - PAR_LOT =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM', - into=("OUI","NON"),defaut="OUI"), - IMPR_MACRO =SIMP(fr="affichage des sous-commandes produites par les macros dans le fichier mess", - statut='f',typ='TXM',into=("OUI","NON"),defaut="NON"), - FORMAT_HDF =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f', - typ='TXM',defaut="NON",into=("OUI","NON",) ), - BASE =FACT(fr="définition des paramètres associés aux bases JEVEUX", - statut='f',min=1,max=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'ensemble d'une étude", - statut='f',min=1,max=1, - NOM =SIMP(statut='o',typ='TXM'), - NIV_PUB_WEB =SIMP(statut='o',typ='TXM',into=('INTERNET','INTRANET')), - VISU_EFICAS =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI'), - UNITE =SIMP(statut='f',typ='I',defaut=15), - ), - ERREUR =FACT(fr="comportement en cas d'erreur",statut='f',min=1,max=1, - ERREUR_F =SIMP(statut='f',typ='TXM',into=('ABORT','EXCEPTION'),defaut='ABORT'), - ), - DEBUG =FACT(fr="option de déboggage reservée aux développeurs", - statut='f',min=1,max=1, - JXVERI =SIMP(fr="vérifie l intégrité de la segmentation mémoire", - statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'), - 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'), - ), - RESERVE_CPU =FACT(fr="reserve de temps pour terminer une execution",statut='f',max=1, - regles=(EXCLUS('VALE','POURCENTAGE'),), - VALE =SIMP(statut='f',typ='I',val_min=0), - POURCENTAGE =SIMP(statut='f',typ='R',val_min=0.,val_max=1.0), -# valeur en pourcentage du temps maximum bornée à 180 secondes - BORNE =SIMP(statut='f',typ='I',val_min=0,defaut=180) - ), - ); -#& MODIF COMMANDE DATE 03/10/2005 AUTEUR NICOLAS O.NICOLAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_BASE_MODALE=OPER(nom="DEFI_BASE_MODALE",op= 99,sd_prod=base_modale, - reentrant='f', - fr="Définit la base d'une sous-structuration dynamique ou d'une recombinaison modale", - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(UN_PARMI('CLASSIQUE','RITZ','DIAG_MASS','ORTHO_BASE'),), - CLASSIQUE =FACT(statut='f', - INTERF_DYNA =SIMP(statut='o',typ=interf_dyna_clas ), - MODE_MECA =SIMP(statut='o',typ=mode_meca,max='**' ), - NMAX_MODE =SIMP(statut='f',typ='I',defaut= 10 ), - ), - RITZ =FACT(statut='f',max='**', - regles=(UN_PARMI('MODE_STAT','MODE_MECA','MULT_ELAS','BASE_MODALE'),), - MODE_MECA =SIMP(statut='f',typ=mode_meca,max='**' ), - NMAX_MODE =SIMP(statut='f',typ='I',defaut= 999 ), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ), - MULT_ELAS =SIMP(statut='f',typ=mult_elas ), - BASE_MODALE =SIMP(statut='f',typ=base_modale ), - ), - b_ritz =BLOC(condition = "RITZ != None", - INTERF_DYNA =SIMP(statut='f',typ=interf_dyna_clas ), - NUME_REF =SIMP(statut='o',typ=nume_ddl_sdaster ), - ORTHO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Reorthonormalisation de la base de Ritz" ), - b_ortho =BLOC(condition = "ORTHO == 'OUI' ", - MATRICE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_gene_r,matr_asse_pres_r ) ), - ), - ), - DIAG_MASS =FACT(statut='f',max='**', - MODE_MECA =SIMP(statut='o',typ=mode_meca,max='**' ), - MODE_STAT =SIMP(statut='o',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ), - ), - ORTHO_BASE =FACT(statut='f',max='**', - BASE =SIMP(statut='o',typ=(mode_meca,mode_stat_depl,mode_stat_acce,mode_stat_forc,mult_elas,base_modale)), - MATRICE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_gene_r,matr_asse_pres_r ) ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.defi_cable_bp_ops import defi_cable_bp_ops - -# =========================================================================== -# CATALOGUE DE LA MACRO "DEFI_CABLE_BP" -# ----------------------------------------- -# -# USAGE : -# Entrée : -# - MAILLAGE -# - MODELE -# - CABLE -# - CHAM_MATER -# - CARA_ELEM -# - GROUP_MA_BETON -# - DEFI_CABLE -# - TENSION_INIT -# - RECUL_ANCRAGE -# - RELAXATION -# - CONE -# RAYON -# LONGUEUR -# PRESENT OUI ou NON deux fois -# - TITRE -# - INFO 1 / 2 -# -# =========================================================================== - -DEFI_CABLE_BP=MACRO(nom="DEFI_CABLE_BP",op=defi_cable_bp_ops,sd_prod=cabl_precont, - fr="Calculer les profils initiaux de tension le long des cables de précontrainte d'une structure en béton", - reentrant='n',UIinfo={"groupe":("Modélisation",)}, - regles=(ENSEMBLE('MAILLAGE','CONE'),), - MAILLAGE =SIMP(statut='f',typ=maillage_sdaster), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), - GROUP_MA_BETON =SIMP(statut='o',typ=grma,max='**'), - DEFI_CABLE =FACT(statut='o',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('NOEUD_ANCRAGE','GROUP_NO_ANCRAGE'),), - MAILLE =SIMP(statut='f',typ=ma,min=2,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma), - NOEUD_ANCRAGE =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=2), - GROUP_NO_ANCRAGE=SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2), - ), - TYPE_ANCRAGE =SIMP(statut='o',typ='TXM',min=2,max=2,into=("ACTIF","PASSIF") ), - TENSION_INIT =SIMP(statut='o',typ='R',val_min=0.E+0 ), - RECUL_ANCRAGE =SIMP(statut='o',typ='R',val_min=0.E+0 ), - RELAXATION =FACT(statut='f',min=0, - R_J =SIMP(statut='o',typ='R',val_min=0.E+0 ), - ), - CONE =FACT(statut='f', - RAYON =SIMP(statut='o',typ='R',val_min=0.E+0 ), - LONGUEUR =SIMP(statut='o',typ='R',val_min=0.E+0 ), - PRESENT =SIMP(statut='o',typ='TXM',min=2,max=2,into=("OUI","NON") ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -DEFI_CABLE_OP=OPER(nom="DEFI_CABLE_OP",op= 180,sd_prod=cabl_precont,reentrant='n', - fr="Définit les profils initiaux de tension d'une structure en béton le long des cables de précontrainte" - +" (utilisée par la macro DEFI_CABLE_BP)", - UIinfo={"groupes":("Modélisation",)}, - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), - GROUP_MA_BETON =SIMP(statut='o',typ=grma,max='**'), - DEFI_CABLE =FACT(statut='o',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('NOEUD_ANCRAGE','GROUP_NO_ANCRAGE'),), - MAILLE =SIMP(statut='f',typ=ma,min=2,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma), - NOEUD_ANCRAGE =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=2), - GROUP_NO_ANCRAGE=SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2), - GROUP_NO_FUT =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2), - ), - TYPE_ANCRAGE =SIMP(statut='o',typ='TXM',min=2,max=2,into=("ACTIF","PASSIF") ), - TENSION_INIT =SIMP(statut='o',typ='R',val_min=0.E+0 ), - RECUL_ANCRAGE =SIMP(statut='o',typ='R',val_min=0.E+0 ), - RELAXATION =FACT(statut='f',min=0, - R_J =SIMP(statut='o',typ='R',val_min=0.E+0 ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - CONE =FACT(statut='f',min=0, - RAYON =SIMP(statut='o',typ='R',val_min=0.E+0 ), - LONGUEUR =SIMP(statut='o',typ='R',val_min=0.E+0, defaut=0.E+0 ), - PRESENT =SIMP(statut='o',typ='TXM',min=2,max=2,into=("OUI","NON") ), - ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# RESPONSABLE JMBHH01 J.M.PROIX -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_COMPOR=OPER(nom="DEFI_COMPOR",op=59,sd_prod=compor_sdaster, - fr="Définir le comportement d'un monocristal ou d'un polycristal", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(EXCLUS('MONOCRISTAL','POLYCRISTAL'),), - - MONOCRISTAL =FACT(statut='f', max='**', - MATER =SIMP(statut='o', typ=mater_sdaster, max=1), - ECOULEMENT =SIMP(statut='o', typ='TXM', max=1, - fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écoulement viscoplastique"), - ECRO_ISOT =SIMP(statut='o', typ='TXM', max=1, - fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écrouissage isotrope"), - ECRO_CINE =SIMP(statut='o', typ='TXM', max=1, - fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écrouissage cinématique"), - ELAS =SIMP(statut='f', typ='TXM', max=1, - fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le comportement élastique (un et un seul)"), - FAMI_SYST_GLIS =SIMP(statut='o',typ='TXM', max=1, - into=('BASAL', 'PRISMATIQUE', 'OCTAEDRIQUE', 'PYRAMIDAL1', - 'PYRAMIDAL2', 'CUBIQUE1', 'CUBIQUE2', 'MACLAGE', 'JOINT_GRAIN', 'RL', 'UNIAXIAL'),), - ), - - - POLYCRISTAL =FACT(statut='f', max='**', - MONOCRISTAL =SIMP(statut='o', typ=compor_sdaster, max=1), - FRAC_VOL =SIMP(statut='o', typ='R', max=1,fr="fraction volumique de la phase correspondant au monocristal"), - ANGL_REP =SIMP(statut='o',typ='R',max=3,fr="orientation du monocristal : 3 angles d'Euler en degrés"), - ), - - - b_poly =BLOC( condition = "POLYCRISTAL!='None'", - LOCALISATION =SIMP(statut='f', typ='TXM', max=1, into=('BZ', 'BETA', 'RL',), - fr="Donner le nom de la règle de localisation"), - - b_beta =BLOC( condition = "LOCALISATION=='BETA'", - DL =SIMP(statut='o',typ='R',max=1), - DA =SIMP(statut='o',typ='R',max=1), - ), - ), - - ); - -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_CONSTANTE=OPER(nom="DEFI_CONSTANTE",op= 2,sd_prod=fonction_sdaster, - fr="Définir la valeur d'une grandeur invariante", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"), - VALE =SIMP(statut='o',typ='R',), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_COQU_MULT=OPER(nom="DEFI_COQU_MULT",op=56,sd_prod=mater_sdaster,reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - fr="Déterminer les caractéristiques matériaux homogénéisées d'une coque multicouche à partir" - +" des caractéristiques de chaque couche", - COUCHE =FACT(statut='o',max='**', - EPAIS =SIMP(statut='o',typ='R',val_min=0.E+0 ), - MATER =SIMP(statut='o',typ=(mater_sdaster) ), - ORIENTATION =SIMP(statut='f',typ='R',defaut= 0.E+0, - val_min=-90.E+0,val_max=90.E+0 ), - ), - IMPRESSION =FACT(statut='f', - UNITE =SIMP(statut='f',typ='I',defaut=8), - ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE D6BHHJP J.P.LEFEBVRE -def DEFIC_prod(self,ACTION,UNITE,**args): - if ACTION == "ASSOCIER" or ACTION == "RESERVER": - if UNITE != None : - return - else : - return entier - elif ACTION == "LIBERER" : - return - else : - raise AsException("ACTION non prevue : %s" % ACTION) - -DEFI_FICHIER=MACRO(nom="DEFI_FICHIER",op=ops.build_DEFI_FICHIER,sd_prod=DEFIC_prod,reentrant='n', - UIinfo={"groupes":("Gestion du travail",)}, - fr="Ouvre ou ferme un fichier associé à un numéro d'unité logique", - - ACTION =SIMP(statut='f',typ='TXM',into=("ASSOCIER","LIBERER","RESERVER"),defaut="ASSOCIER"), - - b_associer =BLOC(condition = "ACTION == 'ASSOCIER'", - fr="Paramètres pour l'ouverture du fichier", - regles=(AU_MOINS_UN('FICHIER','UNITE'),), - UNITE =SIMP(statut='f',typ='I' ,val_min=1), - FICHIER =SIMP(statut='f',typ='TXM',validators=LongStr(1,255)), - TYPE =SIMP(statut='f',typ='TXM',into=("ASCII","BINARY","LIBRE"),defaut="ASCII"), - - b_type_ascii =BLOC(condition = "TYPE == 'ASCII'",fr="Paramètres pour le type ASCII", - ACCES =SIMP(statut='f',typ='TXM',into=("NEW","APPEND","OLD"),defaut="NEW"), - ), - b_type_autre =BLOC(condition = "TYPE != 'ASCII'",fr="Paramètres pour les types BINARY et LIBRE", - ACCES =SIMP(statut='f',typ='TXM',into=("NEW","OLD"),defaut="NEW"), - ), - ), - - b_reserver =BLOC(condition = "ACTION == 'RESERVER'", - fr="Paramètres pour la réservation de l'unité du fichier", - regles=(AU_MOINS_UN('FICHIER','UNITE'),), - UNITE =SIMP(statut='f',typ='I' ,val_min=1), - FICHIER =SIMP(statut='f',typ='TXM',validators=LongStr(1,255)), - TYPE =SIMP(statut='f',typ='TXM',into=("ASCII",),defaut="ASCII"), - ACCES =SIMP(statut='f',typ='TXM',into=("APPEND",),defaut="APPEND"), - ), - - b_liberer =BLOC(condition = "ACTION == 'LIBERER'", - fr="Paramètres pour la fermeture du fichier", - regles=(UN_PARMI('FICHIER','UNITE'),), - UNITE =SIMP(statut='f',typ='I' ,val_min=1), - FICHIER =SIMP(statut='f',typ='TXM',validators=LongStr(1,255)), - ), - - INFO =SIMP(statut='f',typ='I',into=(1,2) ), - ) -#& MODIF COMMANDE DATE 11/10/2005 AUTEUR VABHHTS J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -DEFI_FISS_XFEM=OPER(nom="DEFI_FISS_XFEM",op= 41,sd_prod=fiss_xfem,reentrant='f', - UIinfo={"groupes":("Modélisation",)}, - fr="Définition des caratéristiques d'une fissure avec X-FEM", - - MODELE =SIMP(statut='o',typ=modele_sdaster), - DEFI_FISS =FACT(statut='o',max=01, - regles =(UN_PARMI('GROUP_MA_FISS','FONC_LT'), - ENSEMBLE('FONC_LT','FONC_LN'), - ENSEMBLE('GROUP_MA_FISS','GROUP_MA_FOND')), - FONC_LT =SIMP(statut='f',typ=(fonction_sdaster,formule) ), - FONC_LN =SIMP(statut='f',typ=(fonction_sdaster,formule) ), - GROUP_MA_FISS =SIMP(statut='f',typ=grma,max=01), - GROUP_MA_FOND =SIMP(statut='f',typ=grma), - ), - GROUP_MA_ENRI =SIMP(statut='o',typ=grma,max=01), - RAYON_ENRI =SIMP(statut='f',typ='R',defaut=0.E+0), - ORIE_FOND =FACT(statut='o',max=01, - PFON_INI =SIMP(statut='o',typ='R',max=03), - VECT_ORIE =SIMP(statut='o',typ='R',max=03), - PT_ORIGIN =SIMP(statut='o',typ='R',max=03), - ), - CONTACT =FACT(statut='o',max=01, - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",) ), - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), - INTEGRATION =SIMP(statut='f',typ='TXM',defaut="FPG4",into=("GAUSS","FPG4","FPG6","FPG7",) ), - COEF_REGU_CONT =SIMP(statut='f',typ='R',defaut=100.E+0), - MODL_AXIS =SIMP(statut='f',typ='TXM',into=("NON",)), - ITER_CONT_MAXI =SIMP(statut='f',typ='I',defaut=30), - CONTACT_INIT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - ALGO_LAGR =SIMP(statut='f',typ='TXM',defaut="VERSION1",into=("NON","VERSION1","VERSION2" , ) ), - b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramères du frottement de Coulomb", - COULOMB =SIMP(statut='o',typ='R',), - ITER_FROT_MAXI =SIMP(statut='f',typ='I',defaut=2), - COEF_REGU_FROT =SIMP(statut='f',typ='R',defaut=100.E+0), - SEUIL_INIT =SIMP(statut='f',typ='R',defaut=0.E+0),), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,3,) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_FLUI_STRU=OPER(nom="DEFI_FLUI_STRU",op= 143,sd_prod=type_flui_stru, - reentrant='n',fr="Définit les caractéristiques nécessaires à l'étude dynamique d'une structure sous écoulement", - UIinfo={"groupes":("Maillage",)}, - regles=( UN_PARMI('FAISCEAU_TRANS','GRAPPE','FAISCEAU_AXIAL','COQUE_COAX',),), - FAISCEAU_TRANS =FACT(statut='f',max='**', - regles=( ENSEMBLE('CSTE_CONNORS','NB_CONNORS','RHO_TUBE'),), - COUPLAGE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - PROF_VITE_FLUI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PROF_RHO_F_INT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PROF_RHO_F_EXT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - NOM_CMP =SIMP(statut='f',typ='TXM',into=("DX","DY","DZ") ), - COEF_MASS_AJOU =SIMP(statut='f',typ='R' ), - TYPE_PAS =SIMP(statut='f',typ='TXM',into=("CARRE_LIGN","TRIA_LIGN") ), - TYPE_RESEAU =SIMP(statut='f',typ='I' ), - UNITE_CD =SIMP(statut='f',typ='I',defaut=70), - UNITE_CK =SIMP(statut='f',typ='I',defaut=71), - PAS =SIMP(statut='f',typ='R' ), - CSTE_CONNORS =SIMP(statut='f',typ='R',min=2,max=2,val_min=0.E+00), - NB_CONNORS =SIMP(statut='f',typ='I',val_min=2,), - RHO_TUBE =SIMP(statut='f',typ='R' ), - ), - GRAPPE =FACT(statut='f', - regles=(ENSEMBLE('GRAPPE_2','NOEUD','CARA_ELEM','MODELE','RHO_FLUI',), - PRESENT_PRESENT('COEF_MASS_AJOU','GRAPPE_2', ),), -# peut on créer un bloc a partir de la valeur de couplage - COUPLAGE =SIMP(statut='o',typ='TXM',into=("OUI","NON") ), - GRAPPE_2 =SIMP(statut='f',typ='TXM', - into=("ASC_CEN","ASC_EXC","DES_CEN","DES_EXC") ), - NOEUD =SIMP(statut='f',typ=no), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - MODELE =SIMP(statut='f',typ=modele_sdaster ), - COEF_MASS_AJOU =SIMP(statut='f',typ='R' ), - RHO_FLUI =SIMP(statut='f',typ='R' ), - UNITE_CA =SIMP(statut='f',typ='I',defaut=70), - UNITE_KA =SIMP(statut='f',typ='I',defaut=71), - ), - FAISCEAU_AXIAL =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_MA','TRI_GROUP_MA'), - UN_PARMI('CARA_ELEM','RAYON_TUBE'), - ENSEMBLE('RAYON_TUBE','COOR_TUBE'), - PRESENT_ABSENT('RAYON_TUBE','TRI_GROUP_MA'), - ENSEMBLE('CARA_PAROI','VALE_PAROI'), - ENSEMBLE('LONG_TYPG','LARG_TYPG','EPAI_TYPG','RUGO_TYPG','COEF_TRAI_TYPG','COEF_DPOR_TYPG', - 'COOR_GRILLE','TYPE_GRILLE', ),), -# on doit pouvoir mettre des blocs conditionnels mais pas assez d infos pour le faire - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - TRI_GROUP_MA =SIMP(statut='f',typ='TXM' ), - VECT_X =SIMP(statut='f',typ='R',max=3), - PROF_RHO_FLUI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PROF_VISC_CINE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - RAYON_TUBE =SIMP(statut='f',typ='R' ), - COOR_TUBE =SIMP(statut='f',typ='R',max='**'), - PESANTEUR =SIMP(statut='f',typ='R',min=4,max=4), - RUGO_TUBE =SIMP(statut='f',typ='R' ), - CARA_PAROI =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=5, - into=("YC","ZC","R","HY","HZ") ), - VALE_PAROI =SIMP(statut='f',typ='R',max=5), - ANGL_VRIL =SIMP(statut='f',typ='R' ), - LONG_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0), - LARG_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0), - EPAI_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0), - RUGO_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0), - COEF_TRAI_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0), - COEF_DPOR_TYPG =SIMP(statut='f',typ='R',max='**'), - COOR_GRILLE =SIMP(statut='f',typ='R',max='**'), - TYPE_GRILLE =SIMP(statut='f',typ='I',max='**'), - ), - COQUE_COAX =FACT(statut='f', - MASS_AJOU =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - GROUP_MA_INT =SIMP(statut='o',typ=grma), - GROUP_MA_EXT =SIMP(statut='o',typ=grma), - VECT_X =SIMP(statut='o',typ='R',max='**'), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), - MATER_INT =SIMP(statut='o',typ=mater_sdaster ), - MATER_EXT =SIMP(statut='o',typ=mater_sdaster ), - RHO_FLUI =SIMP(statut='o',typ='R' ), - VISC_CINE =SIMP(statut='o',typ='R' ), - RUGOSITE =SIMP(statut='o',typ='R' ), - PDC_MOY_1 =SIMP(statut='o',typ='R' ), - PDC_DYN_1 =SIMP(statut='o',typ='R' ), - PDC_MOY_2 =SIMP(statut='o',typ='R' ), - PDC_DYN_2 =SIMP(statut='o',typ='R' ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_FONC_ELEC=OPER(nom="DEFI_FONC_ELEC",op=64,sd_prod=fonction_sdaster,reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - fr="Définir une fonction du temps intervenant dans le calcul des forces de LAPLACE", - regles=(UN_PARMI('COUR_PRIN','COUR'), - EXCLUS('COUR','COUR_SECO'), ), - FREQ =SIMP(statut='f',typ='R',defaut= 50.), - SIGNAL =SIMP(statut='f',typ='TXM',defaut="COMPLET",into=("COMPLET","CONTINU") ), - COUR =FACT(statut='f',max='**', - fr="Définition du courant de court-circuit", - regles=(UN_PARMI('PHI_CC_1','INTC_CC_1'), - UN_PARMI('PHI_CC_2','INTC_CC_2'),), - INTE_CC_1 =SIMP(statut='o',typ='R'), - TAU_CC_1 =SIMP(statut='o',typ='R'), - PHI_CC_1 =SIMP(statut='f',typ='R'), - INTC_CC_1 =SIMP(statut='f',typ='R'), - INTE_CC_2 =SIMP(statut='o',typ='R'), - TAU_CC_2 =SIMP(statut='o',typ='R'), - PHI_CC_2 =SIMP(statut='f',typ='R'), - INTC_CC_2 =SIMP(statut='f',typ='R'), - INST_CC_INIT =SIMP(statut='o',typ='R'), - INST_CC_FIN =SIMP(statut='o',typ='R'), - ), - COUR_PRIN =FACT(statut='f', - fr="Définition du courant de court-circuit avec réenclenchement", - regles=(UN_PARMI('PHI_CC_1','INTC_CC_1'),), - INTE_CC_1 =SIMP(statut='o',typ='R'), - TAU_CC_1 =SIMP(statut='o',typ='R'), - PHI_CC_1 =SIMP(statut='f',typ='R'), - INTC_CC_1 =SIMP(statut='f',typ='R'), - INTE_RENC_1 =SIMP(statut='f',typ='R'), - TAU_RENC_1 =SIMP(statut='f',typ='R'), - PHI_RENC_1 =SIMP(statut='f',typ='R'), - INST_CC_INIT =SIMP(statut='o',typ='R'), - INST_CC_FIN =SIMP(statut='o',typ='R'), - INST_RENC_INIT =SIMP(statut='f',typ='R',defaut= 0.0E+0), - INST_RENC_FIN =SIMP(statut='f',typ='R',defaut= 0.0E+0), - ), - COUR_SECO =FACT(statut='f',max='**', - fr="Définition du courant de court-circuit avec un intervalle de temps différent de celui de COUR_PRIN", - regles=(UN_PARMI('PHI_CC_2','INTC_CC_2'),), - INTE_CC_2 =SIMP(statut='o',typ='R'), - TAU_CC_2 =SIMP(statut='o',typ='R'), - PHI_CC_2 =SIMP(statut='f',typ='R'), - INTC_CC_2 =SIMP(statut='f',typ='R'), - INTE_RENC_2 =SIMP(statut='f',typ='R'), - TAU_RENC_2 =SIMP(statut='f',typ='R'), - PHI_RENC_2 =SIMP(statut='f',typ='R'), - DIST =SIMP(statut='f',typ='R',defaut=1.0E+0), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_FONC_FLUI=OPER(nom="DEFI_FONC_FLUI",op= 142,sd_prod=fonction_sdaster, - reentrant='n', - fr="Définit un profil de vitesse d'écoulement fluide le long d'une poutre", - UIinfo={"groupes":("Fonction",)}, - MAILLAGE =SIMP(statut='o',typ=(maillage_sdaster) ), - NOEUD_INIT =SIMP(statut='o',typ=no), - NOEUD_FIN =SIMP(statut='o',typ=no), - VITE =FACT(statut='o', - VALE =SIMP(statut='f',typ='R',defaut= 1. ), - PROFIL =SIMP(statut='o',typ='TXM',into=("UNIFORME","LEONARD") ), - NB_BAV =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 2 , 3 ) ), - ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN", - into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU", - into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM' ,defaut="EXCLU", - into=("CONSTANT","LINEAIRE","EXCLU") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE MCOURTOI M.COURTOIS -def defi_fonction_prod(VALE,VALE_PARA,VALE_C,NOEUD_PARA,**args): - if VALE != None : return fonction_sdaster - if VALE_C != None : return fonction_c - if VALE_PARA != None : return fonction_sdaster - if NOEUD_PARA != None : return fonction_sdaster - raise AsException("type de concept resultat non prevu") - -DEFI_FONCTION=OPER(nom="DEFI_FONCTION",op=3,sd_prod=defi_fonction_prod - ,fr="Définit une fonction réelle ou complexe d'une variable réelle", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - regles=(UN_PARMI('VALE','VALE_C','VALE_PARA','NOEUD_PARA'),), - NOM_PARA =SIMP(statut='o',typ='TXM',into=C_PARA_FONCTION() ), - NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"), - VALE =SIMP(statut='f',typ='R',min=2,max='**', - fr ="Fonction réelle définie par une liste de couples (abscisse,ordonnée)"), - VALE_C =SIMP(statut='f',typ='R',min=2,max='**', - fr ="Fonction complexe définie par une liste de couples"), - VALE_PARA =SIMP(statut='f',typ=listr8_sdaster, - fr ="Fonction réelle définie par deux concepts de type listr8" ), - b_vale_para =BLOC(condition = "VALE_PARA != None", - VALE_FONC =SIMP(statut='o',typ=listr8_sdaster ), - ), - NOEUD_PARA =SIMP(statut='f',typ=no,max='**', - fr ="Fonction réelle définie par une liste de noeuds et un maillage"), - b_noeud_para =BLOC(condition = "NOEUD_PARA != None", - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), - VALE_Y =SIMP(statut='o',typ='R',max='**'), - ), - - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - VERIF =SIMP(statut='f',typ='TXM',defaut="CROISSANT",into=("CROISSANT","NON") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_FOND_FISS=OPER(nom="DEFI_FOND_FISS",op=55,sd_prod=fond_fiss,reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - fr="Définition de lèvres et d'un fond de fissure en 3D", - regles=(UN_PARMI('FOND_FISS','FOND_FERME'), - 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_sdaster ), - FOND_FISS =FACT(statut='f', - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'), - EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'), - EXCLUS('NOEUD_EXTR','GROUP_NO_EXTR'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), -# à mettre à jour le max vaut-il 1 - NOEUD_ORIG =SIMP(statut='f',typ=no,), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), - NOEUD_EXTR =SIMP(statut='f',typ=no,), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno,), - ), - FOND_FERME =FACT(statut='f', - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'), - EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - NOEUD_ORIG =SIMP(statut='f',typ=no,), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), - MAILLE_ORIG =SIMP(statut='f',typ=ma,), - GROUP_MA_ORIG =SIMP(statut='f',typ=ma,), - ), - LEVRE_SUP =FACT(statut='f', - regles=(UN_PARMI('GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - ), - LEVRE_INF =FACT(statut='f', - regles=(UN_PARMI('GROUP_MA','MAILLE', ),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - ), - NORMALE =SIMP(statut='f',typ='R',max='**'), - DTAN_ORIG =SIMP(statut='f',typ='R',max='**'), - DTAN_EXTR =SIMP(statut='f',typ='R',max='**'), - VECT_GRNO_ORIG =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2), - VECT_GRNO_EXTR =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 04/07/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def defi_group_prod(MAILLAGE,**args): - if AsType(MAILLAGE) == maillage_sdaster : return maillage_sdaster - if AsType(MAILLAGE) == squelette : return squelette - raise AsException("type de concept resultat non prevu") - -DEFI_GROUP=OPER(nom="DEFI_GROUP",op= 104,sd_prod=defi_group_prod, - fr="Définition de nouveaux groupes de noeuds et/ou de mailles dans un concept maillage", - reentrant='o', - UIinfo={"groupes":("Maillage",)}, - regles=(AU_MOINS_UN('CREA_GROUP_MA','CREA_GROUP_NO','DETR_GROUP_NO','DETR_GROUP_MA'),), - MAILLAGE =SIMP(statut='o',typ=(maillage_sdaster,squelette) ), - DETR_GROUP_MA =FACT(statut='f',max='**', - NOM =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),), - DETR_GROUP_NO =FACT(statut='f',max='**', - NOM =SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**'),), - CREA_GROUP_MA =FACT(statut='f',max='**', - -regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','INTERSEC','UNION','DIFFE','OPTION'),), -# quel est le concept attendu deriere NOM - NOM =SIMP(statut='o',typ=grma), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - INTERSEC =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - UNION =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - DIFFE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - OPTION =SIMP(statut='f',typ='TXM',into=("FACE_NORMALE","SPHERE","CYLINDRE","BANDE","APPUI_LACHE") ), - b_group_ma =BLOC(condition = "GROUP_MA != None", - regles=(EXCLUS('POSITION','NUME_INIT'),), - NUME_INIT =SIMP(statut='f',typ='I'), - POSITION =SIMP(statut='f',typ='TXM',into=("INIT","FIN","MILIEU") ), - b_nume_init =BLOC(condition = "NUME_INIT != None", - NUME_FIN =SIMP(statut='f',typ='I' ), - ), - ), - b_face_normale =BLOC(condition = "OPTION == 'FACE_NORMALE'", - regles=(UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), - ANGL_NAUT =SIMP(statut='f',typ='R',max=2), - VECT_NORMALE =SIMP(statut='f',typ='R',max=3), - ANGL_PREC =SIMP(statut='f',typ='R',defaut= 0.5 ), - VERI_SIGNE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_sphere =BLOC(condition = "OPTION == 'SPHERE'", - regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),), - POINT =SIMP(statut='f',typ='R',max=3), - NOEUD_CENTRE =SIMP(statut='f',typ=no), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno), - RAYON =SIMP(statut='o',typ='R' ), - ), - b_cylindre =BLOC(condition = "OPTION == 'CYLINDRE'", - regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'), - UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), - POINT =SIMP(statut='f',typ='R',max=3), - NOEUD_CENTRE =SIMP(statut='f',typ=no), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno), - RAYON =SIMP(statut='o',typ='R' ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=2), - VECT_NORMALE =SIMP(statut='f',typ='R',max=3), - ), - b_bande =BLOC(condition = "OPTION == 'BANDE'", - regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'), - UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), - POINT =SIMP(statut='f',typ='R' ,max=3), - NOEUD_CENTRE =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=1), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1), - DIST =SIMP(statut='o',typ='R' ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=2), - VECT_NORMALE =SIMP(statut='f',typ='R',max=3), - ), - b_app_lache =BLOC(condition = "OPTION == 'APPUI_LACHE'", - regles=(UN_PARMI('NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - ), - ), - CREA_GROUP_NO =FACT(statut='f',max='**', - OPTION =SIMP(statut='f',typ='TXM',into=("ENV_SPHERE","ENV_CYLINDRE","PLAN", - "SEGM_DROI_ORDO","NOEUD_ORDO","TUNNEL") ), - - b_option =BLOC(condition = "OPTION == None" , - regles=(UN_PARMI('TOUT_GROUP_MA','GROUP_MA','GROUP_NO','NOEUD', - 'INTERSEC','UNION','DIFFE'),), - TOUT_GROUP_MA =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - INTERSEC =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - UNION =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - DIFFE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - - b_nom_group_ma =BLOC(condition = "GROUP_MA != None", - NOM = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - CRIT_NOEUD = SIMP(statut='f',typ='TXM',defaut="TOUS", - into=("TOUS","SOMMET","MILIEU","CENTRE"),), - ), - b_group_no =BLOC(condition = "GROUP_NO != None", - regles=(EXCLUS('POSITION','NUME_INIT'),), - NUME_INIT =SIMP(statut='f',typ='I'), - POSITION =SIMP(statut='f',typ='TXM',into=("INIT","FIN","MILIEU") ), - b_nume_init =BLOC(condition = "NUME_INIT != None", - NUME_FIN =SIMP(statut='f',typ='I' ), - ), - ), - b_nom =BLOC(condition = "GROUP_MA == None and TOUT_GROUP_MA == None" , - NOM =SIMP(statut='o',typ=geom), - ), - ), - - b_env_sphere =BLOC(condition = "OPTION == 'ENV_SPHERE'", - regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),), - NOM =SIMP(statut='o',typ=geom), - POINT =SIMP(statut='f',typ='R' ,max=3), - NOEUD_CENTRE =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=1), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1), - RAYON =SIMP(statut='o',typ='R' ), - PRECISION =SIMP(statut='o',typ='R' ), - ), - b_env_cylindre =BLOC(condition = "OPTION == 'ENV_CYLINDRE'", - regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'), - UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), - NOM =SIMP(statut='o',typ=geom), - POINT =SIMP(statut='f',typ='R' ,max=3), - NOEUD_CENTRE =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=1), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1), - RAYON =SIMP(statut='o',typ='R' ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - VECT_NORMALE =SIMP(statut='f',typ='R',max=3), - PRECISION =SIMP(statut='o',typ='R' ), - ), - b_env_plan =BLOC(condition = "OPTION == 'PLAN'", - regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'), - UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), - NOM =SIMP(statut='o',typ=geom), - POINT =SIMP(statut='f',typ='R' ,max=3), - NOEUD_CENTRE =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=1), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1), - ANGL_NAUT =SIMP(statut='f',typ='R' ,max=3), - VECT_NORMALE =SIMP(statut='f',typ='R' ,max=3), - PRECISION =SIMP(statut='o',typ='R' ), - ), - b_segm_droi_ordo=BLOC(condition = "OPTION == 'SEGM_DROI_ORDO'", - regles=(AU_MOINS_UN('NOEUD','GROUP_NO'), - UN_PARMI('NOEUD_ORIG','GROUP_NO_ORIG'), - UN_PARMI('NOEUD_EXTR','GROUP_NO_EXTR'),), - NOM =SIMP(statut='o',typ=geom), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_ORIG =SIMP(statut='f',typ=no), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno), - NOEUD_EXTR =SIMP(statut='f',typ=no), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno), - PRECISION =SIMP(statut='o',typ='R' ), - CRITERE =SIMP(statut='o',typ='TXM',into=("ABSOLU","RELATIF") ), - ), - b_noeud_ordo =BLOC(condition = "OPTION == 'NOEUD_ORDO'", - regles=(EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'), - EXCLUS('NOEUD_EXTR','GROUP_NO_EXTR'),), - NOM =SIMP(statut='o',typ=geom), - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - NOEUD_ORIG =SIMP(statut='f',typ=no), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno), - NOEUD_EXTR =SIMP(statut='f',typ=no), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno), - ), - b_tunnel =BLOC(condition = "OPTION == 'TUNNEL'", - regles=(AU_MOINS_UN ('TOUT','GROUP_MA','MAILLE'), - EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'), - AU_MOINS_UN ('GROUP_MA_AXE','MAILLE_AXE'),), - NOM =SIMP(statut='o',typ=geom), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_AXE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_AXE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - NOEUD_ORIG =SIMP(statut='f',typ=no), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno), - RAYON =SIMP(statut='o',typ='R'), - LONGUEUR =SIMP(statut='f',typ='R'), - ), - ), - ALARME =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - INFO =SIMP(statut='f',typ='I',into=( 1 , 2 ) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_INTE_SPEC=OPER(nom="DEFI_INTE_SPEC",op= 115,sd_prod=tabl_intsp, - reentrant='n',fr="Définit une matrice interspectrale", - UIinfo={"groupes":("Fonction",)}, - - DIMENSION =SIMP(statut='f',typ='I',defaut= 1 ), - - PAR_FONCTION =FACT(statut='f',max='**', - NUME_ORDRE_I =SIMP(statut='o',typ='I' ), - NUME_ORDRE_J =SIMP(statut='o',typ='I' ), - FONCTION =SIMP(statut='o',typ=fonction_c ), - ), - KANAI_TAJIMI =FACT(statut='f',max='**', - regles=(EXCLUS('VALE_R','VALE_C'),), - NUME_ORDRE_I =SIMP(statut='o',typ='I' ), - NUME_ORDRE_J =SIMP(statut='o',typ='I' ), - FREQ_MIN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - FREQ_MAX =SIMP(statut='f',typ='R',defaut= 100. ), - PAS =SIMP(statut='f',typ='R',defaut= 1. ), - AMOR_REDUIT =SIMP(statut='f',typ='R',defaut= 0.6 ), - FREQ_MOY =SIMP(statut='f',typ='R',defaut= 5. ), - VALE_R =SIMP(statut='f',typ='R' ), - VALE_C =SIMP(statut='f',typ='C' ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - ), - CONSTANT =FACT(statut='f',max='**', - regles=(EXCLUS('VALE_R','VALE_C'),), - NUME_ORDRE_I =SIMP(statut='o',typ='I' ), - NUME_ORDRE_J =SIMP(statut='o',typ='I' ), - FREQ_MIN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - FREQ_MAX =SIMP(statut='f',typ='R',defaut= 100. ), - PAS =SIMP(statut='f',typ='R',defaut= 1. ), - VALE_R =SIMP(statut='f',typ='R' ), - VALE_C =SIMP(statut='f',typ='C' ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_INTERF_DYNA=OPER(nom="DEFI_INTERF_DYNA",op= 98,sd_prod=interf_dyna_clas, - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - fr="Définir les interfaces d'une structure et leur affecter un type", - NUME_DDL =SIMP(statut='o',typ=nume_ddl_sdaster ), - INTERFACE =FACT(statut='o',max='**', - regles=(ENSEMBLE('NOM','TYPE'), -# erreur doc U sur la condition qui suit - UN_PARMI('NOEUD','GROUP_NO'),), - NOM =SIMP(statut='f',typ='TXM' ), - TYPE =SIMP(statut='f',typ='TXM',into=("MNEAL","CRAIGB","CB_HARMO","AUCUN") ), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - DDL_ACTIF =SIMP(statut='f',typ='TXM',max='**'), - MASQUE =SIMP(statut='f',typ='TXM',max='**'), - ), - FREQ =SIMP(statut='f',typ='R',defaut= 1.), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -DEFI_LIST_ENTI=OPER(nom="DEFI_LIST_ENTI",op=22,sd_prod=listis_sdaster, - fr="Définir une liste d'entier strictement croissante", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - regles=(UN_PARMI('VALE','DEBUT'), - EXCLUS('VALE','INTERVALLE'),), - VALE =SIMP(statut='f',typ='I',max='**'), - DEBUT =SIMP(statut='f',typ='I'), - INTERVALLE =FACT(statut='f',max='**', - regles=(UN_PARMI('NOMBRE','PAS'),), - JUSQU_A =SIMP(statut='o',typ='I'), - NOMBRE =SIMP(statut='f',typ='I',val_min=1,), - PAS =SIMP(statut='f',typ='I',val_min=1,), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -DEFI_LIST_REEL=OPER(nom="DEFI_LIST_REEL",op=24,sd_prod=listr8_sdaster, - fr="Définir une liste de réels strictement croissante", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - regles=(UN_PARMI('VALE','DEBUT',), - EXCLUS('VALE','INTERVALLE'), - ENSEMBLE('DEBUT','INTERVALLE')), - VALE =SIMP(statut='f',typ='R',max='**'), - DEBUT =SIMP(statut='f',typ='R'), - INTERVALLE =FACT(statut='f',max='**', - regles=(UN_PARMI('NOMBRE','PAS'),), - JUSQU_A =SIMP(statut='o',typ='R'), - NOMBRE =SIMP(statut='f',typ='I'), - PAS =SIMP(statut='f',typ='R'), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -DEFI_MAILLAGE=OPER(nom="DEFI_MAILLAGE",op= 88,sd_prod=maillage_sdaster, - fr="Définition d'un nouveau maillage à partir de macro-éléments", - reentrant='n', - UIinfo={"groupes":("Maillage",)}, - DEFI_MAILLE =FACT(statut='o',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',max='**', - regles=(UN_PARMI('TOUT','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - RECO_MAILLE =FACT(statut='f',max='**', - MAILLE =SIMP(statut='o',typ=ma,max='**'), - GROUP_NO =SIMP(statut='o',typ=grno,max='**'), - OPTION =SIMP(statut='f',typ='TXM',defaut="GEOMETRIQUE",into=("GEOMETRIQUE","NOEUD_A_NOEUD","INVERSE") ), - geometrique =BLOC(condition = "OPTION == 'GEOMETRIQUE'", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - ), - DEFI_NOEUD =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','NOEUD_INIT'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",), - fr="Renommage de tous les noeuds" ), - NOEUD_INIT =SIMP(statut='f',typ=no, - fr="Renommage d un seul noeud"), - b_tout =BLOC(condition = "TOUT != None", - PREFIXE =SIMP(statut='f',typ='TXM' ), - INDEX =SIMP(statut='o',typ='I',max='**'), - ), - b_noeud_init =BLOC(condition = "NOEUD_INIT != None", - MAILLE =SIMP(statut='o',typ=ma), - NOEUD_FIN =SIMP(statut='o',typ=no), - ), - ), - DEFI_GROUP_NO =FACT(statut='f',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 04/10/2005 AUTEUR CIBHHPD L.SALMONA -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, - fr="Définition des paramètres décrivant le comportement d un matériau", - reentrant='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','VISC_IRRA_LOG', - 'LEMA_SEUIL','LEMA_SEUIL_FO','LEMAITRE_IRRA','LMARC_IRRA',), - 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('BARCELONE','CAM_CLAY','ELAS'), - PRESENT_PRESENT('CAM_CLAY','ELAS'), - PRESENT_PRESENT('LAIGLE','ELAS'), - PRESENT_PRESENT('DRUCK_PRAGER','ELAS'), - PRESENT_PRESENT('HOEK_BROWN','ELAS'), - EXCLUS('MAZARS','MAZARS_FO'), - PRESENT_PRESENT('BAZANT_FD','ELAS_FO'), - EXCLUS('GLRC','GLRC_FO'), - PRESENT_PRESENT('JOINT_BA','ELAS'), - PRESENT_PRESENT('CABLE','ELAS'), - ), -# -# comportement élastique -# - ELAS =FACT(statut='f', - E =SIMP(statut='o',typ='R',val_min=0.E+0), - NU =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=0.5E+0), - RHO =SIMP(statut='f',typ='R'), - ALPHA =SIMP(statut='f',typ='R'), - AMOR_ALPHA =SIMP(statut='f',typ='R'), - AMOR_BETA =SIMP(statut='f',typ='R'), - AMOR_HYST =SIMP(statut='f',typ='R'), - ), - ELAS_FO =FACT(statut='f', - regles=(PRESENT_PRESENT('ALPHA','TEMP_DEF_ALPHA'),), - E =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - NU =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - RHO =SIMP(statut='f',typ='R'), - TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.), - ALPHA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - AMOR_ALPHA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - AMOR_BETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - AMOR_HYST =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - K_DESSIC =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - B_ENDOGE =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - FONC_DESORP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST","HYDR","SECH","NEUT1","NEUT2",) ), - ), - ELAS_FLUI =FACT(statut='f', - E =SIMP(statut='o',typ='R'), - NU =SIMP(statut='o',typ='R'), - RHO =SIMP(statut='o',typ='R'), - PROF_RHO_F_INT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PROF_RHO_F_EXT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COEF_MASS_AJOU =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("ABSC",) ), - ), - ELAS_ISTR =FACT(statut='f', - E_L =SIMP(statut='o',typ='R'), - E_N =SIMP(statut='o',typ='R'), - NU_LT =SIMP(statut='o',typ='R'), - NU_LN =SIMP(statut='o',typ='R'), - G_LN =SIMP(statut='o',typ='R'), - RHO =SIMP(statut='f',typ='R'), - ALPHA_L =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ALPHA_N =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - ELAS_ISTR_FO =FACT(statut='f', - regles=( - PRESENT_PRESENT('ALPHA_L','TEMP_DEF_ALPHA'), - PRESENT_PRESENT('ALPHA_N','TEMP_DEF_ALPHA'), - ), - E_L =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - E_N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - NU_LT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - NU_LN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G_LN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - RHO =SIMP(statut='f',typ='R'), - TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.), - ALPHA_L =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ALPHA_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST")), - ), - ELAS_ORTH =FACT(statut='f', - E_L =SIMP(statut='o',typ='R'), - E_T =SIMP(statut='o',typ='R'), - E_N =SIMP(statut='f',typ='R'), - NU_LT =SIMP(statut='o',typ='R'), - NU_LN =SIMP(statut='f',typ='R'), - NU_TN =SIMP(statut='f',typ='R'), - G_LT =SIMP(statut='o',typ='R'), - G_LN =SIMP(statut='f',typ='R'), - G_TN =SIMP(statut='f',typ='R'), - RHO =SIMP(statut='f',typ='R'), - ALPHA_L =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ALPHA_T =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ALPHA_N =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - XT =SIMP(statut='f',typ='R',defaut= 1. ), - XC =SIMP(statut='f',typ='R',defaut= 1. ), - YT =SIMP(statut='f',typ='R',defaut= 1. ), - YC =SIMP(statut='f',typ='R',defaut= 1. ), - S_LT =SIMP(statut='f',typ='R',defaut= 1. ), - ), - ELAS_ORTH_FO =FACT(statut='f', - regles=( - PRESENT_PRESENT('ALPHA_L','TEMP_DEF_ALPHA'), - PRESENT_PRESENT('ALPHA_N','TEMP_DEF_ALPHA'), - PRESENT_PRESENT('ALPHA_T','TEMP_DEF_ALPHA'), - ), - E_L =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - E_T =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - E_N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - NU_LT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - NU_LN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - NU_TN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G_LT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G_LN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G_TN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - RHO =SIMP(statut='f',typ='R'), - TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1. ), - ALPHA_L =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ALPHA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ALPHA_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST",) ), - ), - ELAS_THM =FACT(statut='f', - 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', - 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', - 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', - 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', - regles=(EXCLUS('MEMB_L','M_LLLL',), - PRESENT_PRESENT('MEMB_L','MEMB_LT', 'MEMB_T','MEMB_G_LT','FLEX_L','FLEX_LT', - 'FLEX_T','FLEX_G_LT','CISA_L','CISA_T',), - PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL', - 'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL', - 'MF_LLTT','MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ', - 'MC_LLTZ','MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ', - 'FC_LLTZ','FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ', - 'C_LZTZ','C_TZTZ'),), - MEMB_L =SIMP(statut='f',typ='R'), - MEMB_LT =SIMP(statut='f',typ='R'), - MEMB_T =SIMP(statut='f',typ='R'), - MEMB_G_LT =SIMP(statut='f',typ='R'), - FLEX_L =SIMP(statut='f',typ='R'), - FLEX_LT =SIMP(statut='f',typ='R'), - FLEX_T =SIMP(statut='f',typ='R'), - FLEX_G_LT =SIMP(statut='f',typ='R'), - CISA_L =SIMP(statut='f',typ='R'), - CISA_T =SIMP(statut='f',typ='R'), - M_LLLL =SIMP(statut='f',typ='R'), - M_LLTT =SIMP(statut='f',typ='R'), - M_LLLT =SIMP(statut='f',typ='R'), - M_TTTT =SIMP(statut='f',typ='R'), - M_TTLT =SIMP(statut='f',typ='R'), - M_LTLT =SIMP(statut='f',typ='R'), - F_LLLL =SIMP(statut='f',typ='R'), - F_LLTT =SIMP(statut='f',typ='R'), - F_LLLT =SIMP(statut='f',typ='R'), - F_TTTT =SIMP(statut='f',typ='R'), - F_TTLT =SIMP(statut='f',typ='R'), - F_LTLT =SIMP(statut='f',typ='R'), - MF_LLLL =SIMP(statut='f',typ='R'), - MF_LLTT =SIMP(statut='f',typ='R'), - MF_LLLT =SIMP(statut='f',typ='R'), - MF_TTTT =SIMP(statut='f',typ='R'), - MF_TTLT =SIMP(statut='f',typ='R'), - MF_LTLT =SIMP(statut='f',typ='R'), - MC_LLLZ =SIMP(statut='f',typ='R'), - MC_LLTZ =SIMP(statut='f',typ='R'), - MC_TTLZ =SIMP(statut='f',typ='R'), - MC_TTTZ =SIMP(statut='f',typ='R'), - MC_LTLZ =SIMP(statut='f',typ='R'), - MC_LTTZ =SIMP(statut='f',typ='R'), - FC_LLLZ =SIMP(statut='f',typ='R'), - FC_LLTZ =SIMP(statut='f',typ='R'), - FC_TTLZ =SIMP(statut='f',typ='R'), - FC_TTTZ =SIMP(statut='f',typ='R'), - FC_LTLZ =SIMP(statut='f',typ='R'), - FC_LTTZ =SIMP(statut='f',typ='R'), - C_LZLZ =SIMP(statut='f',typ='R'), - C_LZTZ =SIMP(statut='f',typ='R'), - C_TZTZ =SIMP(statut='f',typ='R'), - RHO =SIMP(statut='f',typ='R'), - ALPHA =SIMP(statut='f',typ='R'), - ), - ELAS_COQUE_FO =FACT(statut='f', - regles=(EXCLUS('MEMB_L','M_LLLL',), - PRESENT_PRESENT('MEMB_L','MEMB_LT','MEMB_T','MEMB_G_LT','FLEX_L','FLEX_LT', - 'FLEX_T','FLEX_G_LT','CISA_L','CISA_T',), - PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL', - 'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL','MF_LLTT', - 'MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ','MC_LLTZ', - 'MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ','FC_LLTZ', - 'FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ','C_LZTZ','C_TZTZ'),), - MEMB_L =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MEMB_LT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MEMB_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MEMB_G_LT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FLEX_L =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FLEX_LT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FLEX_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FLEX_G_LT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CISA_L =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CISA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_LLLL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_LLTT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_LLLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_TTTT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_TTLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_LTLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_LLLL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_LLTT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_LLLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_TTTT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_TTLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_LTLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MF_LLLL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MF_LLTT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MF_LLLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MF_TTTT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MF_TTLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MF_LTLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MC_LLLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MC_LLTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MC_TTLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MC_TTTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MC_LTLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MC_LTTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FC_LLLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FC_LLTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FC_TTLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FC_TTTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FC_LTLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FC_LTTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_LZLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_LZTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_TZTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - RHO =SIMP(statut='f',typ='R'), - ALPHA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST") ), - ), - APPUI_ELAS =FACT(statut='f', - E_N =SIMP(statut='o',typ='R'), - E_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0), - ), - CABLE =FACT(statut='f', - EC_SUR_E =SIMP(statut='f',typ='R',defaut= 1.E-4 ), - ), -# -# comportement mécanique non linéaire -# - TRACTION =FACT(statut='f', - SIGM =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("EPSI","TEMP","HYDR","SECH",) ), - ), - ECRO_LINE =FACT(statut='f', - D_SIGM_EPSI =SIMP(statut='o',typ='R',), - SY =SIMP(statut='o',typ='R',), - ), - ECRO_LINE_FO =FACT(statut='f', - D_SIGM_EPSI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SY =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - BETON_ECRO_LINE =FACT(statut='f', - D_SIGM_EPSI =SIMP(statut='o',typ='R'), - SYT =SIMP(statut='o',typ='R'), - SYC =SIMP(statut='f',typ='R'), - ), - BETON_REGLE_PR =FACT(statut='f', - D_SIGM_EPSI =SIMP(statut='o',typ='R'), - SYT =SIMP(statut='o',typ='R'), - SYC =SIMP(statut='f',typ='R'), - EPSC =SIMP(statut='f',typ='R'), - N =SIMP(statut='f',typ='R'), - ), - ENDO_ORTH_BETON =FACT(statut='f', - ALPHA =SIMP(statut='f',typ='R',defaut=0.9), - K0 =SIMP(statut='o',typ='R'), - K1 =SIMP(statut='o',typ='R'), - K2 =SIMP(statut='f',typ='R',defaut=7.E-4), - ECROB =SIMP(statut='o',typ='R'), - ECROD =SIMP(statut='o',typ='R'), - ), - PRAGER =FACT(statut='f', - C =SIMP(statut='o',typ='R'), - ), - PRAGER_FO =FACT(statut='f', - C =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - ECRO_FLEJOU =FACT(statut='f', - EP =SIMP(statut='o',typ='R'), - SY =SIMP(statut='o',typ='R'), - SU =SIMP(statut='o',typ='R'), - PUISS =SIMP(statut='o',typ='R'), - ), - TAHERI =FACT(statut='f', - R_0 =SIMP(statut='o',typ='R'), - ALPHA =SIMP(statut='o',typ='R'), - M =SIMP(statut='o',typ='R'), - A =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - C1 =SIMP(statut='o',typ='R'), - C_INF =SIMP(statut='o',typ='R'), - S =SIMP(statut='o',typ='R'), - ), - TAHERI_FO =FACT(statut='f', - R_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - ALPHA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - B =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_INF =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - S =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - ROUSSELIER =FACT(statut='f', - D =SIMP(statut='o',typ='R'), - SIGM_1 =SIMP(statut='o',typ='R'), - PORO_INIT =SIMP(statut='o',typ='R'), - PORO_CRIT =SIMP(statut='f',typ='R',defaut= 1. ), - PORO_ACCE =SIMP(statut='f',typ='R',defaut= 1. ), - PORO_LIMI =SIMP(statut='f',typ='R',defaut= 0.999 ), - D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ), - AN =SIMP(statut='f',typ='R',defaut= 0. ), - ), - ROUSSELIER_FO =FACT(statut='f', - D =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PORO_INIT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PORO_CRIT =SIMP(statut='f',typ='R',defaut= 1. ), - PORO_ACCE =SIMP(statut='f',typ='R',defaut= 1. ), - PORO_LIMI =SIMP(statut='f',typ='R',defaut= 0.999 ), - D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ), - AN =SIMP(statut='f',typ='R',defaut= 0. ), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - VISC_SINH =FACT(statut='f', - SIGM_0 =SIMP(statut='o',typ='R'), - EPSI_0 =SIMP(statut='o',typ='R'), - M =SIMP(statut='o',typ='R'), - ), - CHABOCHE =FACT(statut='f', - 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', - R_0 =SIMP(statut='o',typ='R'), - R_I =SIMP(statut='f',typ='R'), - B =SIMP(statut='f',typ='R',defaut= 0.0E+0), - C_I =SIMP(statut='o',typ='R'), - K =SIMP(statut='f',typ='R',defaut= 1.0E+0), - W =SIMP(statut='f',typ='R',defaut= 0.0E+0), - G_0 =SIMP(statut='o',typ='R'), - A_I =SIMP(statut='f',typ='R',defaut= 1.0E+0), - ), - CIN1_CHAB_FO =FACT(statut='f', - R_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - R_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - B =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - W =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",)), - ), - CIN2_CHAB =FACT(statut='f', - R_0 =SIMP(statut='o',typ='R'), - R_I =SIMP(statut='f',typ='R'), - B =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - C1_I =SIMP(statut='o',typ='R'), - C2_I =SIMP(statut='o',typ='R'), - K =SIMP(statut='f',typ='R',defaut= 1.), - W =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - G1_0 =SIMP(statut='o',typ='R'), - G2_0 =SIMP(statut='o',typ='R'), - A_I =SIMP(statut='f',typ='R',defaut= 1.E+0 ), - ), - CIN2_CHAB_FO =FACT(statut='f', - R_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - R_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - B =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C1_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C2_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - W =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G1_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G2_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - VISCOCHAB =FACT(statut='f', - K_0 =SIMP(statut='o',typ='R'), - A_K =SIMP(statut='o',typ='R'), - A_R =SIMP(statut='o',typ='R'), - K =SIMP(statut='o',typ='R'), - N =SIMP(statut='o',typ='R'), - ALP =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - M_R =SIMP(statut='o',typ='R'), - G_R =SIMP(statut='o',typ='R'), - MU =SIMP(statut='o',typ='R'), - Q_M =SIMP(statut='o',typ='R'), - Q_0 =SIMP(statut='o',typ='R'), - QR_0 =SIMP(statut='o',typ='R'), - ETA =SIMP(statut='o',typ='R'), - C1 =SIMP(statut='o',typ='R'), - M_1 =SIMP(statut='o',typ='R'), - D1 =SIMP(statut='o',typ='R'), - G_X1 =SIMP(statut='o',typ='R'), - G1_0 =SIMP(statut='o',typ='R'), - C2 =SIMP(statut='o',typ='R'), - M_2 =SIMP(statut='o',typ='R'), - D2 =SIMP(statut='o',typ='R'), - G_X2 =SIMP(statut='o',typ='R'), - G2_0 =SIMP(statut='o',typ='R'), - A_I =SIMP(statut='o',typ='R'), - ), - VISCOCHAB_FO =FACT(statut='f', - K_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A_K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A_R =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - ALP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - B =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_R =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G_R =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - MU =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - Q_M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - Q_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - QR_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - ETA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G_X1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G1_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G_X2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G2_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - POLY_CFC =FACT(statut='f', - 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', - TEXTURE =SIMP(statut='o',typ=(tabl_texture) ), - DL =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - DA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - TAU_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - Q1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - B1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - HL =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - Q2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - B2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - LEMAITRE =FACT(statut='f', - N =SIMP(statut='o',typ='R'), - UN_SUR_K =SIMP(statut='o',typ='R'), - UN_SUR_M =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - LEMAITRE_IRRA =FACT(statut='f', - N =SIMP(statut='o',typ='R'), - UN_SUR_K =SIMP(statut='o',typ='R'), - UN_SUR_M =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - QSR_K =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - BETA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - PHI_ZERO =SIMP(statut='f',typ='R',defaut= 1.E+20), - L =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - GRAN_A =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - GRAN_B =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - GRAN_S =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - LMARC_IRRA =FACT(statut='f', - DE_0 =SIMP(statut='o',typ='R'), - R_0 =SIMP(statut='o',typ='R'), - N =SIMP(statut='o',typ='R'), - K =SIMP(statut='o',typ='R'), - Y_I =SIMP(statut='o',typ='R'), - Y_0 =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - A_0 =SIMP(statut='o',typ='R'), - RM =SIMP(statut='o',typ='R'), - M =SIMP(statut='o',typ='R'), - P =SIMP(statut='o',typ='R'), - P1 =SIMP(statut='o',typ='R'), - P2 =SIMP(statut='o',typ='R'), - M11 =SIMP(statut='o',typ='R'), - M22 =SIMP(statut='o',typ='R'), - M33 =SIMP(statut='o',typ='R'), - M66 =SIMP(statut='o',typ='R'), - N11 =SIMP(statut='o',typ='R'), - N22 =SIMP(statut='o',typ='R'), - N33 =SIMP(statut='o',typ='R'), - N66 =SIMP(statut='o',typ='R'), - Q11 =SIMP(statut='o',typ='R'), - Q22 =SIMP(statut='o',typ='R'), - Q33 =SIMP(statut='o',typ='R'), - Q66 =SIMP(statut='o',typ='R'), - R11 =SIMP(statut='o',typ='R'), - R22 =SIMP(statut='o',typ='R'), - R33 =SIMP(statut='o',typ='R'), - R66 =SIMP(statut='o',typ='R'), - GRAN_A =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - GRAN_B =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - GRAN_S =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - ZIRC_CYRA2 =FACT(statut='f', - EPSI_FAB =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - TEMP_RECUIT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - FLUX_PHI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("INST",) ), - ), - VISC_IRRA_LOG =FACT(statut='f', - A =SIMP(statut='f',typ='R',defaut= 1.28E-1), - B =SIMP(statut='f',typ='R',defaut= 0.01159), - CSTE_TPS =SIMP(statut='f',typ='R',defaut= 0.3540), - ENER_ACT =SIMP(statut='f',typ='R',defaut= 5000.), - FLUX_PHI =SIMP(statut='o',typ='R',), - ), - GRAN_IRRA_LOG =FACT(statut='f', - A =SIMP(statut='f',typ='R',defaut= 1.28E-1), - B =SIMP(statut='f',typ='R',defaut= 0.01159), - CSTE_TPS =SIMP(statut='f',typ='R',defaut= 0.3540), - ENER_ACT =SIMP(statut='f',typ='R',defaut= 5000.), - FLUX_PHI =SIMP(statut='o',typ='R',), - GRAN_A =SIMP(statut='f',typ='R',defaut= 0.E+0), - GRAN_B =SIMP(statut='f',typ='R',defaut= 0.E+0), - GRAN_S =SIMP(statut='f',typ='R',defaut= 0.E+0), - ), - LEMA_SEUIL =FACT(statut='f', - A =SIMP(statut='o',typ='R',), - S =SIMP(statut='o',typ='R',), - ), - LEMA_SEUIL_FO=FACT(statut='f', - A =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - S =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - ZIRC_EPRI =FACT(statut='f', - FLUX_PHI =SIMP(statut='o',typ='R'), - R_P =SIMP(statut='o',typ='R'), - THETA_MAX =SIMP(statut='o',typ='R'), - ), - LEMAITRE_FO =FACT(statut='f', - N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - UN_SUR_K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - UN_SUR_M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - OHNO =FACT(statut='f', - 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', - R_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - R_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - B =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PHI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A3 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A4 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A5 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - GAMMA1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - GAMMA2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - GAMMA3 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - GAMMA4 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - GAMMA5 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M3 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M4 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M5 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - LMARC =FACT(statut='f', - DE_0 =SIMP(statut='o',typ='R'), - R_0 =SIMP(statut='o',typ='R'), - N =SIMP(statut='o',typ='R'), - K =SIMP(statut='o',typ='R'), - Y_I =SIMP(statut='o',typ='R'), - Y_0 =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - A_0 =SIMP(statut='o',typ='R'), - RM =SIMP(statut='o',typ='R'), - M =SIMP(statut='o',typ='R'), - P =SIMP(statut='o',typ='R'), - P1 =SIMP(statut='o',typ='R'), - P2 =SIMP(statut='o',typ='R'), - M11 =SIMP(statut='o',typ='R'), - M22 =SIMP(statut='o',typ='R'), - M33 =SIMP(statut='o',typ='R'), - M66 =SIMP(statut='o',typ='R'), - N11 =SIMP(statut='o',typ='R'), - N22 =SIMP(statut='o',typ='R'), - N33 =SIMP(statut='o',typ='R'), - N66 =SIMP(statut='o',typ='R'), - Q11 =SIMP(statut='o',typ='R'), - Q22 =SIMP(statut='o',typ='R'), - Q33 =SIMP(statut='o',typ='R'), - Q66 =SIMP(statut='o',typ='R'), - R11 =SIMP(statut='o',typ='R'), - R22 =SIMP(statut='o',typ='R'), - R33 =SIMP(statut='o',typ='R'), - R66 =SIMP(statut='o',typ='R'), - ), - LMARC_FO =FACT(statut='f', - DE_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - R_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - Y_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - Y_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - B =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - RM =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - P =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - P1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - P2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M11 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M22 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M33 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M66 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - N11 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - N22 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - N33 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - N66 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - Q11 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - Q22 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - Q33 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - Q66 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - R11 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - R22 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - R33 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - R66 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - VMIS_POUTRE =FACT(statut='f', - NP =SIMP(statut='o',typ='R'), - MEY =SIMP(statut='o',typ='R'), - MPY =SIMP(statut='o',typ='R'), - CAY =SIMP(statut='o',typ='R'), - CBY =SIMP(statut='o',typ='R'), - MEZ =SIMP(statut='o',typ='R'), - MPZ =SIMP(statut='o',typ='R'), - CAZ =SIMP(statut='o',typ='R'), - CBZ =SIMP(statut='o',typ='R'), - MPX =SIMP(statut='o',typ='R'), - ), - VMIS_POUTRE_FO =FACT(statut='f', - NP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - MEY =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - MPY =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - CAY =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - CBY =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - MEZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - MPZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - CAZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - CBZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - MPX =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - ARME =FACT(statut='f', - KYE =SIMP(statut='o',typ='R'), - DLE =SIMP(statut='o',typ='R'), - KYP =SIMP(statut='o',typ='R'), - DLP =SIMP(statut='o',typ='R'), - KYG =SIMP(statut='o',typ='R'), - ), - ASSE_CORN =FACT(statut='f', - NU_1 =SIMP(statut='o',typ='R'), - MU_1 =SIMP(statut='o',typ='R'), - DXU_1 =SIMP(statut='o',typ='R'), - DRYU_1 =SIMP(statut='o',typ='R'), - C_1 =SIMP(statut='o',typ='R'), - NU_2 =SIMP(statut='o',typ='R'), - MU_2 =SIMP(statut='o',typ='R'), - DXU_2 =SIMP(statut='o',typ='R'), - DRYU_2 =SIMP(statut='o',typ='R'), - C_2 =SIMP(statut='o',typ='R'), - KY =SIMP(statut='o',typ='R'), - KZ =SIMP(statut='o',typ='R'), - KRX =SIMP(statut='o',typ='R'), - KRZ =SIMP(statut='o',typ='R'), - R_P0 =SIMP(statut='f',typ='R',defaut= 1.E+4 ), - ), - DIS_CONTACT =FACT(statut='f', - RIGI_NOR =SIMP(statut='f',typ='R' ), - DIST_1 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - DIST_2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - RIGI_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - AMOR_NOR =SIMP(statut='f',typ='R' ), - AMOR_TAN =SIMP(statut='f',typ='R' ), - COULOMB =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - JEU =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - KT_ULTM =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - EFFO_N_INIT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles=(EXCLUS('RIGI_N_FO','RIGI_N_IRRA',), - EXCLUS('RELA_MZ','ANGLE_1'), - PRESENT_PRESENT('ANGLE_1','ANGLE_2','ANGLE_3','ANGLE_4', - 'MOMENT_1','MOMENT_2','MOMENT_3','MOMENT_4'),), - RIGI_N_IRRA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - RIGI_N_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - RELA_MZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ANGLE_1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ANGLE_2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ANGLE_3 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ANGLE_4 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MOMENT_1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MOMENT_2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MOMENT_3 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MOMENT_4 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_PRAGER_MZ =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("DRZ","INST","TEMP",) ), - ), - DIS_GRICRA =FACT(statut='f', - KN_BOS =SIMP(statut='o',typ='R' ), - KT_BOS =SIMP(statut='o',typ='R' ), - KN_RES =SIMP(statut='o',typ='R' ), - KT_RES =SIMP(statut='o',typ='R' ), - DIST_BOS =SIMP(statut='o',typ='R' ), - FORC_SER =SIMP(statut='o',typ='R' ), - COUL_BOS =SIMP(statut='o',typ='R' ), - COUL_RES =SIMP(statut='o',typ='R' ), - ECRO_BOS =SIMP(statut='o',typ='R' ), - ECRO_RES =SIMP(statut='o',typ='R' ), - F_IRRA_0 =SIMP(statut='f',typ='R' ), - F_IRRA_1 =SIMP(statut='f',typ='R' ), - F_IRRA_2 =SIMP(statut='f',typ='R' ), - F_IRRA_3 =SIMP(statut='f',typ='R' ), - F_IRRA_4 =SIMP(statut='f',typ='R' ), - F_IRRA_5 =SIMP(statut='f',typ='R' ), - F_TEMP_1 =SIMP(statut='f',typ='R' ), - F_TEMP_2 =SIMP(statut='f',typ='R' ), - TEMP_1 =SIMP(statut='f',typ='R' ), - TEMP_2 =SIMP(statut='f',typ='R' ), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("DRZ","INST","TEMP",) ), - ), - NADAI_B =FACT(statut='f', - F_C =SIMP(statut='o',typ='R'), - F_T =SIMP(statut='o',typ='R'), - CRIT_E_C =SIMP(statut='o',typ='R'), - EPSP_P_C =SIMP(statut='o',typ='R'), - EPSP_R_C =SIMP(statut='o',typ='R'), - EPSI_R_T =SIMP(statut='o',typ='R'), - FAC_T_C =SIMP(statut='o',typ='R'), - ), - BETON_DOUBLE_DP =FACT(statut='f', - F_C =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_T =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COEF_BIAX =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - ENER_COMP_RUPT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - ENER_TRAC_RUPT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COEF_ELAS_COMP =SIMP(statut='o',typ='R'), - LONG_CARA =SIMP(statut='f',typ='R'), - ECRO_COMP_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","PARABOLE") ), - ECRO_TRAC_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","EXPONENT") ), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST","HYDR","SECH",) ), - ), - LABORD_1D=FACT(statut='f',min=0 , - Y01 =SIMP(statut='o',typ='R'), - Y02 =SIMP(statut='o',typ='R'), - A1 =SIMP(statut='o',typ='R'), - A2 =SIMP(statut='o',typ='R'), - B1 =SIMP(statut='o',typ='R'), - B2 =SIMP(statut='o',typ='R'), - BETA1 =SIMP(statut='o',typ='R'), - BETA2 =SIMP(statut='o',typ='R'), - SIGF =SIMP(statut='o',typ='R'), - ), - MAZARS=FACT(statut='f',min=0 , - EPSD0 =SIMP(statut='o',typ='R'), - BETA =SIMP(statut='o',typ='R'), - AC =SIMP(statut='o',typ='R'), - BC =SIMP(statut='o',typ='R'), - AT =SIMP(statut='o',typ='R'), - BT =SIMP(statut='o',typ='R'), - ), - MAZARS_FO=FACT(statut='f',min=0 , - EPSD0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - BETA =SIMP(statut='o',typ='R'), - AC =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - BC =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - AT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - BT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","SECH","HYDR") ), - ), - JOINT_BA=FACT(statut='f',min=0 ,max=1, - HPEN =SIMP(statut='o',typ='R',defaut= 1.E+0,val_min=0.E+0), - GTT =SIMP(statut='o',typ='R',val_min=0.E+0), - GAMD0 =SIMP(statut='o',typ='R',val_min=1.E-4,val_max=1.E-1), - AD1 =SIMP(statut='o',typ='R',val_min=0.E+0), - BD1 =SIMP(statut='o',typ='R',defaut= 5.E-1,val_min=1.E-1), - GAMD2 =SIMP(statut='o',typ='R',val_min=1.E-4,val_max=1.E+0), - AD2 =SIMP(statut='o',typ='R',val_min=0.E+0), - BD2 =SIMP(statut='o',typ='R',defaut= 1.E+0,val_min=1.E-1), - VIFROT =SIMP(statut='o',typ='R',val_min=0.E+0), - FA =SIMP(statut='o',typ='R',val_min=0.E+0), - FC =SIMP(statut='o',typ='R',val_min=0.E+0), - EPSTR0 =SIMP(statut='o',typ='R',val_min=1.E-4,val_max=1.E+0), - ADN =SIMP(statut='o',typ='R',val_min=0.E+0), - BDN =SIMP(statut='o',typ='R',defaut= 1.E+0,val_min=1.E-1), - ), - VENDOCHAB =FACT(statut='f', - S_VP =SIMP(statut='o',typ='R'), - SEDVP1 =SIMP(statut='o',typ='R'), - SEDVP2 =SIMP(statut='o',typ='R'), - N_VP =SIMP(statut='o',typ='R'), - M_VP =SIMP(statut='o',typ='R'), - K_VP =SIMP(statut='o',typ='R'), - R_D =SIMP(statut='o',typ='R'), - A_D =SIMP(statut='o',typ='R'), - K_D =SIMP(statut='o',typ='R'), - ), - VENDOCHAB_FO =FACT(statut='f', - S_VP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SEDVP1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SEDVP2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - N_VP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_VP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - K_VP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - R_D =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A_D =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - K_D =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","X",) ), - ), - PINTO_MENEGOTTO =FACT(statut='f', - SY =SIMP(statut='o',typ='R'), - EPSI_ULTM =SIMP(statut='o',typ='R'), - SIGM_ULTM =SIMP(statut='o',typ='R'), - ELAN =SIMP(statut='f',typ='R',defaut= 4. ), - EPSP_HARD =SIMP(statut='o',typ='R'), - R_PM =SIMP(statut='f',typ='R',defaut= 20. ), - EP_SUR_E =SIMP(statut='f',typ='R'), - A1_PM =SIMP(statut='f',typ='R',defaut= 18.5 ), - A2_PM =SIMP(statut='f',typ='R',defaut= 0.15 ), - A6_PM =SIMP(statut='f',typ='R',defaut= 620. ), - C_PM =SIMP(statut='f',typ='R',defaut= 0.5 ), - A_PM =SIMP(statut='f',typ='R',defaut= 6.0E-3 ), - ), - BPEL_BETON =FACT(statut='f', - PERT_FLUA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - PERT_RETR =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - BPEL_ACIER =FACT(statut='f', - regles=(PRESENT_PRESENT('RELAX_1000','F_PRG',), - PRESENT_PRESENT('MU0_RELAX','F_PRG',),), - RELAX_1000 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - MU0_RELAX =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - F_PRG =SIMP(statut='f',typ='R'), - FROT_COURB =SIMP(statut='f',typ='R',defaut=0.E+0), - FROT_LINE =SIMP(statut='f',typ='R',defaut=0.E+0), - ), - CAM_CLAY =FACT(statut='f', - PORO =SIMP(statut='o',typ='R'), - LAMBDA =SIMP(statut='o',typ='R'), - KAPA =SIMP(statut='o',typ='R'), - M =SIMP(statut='o',typ='R'), - PRES_CRIT =SIMP(statut='o',typ='R'), - PA =SIMP(statut='o',typ='R'), - ), - BARCELONE =FACT(statut='f', - R =SIMP(statut='o',typ='R'), - BETA =SIMP(statut='o',typ='R'), - KC =SIMP(statut='o',typ='R'), - PC0_INIT =SIMP(statut='o',typ='R'), - KAPAS =SIMP(statut='o',typ='R'), - LAMBDAS =SIMP(statut='o',typ='R'), - ALPHAB =SIMP(statut='f',typ='R'), - ), - CJS =FACT(statut='f', - BETA_CJS =SIMP(statut='o',typ='R'), - RM =SIMP(statut='o',typ='R'), - N_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - KP =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - RC =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - A_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - B_CJS =SIMP(statut='f',typ='R',defaut= 1.0E+25 ), - C_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - GAMMA_CJS =SIMP(statut='o',typ='R'), - MU_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - PCO =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - PA =SIMP(statut='o',typ='R'), - Q_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - R_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - ECRO_ASYM_LINE =FACT(statut='f', - DC_SIGM_EPSI =SIMP(statut='o',typ='R'), - SY_C =SIMP(statut='o',typ='R'), - DT_SIGM_EPSI =SIMP(statut='o',typ='R'), - SY_T =SIMP(statut='o',typ='R'), - ), - GRANGER_FP =FACT(statut='f', - J1 =SIMP(statut='f',typ='R'), - J2 =SIMP(statut='f',typ='R'), - J3 =SIMP(statut='f',typ='R'), - J4 =SIMP(statut='f',typ='R'), - J5 =SIMP(statut='f',typ='R'), - J6 =SIMP(statut='f',typ='R'), - J7 =SIMP(statut='f',typ='R'), - J8 =SIMP(statut='f',typ='R'), - TAUX_1 =SIMP(statut='f',typ='R'), - TAUX_2 =SIMP(statut='f',typ='R'), - TAUX_3 =SIMP(statut='f',typ='R'), - TAUX_4 =SIMP(statut='f',typ='R'), - TAUX_5 =SIMP(statut='f',typ='R'), - TAUX_6 =SIMP(statut='f',typ='R'), - TAUX_7 =SIMP(statut='f',typ='R'), - TAUX_8 =SIMP(statut='f',typ='R'), - QSR_K =SIMP(statut='f',typ='R'), - ), - GRANGER_FP_INDT =FACT(statut='f', - J1 =SIMP(statut='f',typ='R'), - J2 =SIMP(statut='f',typ='R'), - J3 =SIMP(statut='f',typ='R'), - J4 =SIMP(statut='f',typ='R'), - J5 =SIMP(statut='f',typ='R'), - J6 =SIMP(statut='f',typ='R'), - J7 =SIMP(statut='f',typ='R'), - J8 =SIMP(statut='f',typ='R'), - TAUX_1 =SIMP(statut='f',typ='R'), - TAUX_2 =SIMP(statut='f',typ='R'), - TAUX_3 =SIMP(statut='f',typ='R'), - TAUX_4 =SIMP(statut='f',typ='R'), - TAUX_5 =SIMP(statut='f',typ='R'), - TAUX_6 =SIMP(statut='f',typ='R'), - TAUX_7 =SIMP(statut='f',typ='R'), - TAUX_8 =SIMP(statut='f',typ='R'), - ), - V_GRANGER_FP =FACT(statut='f', - QSR_VEIL =SIMP(statut='f',typ='R'), - FONC_V =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("INST",) ), - ), - BAZANT_FD =FACT(statut='f', - LAM_VISC =SIMP(statut='o',typ='R'), - ), - BETON_UMLV_FP =FACT(statut='f',min=0 , - K_RS =SIMP(statut='o',typ='R'), - ETA_RS =SIMP(statut='o',typ='R'), - K_IS =SIMP(statut='o',typ='R'), - ETA_IS =SIMP(statut='o',typ='R'), - K_RD =SIMP(statut='o',typ='R'), - ETA_RD =SIMP(statut='o',typ='R'), - ETA_ID =SIMP(statut='o',typ='R'), - ETA_FD =SIMP(statut='f',typ='R'), - ), - GLRC =FACT(statut='f',min=0,max=1, - MEX1 =SIMP(statut='o',typ='R',val_min=0.E+0), - MEY1 =SIMP(statut='o',typ='R',val_min=0.E+0), - MEX2 =SIMP(statut='o',typ='R',val_max=0.E+0), - MEY2 =SIMP(statut='o',typ='R',val_max=0.E+0), - CX1 =SIMP(statut='o',typ='R',val_min=0.E+0), - CY1 =SIMP(statut='o',typ='R',val_min=0.E+0), - CXY1 =SIMP(statut='o',typ='R',val_min=0.E+0), - CX2 =SIMP(statut='o',typ='R',val_min=0.E+0), - CY2 =SIMP(statut='o',typ='R',val_min=0.E+0), - CXY2 =SIMP(statut='o',typ='R',val_min=0.E+0), - ), - GLRC_FO =FACT(statut='f',min=0,max=1, - MEX1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - MEY1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - MEX2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - MEY2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - CX1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - CY1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - CXY1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - CX2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - CY2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - CXY2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("NORM",) ), - ), - GATT_MONERIE =FACT(statut='f',min=0,max=1, - D_GRAIN =SIMP(statut='o',typ='R',val_min=0.E+0), - PORO_INIT =SIMP(statut='o',typ='R',val_min=0.E+0), - EPSI_01 =SIMP(statut='o',typ='R',defaut= 2.7252E-10,val_min=0.E+0), - EPSI_02 =SIMP(statut='o',typ='R',defaut= 9.1440E-41,val_min=0.E+0), - ), - CORR_ACIER =FACT(statut='f',min=0 ,max=1, - D_CORR =SIMP(statut='o',typ='R'), - ECRO_K =SIMP(statut='o',typ='R'), - ECRO_M =SIMP(statut='o',typ='R'), - SY =SIMP(statut='o',typ='R'), - ), -# -# comportement thermique -# - THER_NL =FACT(statut='f', - regles=(UN_PARMI('BETA','RHO_CP', ),), - LAMBDA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - BETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - RHO_CP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - THER_HYDR =FACT(statut='f', - LAMBDA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - BETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - AFFINITE =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - CHALHYDR =SIMP(statut='o',typ='R'), - QSR_K =SIMP(statut='o',typ='R'), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("HYDR","TEMP",) ), - ), - THER =FACT(statut='f', - LAMBDA =SIMP(statut='o',typ='R'), - RHO_CP =SIMP(statut='f',typ='R'), - ), - THER_FO =FACT(statut='f', - LAMBDA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - RHO_CP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("INST",) ), - ), - THER_ORTH =FACT(statut='f', - LAMBDA_L =SIMP(statut='o',typ='R'), - LAMBDA_T =SIMP(statut='o',typ='R'), - LAMBDA_N =SIMP(statut='f',typ='R'), - RHO_CP =SIMP(statut='f',typ='R'), - ), - THER_COQUE =FACT(statut='f', - COND_LMM =SIMP(statut='o',typ='R'), - COND_TMM =SIMP(statut='o',typ='R'), - COND_LMP =SIMP(statut='o',typ='R'), - COND_TMP =SIMP(statut='o',typ='R'), - COND_LPP =SIMP(statut='o',typ='R'), - COND_TPP =SIMP(statut='o',typ='R'), - COND_LSI =SIMP(statut='o',typ='R'), - COND_TSI =SIMP(statut='o',typ='R'), - COND_NMM =SIMP(statut='o',typ='R'), - COND_NMP =SIMP(statut='o',typ='R'), - COND_NPP =SIMP(statut='o',typ='R'), - COND_NSI =SIMP(statut='o',typ='R'), - CMAS_MM =SIMP(statut='f',typ='R'), - CMAS_MP =SIMP(statut='f',typ='R'), - CMAS_PP =SIMP(statut='f',typ='R'), - CMAS_SI =SIMP(statut='f',typ='R'), - ), - THER_COQUE_FO =FACT(statut='f', - COND_LMM =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_TMM =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_LMP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_TMP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_LPP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_TPP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_LSI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_TSI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_NMM =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_NMP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_NPP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_NSI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - CMAS_MM =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CMAS_MP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CMAS_PP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CMAS_SI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - SECH_GRANGER =FACT(statut='f', - A =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - QSR_K =SIMP(statut='o',typ='R'), - TEMP_0_C =SIMP(statut='o',typ='R'), - ), - SECH_MENSI =FACT(statut='f', - A =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - ), - SECH_BAZANT =FACT(statut='f', - D1 =SIMP(statut='o',typ='R'), - ALPHA_BAZANT =SIMP(statut='o',typ='R'), - N =SIMP(statut='o',typ='R'), - FONC_DESORP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - SECH_NAPPE =FACT(statut='f', - FONCTION =SIMP(statut='o',typ=(nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","TSEC",) ), - ), -# -# comportement métallurgique -# - META_ACIER =FACT(statut='f', - TRC =SIMP(statut='o',typ=(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', - TDEQ =SIMP(statut='o',typ='R'), - N =SIMP(statut='o',typ='R'), - K =SIMP(statut='o',typ='R'), - TDC =SIMP(statut='o',typ='R'), - AC =SIMP(statut='o',typ='R'), - M =SIMP(statut='o',typ='R'), - QSR_K =SIMP(statut='f',typ='R'), - TDR =SIMP(statut='o',typ='R'), - AR =SIMP(statut='o',typ='R'), - BR =SIMP(statut='o',typ='R'), - ), - DURT_META =FACT(statut='f', - F1_DURT =SIMP(statut='o',typ='R'), - F2_DURT =SIMP(statut='o',typ='R'), - F3_DURT =SIMP(statut='o',typ='R'), - F4_DURT =SIMP(statut='o',typ='R'), - C_DURT =SIMP(statut='o',typ='R'), - ), - ELAS_META =FACT(statut='f', - E =SIMP(statut='o',typ='R'), - NU =SIMP(statut='o',typ='R'), - F_ALPHA =SIMP(statut='o',typ='R'), - C_ALPHA =SIMP(statut='o',typ='R'), - PHASE_REFE =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")), - EPSF_EPSC_TREF =SIMP(statut='o',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E+0), - F1_SY =SIMP(statut='f',typ='R'), - F2_SY =SIMP(statut='f',typ='R'), - F3_SY =SIMP(statut='f',typ='R'), - F4_SY =SIMP(statut='f',typ='R'), - C_SY =SIMP(statut='f',typ='R'), - SY_MELANGE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F1_S_VP =SIMP(statut='f',typ='R'), - F2_S_VP =SIMP(statut='f',typ='R'), - F3_S_VP =SIMP(statut='f',typ='R'), - F4_S_VP =SIMP(statut='f',typ='R'), - C_S_VP =SIMP(statut='f',typ='R' ), - S_VP_MELANGE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("META",)), - ), - ELAS_META_FO =FACT(statut='f', - regles=( - PRESENT_PRESENT('F_ALPHA','TEMP_DEF_ALPHA'), - PRESENT_PRESENT('C_ALPHA','TEMP_DEF_ALPHA'), - ), - E =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - NU =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_ALPHA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_ALPHA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PHASE_REFE =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")), - EPSF_EPSC_TREF =SIMP(statut='o',typ='R'), - TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E+0), - F1_SY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_SY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F3_SY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F4_SY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_SY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SY_MELANGE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F1_S_VP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_S_VP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F3_S_VP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F4_S_VP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_S_VP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - S_VP_MELANGE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","META",)), - ), - META_ECRO_LINE =FACT(statut='f', - F1_D_SIGM_EPSI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_D_SIGM_EPSI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F3_D_SIGM_EPSI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F4_D_SIGM_EPSI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_D_SIGM_EPSI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",)), - ), - META_TRACTION =FACT(statut='f', - SIGM_F1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_F2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_F3 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_F4 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("EPSI","TEMP",)), - ), - META_VISC_FO =FACT(statut='f', - F1_ETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F1_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F1_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F1_M =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_ETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_M =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F3_ETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F3_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F3_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F3_M =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F4_ETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F4_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F4_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F4_M =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_ETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_M =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - META_PT =FACT(statut='f', - F1_K =SIMP(statut='f',typ='R'), - F2_K =SIMP(statut='f',typ='R'), - F3_K =SIMP(statut='f',typ='R'), - F4_K =SIMP(statut='f',typ='R'), - F1_D_F_META =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_D_F_META =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F3_D_F_META =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F4_D_F_META =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","META",) ), - ), - META_RE =FACT(statut='f', - C_F1_THETA =SIMP(statut='f',typ='R'), - C_F2_THETA =SIMP(statut='f',typ='R'), - C_F3_THETA =SIMP(statut='f',typ='R'), - C_F4_THETA =SIMP(statut='f',typ='R'), - F1_C_THETA =SIMP(statut='f',typ='R'), - F2_C_THETA =SIMP(statut='f',typ='R'), - F3_C_THETA =SIMP(statut='f',typ='R'), - F4_C_THETA =SIMP(statut='f',typ='R'), - ), -# -# comportement fluide -# - FLUIDE =FACT(statut='f', - regles=(EXCLUS('CELE_C','CELE_R'),), - RHO =SIMP(statut='o',typ='R'), - CELE_C =SIMP(statut='f',typ='C'), - CELE_R =SIMP(statut='f',typ='R'), - ), - PORO_JOINT =FACT(statut='f', - RHO_FLUI =SIMP(statut='o',typ='R'), - ENTRO_FLUI =SIMP(statut='o',typ='R'), - BIOT_M =SIMP(statut='o',typ='R'), - C_0 =SIMP(statut='o',typ='R'), - T_R =SIMP(statut='o',typ='R'), - ALPHA_M =SIMP(statut='o',typ='R'), - LAMBDA_T =SIMP(statut='o',typ='R'), - LAMBDA_H =SIMP(statut='o',typ='R'), - SOURCE_INIT =SIMP(statut='o',typ='R'), - OMEGA_0 =SIMP(statut='o',typ='R'), - ), -# ================================================================================= -# COMPORTEMENT THERMO_HYDRO_MECANIQUE -# LES DONNEES NECESSAIRES A LA DEFINITION DU MATERIAU SONT DEPENDANTES -# DE LA LOI DE COUPLAGE THM DE LA RELATION -# LE COMPORTEMENT DE COUPLAGE COMP_THM N EST VALABLE QUE POUR LES LOIS -# DE COUPLAGE : LIQU_SATU,LIQU_GAZ,GAZ,LIQU_GAZ_ATM,LIQU_VAPE_GAZ,LIQU_VAPE -# ET LIQU_AD_GAZ_VAPE -# POUR LES LOIS DE COUPLAGE LIQU_SATU_GAT ET LIQU_NSAT_GAT -# ON NE MODIFIE RIEN -# LA CORRESPONDANCE AVEC LES VARIABLES CACHEES EST LA SUIVANTE : -# 1 --> LIQU_SATU -# 2 --> GAZ -# 3 --> LIQU_VAPE -# 4 --> LIQU_VAPE_GAZ -# 5 --> LIQU_GAZ -# 6 --> LIQU_GAZ_ATM -# 7 --> LIQU_SATU_GAT -# 8 --> LIQU_NSAT_GAT -# 9 --> LIQU_AD_GAZ_VAPE -# ================================================================================= - COMP_THM = SIMP(statut='f', typ='TXM', - into = ( "LIQU_SATU" , - "LIQU_GAZ" , - "GAZ" , - "LIQU_GAZ_ATM" , - "LIQU_VAPE_GAZ" , - "LIQU_VAPE" , - "LIQU_SATU_GAT" , - "LIQU_NSAT_GAT" , - "LIQU_AD_GAZ_VAPE" , - ) ), -# ================================================================================= -# --- LOI DE COUPLAGE DE TYPE LIQU_SATU ------------------------------------------- -# ================================================================================= -# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- -# --- THM_INIT, THM_DIFFU, THM_LIQU ----------------------------------------------- -# ================================================================================= - b_liqusatu = BLOC(condition = "COMP_THM == 'LIQU_SATU' ", - fr="Paramètres nécessaires pour une loi de couplage de type LIQU_SATU", -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_INIT = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - PRE1 = SIMP(statut='o',typ='R'), - PORO = SIMP(statut='o',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - TEMP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - PRE2 = SIMP(statut='f',typ='R'), - PRES_VAPE = SIMP(statut='f',typ='R'), - DEGR_SATU = SIMP(statut='f',typ='R'), - PRES_ATMO = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEE CACHEE --------------------------------------------- -# --------------------------------------------------------------------------------- - COMP_THM = SIMP(statut='c',typ='R',defaut= 1.0,), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_DIFFU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - RHO = SIMP(statut='o',typ='R'), - BIOT_COEF = SIMP(statut='o',typ='R'), - PESA_X = SIMP(statut='o',typ='R'), - PESA_Y = SIMP(statut='o',typ='R'), - PESA_Z = SIMP(statut='o',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), - PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), - PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_CT = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - R_GAZ = SIMP(statut='f',typ='R'), - EMMAG = SIMP(statut='f',typ='R'), - SATU_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SATU_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_LIQU =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_LIQU_SATU=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_G_INTR =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CHAL_VAPO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_LIQU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - RHO = SIMP(statut='o',typ='R'), - UN_SUR_K = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - ALPHA = SIMP(statut='f',typ='R'), - CP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE INUTILE ------------------------------------------------------------- -# ================================================================================= - THM_GAZ =FACT(statut='f', - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE INUTILE ------------------------------------------------------------- -# ================================================================================= - THM_VAPE_GAZ =FACT(statut='f', - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - ), -# ================================================================================= -# --- LOI DE COUPLAGE DE TYPE LIQU_GAZ -------------------------------------------- -# ================================================================================= -# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- -# --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ -------------------------------------- -# ================================================================================= - b_liqugaz = BLOC(condition = "COMP_THM == 'LIQU_GAZ' ", - fr="Paramètres nécessaires pour une loi de couplage de type LIQU_GAZ", -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_INIT = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - PRE1 = SIMP(statut='o',typ='R'), - PRE2 = SIMP(statut='o',typ='R'), - PORO = SIMP(statut='o',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - TEMP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - PRES_VAPE = SIMP(statut='f',typ='R'), - DEGR_SATU = SIMP(statut='f',typ='R'), - PRES_ATMO = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEE CACHEE --------------------------------------------- -# --------------------------------------------------------------------------------- - COMP_THM = SIMP(statut='c',typ='R',defaut= 5.0,), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_DIFFU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - R_GAZ = SIMP(statut='o',typ='R'), - RHO = SIMP(statut='o',typ='R'), - BIOT_COEF = SIMP(statut='o',typ='R'), - PESA_X = SIMP(statut='o',typ='R'), - PESA_Y = SIMP(statut='o',typ='R'), - PESA_Z = SIMP(statut='o',typ='R'), - SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_LIQU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_SATU_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_PRES_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), - PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), - PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_CT = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - EMMAG = SIMP(statut='f',typ='R'), - SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_G_INTR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CHAL_VAPO = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), - ) , -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_LIQU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - RHO = SIMP(statut='o',typ='R'), - UN_SUR_K = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - ALPHA = SIMP(statut='f',typ='R'), - CP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_GAZ = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - MASS_MOL = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE INUTILE ------------------------------------------------------------- -# ================================================================================= - THM_VAPE_GAZ =FACT(statut='f', - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - ), -# ================================================================================= -# --- LOI DE COUPLAGE DE TYPE GAZ ------------------------------------------------- -# ================================================================================= -# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- -# --- THM_INIT, THM_DIFFU, THM_GAZ ------------------------------------------------ -# ================================================================================= - b_gaz = BLOC(condition = "COMP_THM == 'GAZ' ", - fr="Paramètres nécessaires pour une loi de couplage de type GAZ", -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_INIT = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - TEMP = SIMP(statut='o',typ='R'), - PRE1 = SIMP(statut='o',typ='R'), - PORO = SIMP(statut='o',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - PRE2 = SIMP(statut='f',typ='R'), - PRES_VAPE = SIMP(statut='f',typ='R'), - DEGR_SATU = SIMP(statut='f',typ='R'), - PRES_ATMO = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEE CACHEE --------------------------------------------- -# --------------------------------------------------------------------------------- - COMP_THM = SIMP(statut='c',typ='R',defaut= 2.0,), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_DIFFU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - R_GAZ = SIMP(statut='o',typ='R'), - RHO = SIMP(statut='o',typ='R'), - BIOT_COEF = SIMP(statut='o',typ='R'), - PESA_X = SIMP(statut='o',typ='R'), - PESA_Y = SIMP(statut='o',typ='R'), - PESA_Z = SIMP(statut='o',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), - PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), - PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_CT = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - EMMAG = SIMP(statut='f',typ='R'), - SATU_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SATU_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_LIQU =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_LIQU_SATU=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_G_INTR =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CHAL_VAPO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), - ) , -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_GAZ = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - MASS_MOL = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE INUTILE ------------------------------------------------------------- -# ================================================================================= - THM_LIQU =FACT(statut='f', - RHO =SIMP(statut='f',typ='R'), - UN_SUR_K =SIMP(statut='f',typ='R'), - ALPHA =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - COEF_HENRY =SIMP(statut='f',typ='R'), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE INUTILE ------------------------------------------------------------- -# ================================================================================= - THM_VAPE_GAZ =FACT(statut='f', - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - ), -# ================================================================================= -# --- LOI DE COUPLAGE DE TYPE LIQU_GAZ_ATM ---------------------------------------- -# ================================================================================= -# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- -# --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ -------------------------------------- -# ================================================================================= - b_liqugazatm = BLOC(condition = "COMP_THM == 'LIQU_GAZ_ATM' ", - fr="Paramètres nécessaires pour une loi de couplage de type LIQU_GAZ_ATM", -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_INIT = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - PRE1 = SIMP(statut='o',typ='R'), - PORO = SIMP(statut='o',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - TEMP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - PRE2 = SIMP(statut='f',typ='R'), - PRES_VAPE = SIMP(statut='f',typ='R'), - DEGR_SATU = SIMP(statut='f',typ='R'), - PRES_ATMO = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEE CACHEE --------------------------------------------- -# --------------------------------------------------------------------------------- - COMP_THM = SIMP(statut='c',typ='R',defaut= 6.0,), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_DIFFU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - RHO = SIMP(statut='o',typ='R'), - BIOT_COEF = SIMP(statut='o',typ='R'), - PESA_X = SIMP(statut='o',typ='R'), - PESA_Y = SIMP(statut='o',typ='R'), - PESA_Z = SIMP(statut='o',typ='R'), - SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_LIQU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), - PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), - PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_CT = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - EMMAG = SIMP(statut='f',typ='R'), - R_GAZ =SIMP(statut='f',typ='R'), - PERM_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_G_INTR =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CHAL_VAPO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), - ) , -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_LIQU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - RHO = SIMP(statut='o',typ='R'), - UN_SUR_K = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - ALPHA = SIMP(statut='f',typ='R'), - CP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE INUTILE ------------------------------------------------------------- -# ================================================================================= - THM_GAZ = FACT(statut='f', - MASS_MOL = SIMP(statut='f',typ='R'), - VISC = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CP = SIMP(statut='f',typ='R'), - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE INUTILE ------------------------------------------------------------- -# ================================================================================= - THM_VAPE_GAZ =FACT(statut='f', - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - ), -# ================================================================================= -# --- LOI DE COUPLAGE DE TYPE LIQU_VAPE_GAZ --------------------------------------- -# ================================================================================= -# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- -# --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ, THM_VAPE_GAZ ------------------------ -# ================================================================================= - b_liquvapegaz = BLOC(condition = "COMP_THM == 'LIQU_VAPE_GAZ' ", - fr="Paramètres nécessaires pour une loi de couplage de type LIQU_VAPE_GAZ", -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_INIT = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - PRE1 = SIMP(statut='o',typ='R'), - PRE2 = SIMP(statut='o',typ='R'), - PORO = SIMP(statut='o',typ='R'), - PRES_VAPE = SIMP(statut='o',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - TEMP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - DEGR_SATU = SIMP(statut='f',typ='R'), - PRES_ATMO = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEE CACHEE --------------------------------------------- -# --------------------------------------------------------------------------------- - COMP_THM = SIMP(statut='c',typ='R',defaut= 4.0,), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_DIFFU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - R_GAZ = SIMP(statut='o',typ='R'), - RHO = SIMP(statut='o',typ='R'), - BIOT_COEF = SIMP(statut='o',typ='R'), - PESA_X = SIMP(statut='o',typ='R'), - PESA_Y = SIMP(statut='o',typ='R'), - PESA_Z = SIMP(statut='o',typ='R'), - SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_LIQU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_SATU_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_PRES_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_T = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), - PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), - PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_CT = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES FACULTATIVE ---------------------------------- -# --------------------------------------------------------------------------------- - EMMAG = SIMP(statut='f',typ='R'), - SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_G_INTR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CHAL_VAPO = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT" ,"PORO","PGAZ","PCAP","ENDO","PVAP","PLIQ","PAD",) ), - ) , -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_LIQU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - RHO = SIMP(statut='o',typ='R'), - UN_SUR_K = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - ALPHA = SIMP(statut='f',typ='R'), - CP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_GAZ = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - MASS_MOL = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_VAPE_GAZ = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - MASS_MOL = SIMP(statut='o',typ='R'), - CP = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - ), -# ================================================================================= -# --- LOI DE COUPLAGE DE TYPE LIQU_AD_GAZ_VAPE ------------------------------------- -# ================================================================================= -# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- -# --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ, THM_VAPE_GAZ THM_AIR_DISSOUS--------- -# ================================================================================= - b_liquadvape = BLOC(condition = "COMP_THM == 'LIQU_AD_GAZ_VAPE' ", - fr="Paramètres nécessaires pour une loi de couplage de type LIQU_AD_GAZ_VAPE", -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_INIT = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - PRE1 = SIMP(statut='o',typ='R'), - PRE2 = SIMP(statut='o',typ='R'), - PORO = SIMP(statut='o',typ='R'), - PRES_VAPE = SIMP(statut='o',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - TEMP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - DEGR_SATU = SIMP(statut='f',typ='R'), - PRES_ATMO = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEE CACHEE --------------------------------------------- -# --------------------------------------------------------------------------------- - COMP_THM = SIMP(statut='c',typ='R',defaut= 9.0,), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_DIFFU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - R_GAZ = SIMP(statut='o',typ='R'), - RHO = SIMP(statut='o',typ='R'), - BIOT_COEF = SIMP(statut='o',typ='R'), - PESA_X = SIMP(statut='o',typ='R'), - PESA_Y = SIMP(statut='o',typ='R'), - PESA_Z = SIMP(statut='o',typ='R'), - SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_LIQU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_SATU_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_PRES_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_T = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_T = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), - PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), - PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_CT = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES FACULTATIVES ------------------------------------ -# --------------------------------------------------------------------------------- - EMMAG = SIMP(statut='f',typ='R'), - SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_G_INTR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CHAL_VAPO = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), -# - FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO","PVAP","PLIQ","PAD",) ), - ) , -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_LIQU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - RHO = SIMP(statut='o',typ='R'), - UN_SUR_K = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - ALPHA = SIMP(statut='f',typ='R'), - CP = SIMP(statut='f',typ='R'), - LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_CT = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_GAZ = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - MASS_MOL = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_VAPE_GAZ = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - MASS_MOL = SIMP(statut='o',typ='R'), - CP = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_AIR_DISS = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='o',typ='R'), - COEF_HENRY = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",),), - ), - ), -# ================================================================================= -# --- LOI DE COUPLAGE DE TYPE LIQU_VAPE ------------------------------------------- -# ================================================================================= -# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- -# --- THM_INIT, THM_DIFFU, THM_LIQU, THM_VAPE_GAZ --------------------------------- -# ================================================================================= - b_liquvape = BLOC(condition = "COMP_THM == 'LIQU_VAPE' ", - fr="Paramètres nécessaires pour une loi de couplage de type LIQU_VAPE", -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_INIT = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - PRE1 = SIMP(statut='o',typ='R'), - PORO = SIMP(statut='o',typ='R'), - PRES_VAPE = SIMP(statut='o',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - TEMP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - PRE2 = SIMP(statut='f',typ='R'), - DEGR_SATU = SIMP(statut='f',typ='R'), - PRES_ATMO = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEE CACHEE --------------------------------------------- -# --------------------------------------------------------------------------------- - COMP_THM = SIMP(statut='c',typ='R',defaut= 3.0,), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_DIFFU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - R_GAZ = SIMP(statut='o',typ='R'), - RHO = SIMP(statut='o',typ='R'), - BIOT_COEF = SIMP(statut='o',typ='R'), - PESA_X = SIMP(statut='o',typ='R'), - PESA_Y = SIMP(statut='o',typ='R'), - PESA_Z = SIMP(statut='o',typ='R'), - SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_LIQU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_SATU_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_PRES_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), - PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), - PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_CT = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - EMMAG = SIMP(statut='f',typ='R'), - SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_G_INTR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CHAL_VAPO = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), - ) , -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_LIQU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - RHO = SIMP(statut='o',typ='R'), - UN_SUR_K = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - ALPHA = SIMP(statut='f',typ='R'), - CP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES --------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_VAPE_GAZ = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - MASS_MOL = SIMP(statut='o',typ='R'), - CP = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE INUTILE ------------------------------------------------------------- -# ================================================================================= - THM_GAZ =FACT(statut='f', - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - ), -# ================================================================================= - b_liqusatugat = BLOC(condition = "COMP_THM == 'LIQU_SATU_GAT' ", - fr="Paramètres nécessaires pour une loi de couplage de type LIQU_SATU_GAT", - THM_LIQU =FACT(statut='f', - 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_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMBDA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LAMBDA_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - COEF_HENRY =SIMP(statut='f',typ='R'), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - THM_GAZ =FACT(statut='f', - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMBDA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LAMBDA_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - THM_VAPE_GAZ =FACT(statut='f', - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - THM_AIR_DISS = FACT(statut='f', - CP = SIMP(statut='f',typ='R'), - COEF_HENRY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",),), - ), - THM_INIT =FACT(statut='f', - 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'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEE CACHEE --------------------------------------------- -# --------------------------------------------------------------------------------- - COMP_THM = SIMP(statut='c',typ='R',defaut= 7.0,), - ), - THM_DIFFU =FACT(statut='f', - 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_sdaster,nappe_sdaster,formule)), - D_SATU_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - 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_sdaster,nappe_sdaster,formule)), - PERM_END =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), - PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_LIQU =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_LIQU_SATU=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICK =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FICK_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FICK_GAZ_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMBDA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LAMBDA_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_G_INTR =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CHAL_VAPO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), - ), - ), - b_liqunsatgat = BLOC(condition = "COMP_THM == 'LIQU_NSAT_GAT' ", - fr="Paramètres nécessaires pour une loi de couplage de type LIQU_NSAT_GAT", - THM_LIQU =FACT(statut='f', - 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_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMBDA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LAMBDA_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - COEF_HENRY =SIMP(statut='f',typ='R'), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - THM_GAZ =FACT(statut='f', - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMBDA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LAMBDA_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - THM_AIR_DISS = FACT(statut='f', - CP = SIMP(statut='f',typ='R'), - COEF_HENRY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - THM_VAPE_GAZ =FACT(statut='f', - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - THM_INIT =FACT(statut='f', - 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'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEE CACHEE --------------------------------------------- -# --------------------------------------------------------------------------------- - COMP_THM = SIMP(statut='c',typ='R',defaut= 8.0,), - ), - THM_DIFFU =FACT(statut='f', - 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_sdaster,nappe_sdaster,formule)), - D_SATU_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - 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_sdaster,nappe_sdaster,formule)), - PERM_END =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), - PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_LIQU =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_LIQU_SATU=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICK =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FICK_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FICK_GAZ_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMBDA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LAMBDA_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_G_INTR =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CHAL_VAPO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PV =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PG =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_S =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_PG =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_S =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), - ), - ), -# courbes et coefficients associés à la fatigue et au dommage -# - FATIGUE =FACT(statut='f', - regles=(PRESENT_ABSENT('WOHLER','A_BASQUIN','BETA_BASQUIN'), - PRESENT_ABSENT('WOHLER','A0','A1','A2','A3','SL'), - PRESENT_ABSENT('A_BASQUIN','A0','A1','A2','A3','SL'), - ENSEMBLE('A_BASQUIN','BETA_BASQUIN'), - ENSEMBLE('A0','A1','A2','A3','SL'), - PRESENT_PRESENT('A0','E_REFE'), - ENSEMBLE('D0','TAU0'),), - WOHLER =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - A_BASQUIN =SIMP(statut='f',typ='R'), - BETA_BASQUIN =SIMP(statut='f',typ='R'), - A0 =SIMP(statut='f',typ='R'), - A1 =SIMP(statut='f',typ='R'), - A2 =SIMP(statut='f',typ='R'), - A3 =SIMP(statut='f',typ='R'), - SL =SIMP(statut='f',typ='R'), - MANSON_COFFIN =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - E_REFE =SIMP(statut='f',typ='R'), - D0 =SIMP(statut='f',typ='R'), - TAU0 =SIMP(statut='f',typ='R'), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("SIGM","EPSI",) ), - ), - DOMMA_LEMAITRE =FACT(statut='f', - S =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - EPSP_SEUIL =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - EXP_S =SIMP(statut='f',typ='R',val_min=0.0E0,defaut=1.0), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - CISA_PLAN_CRIT =FACT(statut='f', - CRITERE =SIMP(statut='o',typ='TXM',into=("MATAKE", - "DANG_VAN_MODI_AC", - "DANG_VAN_MODI_AV", - "DOMM_MAXI", - "FATEMI_SOCIE", - ) ), - - b_critere_matake =BLOC(condition="CRITERE=='MATAKE'", - fr="Cisaillement plan critique critère de matake", - MATAKE_A =SIMP(statut='o',typ='R'), - MATAKE_B =SIMP(statut='o',typ='R'), - COEF_FLEX_TORS =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0), - ), - - b_critere_dang_van =BLOC(condition="(CRITERE=='DANG_VAN_MODI_AC' or CRITERE=='DANG_VAN_MODI_AV')", - fr="Critère de Dang Van modifié pour les cas amplitude constante et amplitude variable", - D_VAN_A =SIMP(statut='o',typ='R'), - D_VAN_B =SIMP(statut='o',typ='R'), - COEF_CISA_TRAC =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0), - ), - - b_crit_domm_maxi =BLOC(condition="CRITERE=='DOMM_MAXI'", - fr="Critère pour chargement non périodique : domm_maxi", - DOMM_A =SIMP(statut='o',typ='R'), - DOMM_B =SIMP(statut='o',typ='R'), - COEF_CISA_TRAC =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0), - ), - - b_critere_fate_soci =BLOC(condition="CRITERE=='FATEMI_SOCIE'", - fr="Critère de Fatemi et Socie, en élasticité ou élastoplasticité, pour le cas amplitude variable", - FATSOC_A =SIMP(statut='o',typ='R'), - COEF_CISA_TRAC =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0), - ), - ), -# -# autres comportements ... -# - WEIBULL =FACT(statut='f', - M =SIMP(statut='o',typ='R'), - VOLU_REFE =SIMP(statut='o',typ='R'), - SIGM_REFE =SIMP(statut='o',typ='R'), - SEUIL_EPSP_CUMU =SIMP(statut='f',typ='R',defaut= 1.0E-6), - ), - WEIBULL_FO =FACT(statut='f', - M =SIMP(statut='o',typ='R'), - VOLU_REFE =SIMP(statut='o',typ='R'), - SIGM_CNV =SIMP(statut='o',typ='R'), - SIGM_REFE =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SEUIL_EPSP_CUMU =SIMP(statut='f',typ='R',defaut= 1.0E-6), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - NON_LOCAL =FACT(statut='f', - LONG_CARA =SIMP(statut='o',typ='R'), - COEF_RIGI_MINI =SIMP(statut='f',typ='R'), - ), - RUPT_FRAG =FACT(statut='f', - GC =SIMP(statut='o',typ='R'), - SIGM_C =SIMP(statut='f',typ='R'), - PENA_ADHERENCE =SIMP(statut='f',typ='R'), - PENA_CONTACT =SIMP(statut='f',typ='R',defaut=1.), - ), - RUPT_FRAG_FO =FACT(statut='f', - GC =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PENA_ADHERENCE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PENA_CONTACT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),defaut=1.), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - RCCM =FACT(statut='f', - 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', - SY_02 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SM =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SU =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - S =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - N_KE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_KE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - LAIGLE =FACT(statut='f', - GAMMA_ULT =SIMP(statut='o',typ='R'), - GAMMA_E =SIMP(statut='o',typ='R'), - M_ULT =SIMP(statut='o',typ='R'), - M_E =SIMP(statut='o',typ='R'), - A_E =SIMP(statut='o',typ='R'), - M_PIC =SIMP(statut='o',typ='R'), - A_PIC =SIMP(statut='o',typ='R'), - ETA =SIMP(statut='o',typ='R'), - SIGMA_C =SIMP(statut='o',typ='R'), - GAMMA =SIMP(statut='o',typ='R'), - KSI =SIMP(statut='o',typ='R'), - GAMMA_CJS =SIMP(statut='o',typ='R'), - SIGMA_P1 =SIMP(statut='o',typ='R'), - PA =SIMP(statut='o',typ='R'), - ), - DRUCK_PRAGER =FACT(statut='f', - ALPHA =SIMP(statut='o',typ='R'), - SY =SIMP(statut='o',typ='R'), - P_ULTM =SIMP(statut='o',typ='R'), - ECROUISSAGE = SIMP(statut='o',typ='TXM',into=("LINEAIRE","PARABOLIQUE")), - b_lineaire =BLOC(condition="ECROUISSAGE=='LINEAIRE'", - fr="Loi de comportement de type Drucker Prager avec un ecrouissage lineaire", - H =SIMP(statut='o',typ='R'), - TYPE_DP =SIMP(statut='c',typ='R',defaut= 1.0,), - ), - b_parabolique =BLOC(condition="ECROUISSAGE=='PARABOLIQUE'", - fr="Loi de comportement de type Drucker Prager avec un ecrouissage parabolique", - SY_ULTM =SIMP(statut='o',typ='R'), - TYPE_DP =SIMP(statut='c',typ='R',defaut= 2.0,), - ), - ), - HOEK_BROWN =FACT(statut='f', - GAMMA_RUP =SIMP(statut='o',typ='R'), - GAMMA_RES =SIMP(statut='o',typ='R'), - S_END =SIMP(statut='o',typ='R'), - S_RUP =SIMP(statut='o',typ='R'), - M_END =SIMP(statut='o',typ='R'), - M_RUP =SIMP(statut='o',typ='R'), - BETA =SIMP(statut='o',typ='R'), - ALPHAHB =SIMP(statut='o',typ='R'), - PHI_RUP =SIMP(statut='o',typ='R'), - PHI_RES =SIMP(statut='o',typ='R'), - PHI_END =SIMP(statut='f',typ='R'), - ), -#### MONOCRISTAL - - ECOU_VISC1 =FACT(statut='f', - TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),), - N =SIMP(statut='o',typ='R'), - K =SIMP(statut='o',typ='R'), - C =SIMP(statut='o',typ='R'), - ), - ECOU_VISC2 =FACT(statut='f', - TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),), - N =SIMP(statut='o',typ='R'), - K =SIMP(statut='o',typ='R'), - C =SIMP(statut='o',typ='R'), - D =SIMP(statut='o',typ='R'), - A =SIMP(statut='o',typ='R'), - ), - ECOU_VISC3 =FACT(statut='f', - TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),), - K =SIMP(statut='o',typ='R',fr="Constante de Boltzmann, en eV/K"), - TAUMU =SIMP(statut='o',typ='R',fr="Seuil d ecoulement, en unite de contraintes"), - GAMMA0 =SIMP(statut='o',typ='R',fr="Vitesse d ecoulement initiale"), - DELTAV =SIMP(statut='o',typ='R',fr="Volume d activation"), - DELTAG0 =SIMP(statut='o',typ='R',fr="Gain d energie lie au franchissement d obstacle"), - ), - ECOU_PLAS1 =FACT(statut='f', - TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECOU_PLAS",),), - C =SIMP(statut='o',typ='R'), - ), - ECRO_ISOT1 =FACT(statut='f', - TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECRO_ISOT",),), - R_0 =SIMP(statut='o',typ='R'), - Q =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - H =SIMP(statut='o',typ='R'), - ), - ECRO_ISOT2 =FACT(statut='f', - TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECRO_ISOT",),), - R_0 =SIMP(statut='o',typ='R'), - Q1 =SIMP(statut='o',typ='R'), - B1 =SIMP(statut='o',typ='R'), - H =SIMP(statut='o',typ='R'), - Q2 =SIMP(statut='o',typ='R'), - B2 =SIMP(statut='o',typ='R'), - ), - ECRO_CINE1 =FACT(statut='f', - TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECRO_CINE",),), - D =SIMP(statut='o',typ='R'), - ), - ECRO_CINE2 =FACT(statut='f', - TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECRO_CINE",),), - D =SIMP(statut='o',typ='R'), - GM =SIMP(statut='o',typ='R'), - PM =SIMP(statut='o',typ='R'), - C =SIMP(statut='o',typ='R'), - ), - -#### MONOCRISTAL - - DRUCK_PRAGER_FO =FACT(statut='f', - ALPHA =SIMP(statut='o',typ=(fonction_sdaster,formule)), - SY =SIMP(statut='o',typ=(fonction_sdaster,formule)), - P_ULTM =SIMP(statut='o',typ=(fonction_sdaster,formule)), - ECROUISSAGE = SIMP(statut='o',typ='TXM',into=("LINEAIRE","PARABOLIQUE")), - b_lineaire =BLOC(condition="ECROUISSAGE=='LINEAIRE'", - fr="Loi de comportement de type Drucker Prager avec un ecrouissage lineaire", - H =SIMP(statut='o',typ=(fonction_sdaster,formule)), - TYPE_DP =SIMP(statut='c',typ='R',defaut= 1.0,), - ), - b_parabolique =BLOC(condition="ECROUISSAGE=='PARABOLIQUE'", - fr="Loi de comportement de type Drucker Prager avec un ecrouissage parabolique", - SY_ULTM =SIMP(statut='o',typ=(fonction_sdaster,formule)), - TYPE_DP =SIMP(statut='c',typ='R',defaut= 2.0,), - ), - ), - - - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_MODELE_GENE=OPER(nom="DEFI_MODELE_GENE",op= 126,sd_prod=modele_gene, - reentrant='n', - fr="Créer la structure globale à partir des sous-structures en sous-structuration dynamique", - UIinfo={"groupes":("Matrices/vecteurs",)}, - SOUS_STRUC =FACT(statut='o',max='**', - NOM =SIMP(statut='o',typ='TXM' ), - MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - TRANS =SIMP(statut='f',typ='R',max=3), - ), - LIAISON =FACT(statut='o',max='**', - SOUS_STRUC_1 =SIMP(statut='o',typ='TXM' ), - INTERFACE_1 =SIMP(statut='o',typ='TXM' ), - SOUS_STRUC_2 =SIMP(statut='o',typ='TXM' ), - INTERFACE_2 =SIMP(statut='o',typ='TXM' ), - regles=(EXCLUS('GROUP_MA_MAIT_1','GROUP_MA_MAIT_2','MAILLE_MAIT_2'), - EXCLUS('MAILLE_MAIT_1','GROUP_MA_MAIT_2','MAILLE_MAIT_2'),), - GROUP_MA_MAIT_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_MAIT_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_MAIT_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_MAIT_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - OPTION =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("REDUIT","CLASSIQUE") ), - ), - VERIF =FACT(statut='f',max='**', -# dans la doc U stop_erreur est obligatoire - STOP_ERREUR =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_NAPPE=OPER(nom="DEFI_NAPPE",op= 4,sd_prod=nappe_sdaster, - fr="Définir une fonction réelle de deux variables réelles", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - regles=(UN_PARMI('FONCTION','DEFI_FONCTION'), - EXCLUS('FONCTION','NOM_PARA_FONC',), - ENSEMBLE('NOM_PARA_FONC','DEFI_FONCTION'),), - NOM_PARA =SIMP(statut='o',typ='TXM',into=C_PARA_FONCTION() ), - NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"), - PARA =SIMP(statut='o',typ='R',max='**'), - FONCTION =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ), - NOM_PARA_FONC =SIMP(statut='f',typ='TXM',into=("TEMP","INST","X","Y","Z","EPSI","FREQ", - "PULS","AMOR","EPAIS","SAT", "PGAZ","PCAP") ), - DEFI_FONCTION =FACT(statut='f',max='**', - VALE =SIMP(statut='o',typ='R',max='**'), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - VERIF =SIMP(statut='f',typ='TXM',into=("CROISSANT",) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_OBSTACLE=OPER(nom="DEFI_OBSTACLE",op= 73,sd_prod=obstacle_sdaster - ,fr="Définition d'un obstacle plan perpendiculaire à une structure filaire", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - TYPE =SIMP(statut='o',typ='TXM',defaut="CERCLE", - into=("CERCLE","PLAN_Y","PLAN_Z","DISCRET", - "BI_CERCLE","BI_PLAN_Y","BI_PLAN_Z","BI_CERC_INT", - "CRAYON_900","CRAYON_1300","GUID_A_CARTE_900", - "GUID_B_CARTE_900","GUID_C_CARTE_900", - "GUID_D_CARTE_900","GUID_E_CARTE_900", - "GUID_F_CARTE_900","GUID_A_CARTE_1300", - "GUID_B_CARTE_1300","GUID_C_CARTE_1300", - "GUID_D_CARTE_1300","GUID_E_CARTE_1300", - "GUID_F_CARTE_1300","GUID_A_CARSP_900", - "GUID_B_CARSP_900","GUID_C_CARSP_900", - "GUID_D_CARSP_900","GUID_E_CARSP_900", - "GUID_F_CARSP_900","GUID_A_CARSP_1300", - "GUID_B_CARSP_1300","GUID_C_CARSP_1300", - "GUID_D_CARSP_1300","GUID_E_CARSP_1300", - "GUID_F_CARSP_1300","GUID_A_GCONT_900", - "GUID_B_GCONT_900","GUID_C_GCONT_900", - "GUID_D_GCONT_900","GUID_E_GCONT_900", - "GUID_F_GCONT_900","GUID_A_GCONT_1300", - "GUID_B_GCONT_1300","GUID_C_GCONT_1300", - "GUID_D_GCONT_1300","GUID_E_GCONT_1300", - "GUID_F_GCONT_1300","GUID_A_GCOMB_900", - "GUID_B_GCOMB_900","GUID_C_GCOMB_900", - "GUID_D_GCOMB_900","GUID_E_GCOMB_900", - "GUID_F_GCOMB_900","GUID_A_GCOMB_1300", - "GUID_B_GCOMB_1300","GUID_C_GCOMB_1300", - "GUID_D_GCOMB_1300","GUID_E_GCOMB_1300", - "GUID_F_GCOMB_1300",) ), - VALE =SIMP(statut='f',typ='R',max='**'), - VERIF =SIMP(statut='f',typ='TXM',defaut="FERME"), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GNICOLAS G.NICOLAS -DEFI_PARA_SENSI=OPER(nom="DEFI_PARA_SENSI",op= 2,sd_prod=para_sensi, - fr="Définition d'un paramètre de sensibilité", - ang="Definition of a sensitive parameter", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - NOM_RESU =SIMP(statut='c',typ='TXM',into=("TOUTRESU",),defaut="TOUTRESU", - fr="Nom du concept créé", - ang="Name of the concept"), - VALE =SIMP(statut='o',typ='R', - fr="Valeur du parametre", - ang="Value of the parameter"), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 30/08/2005 AUTEUR ASSIRE A.ASSIRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ASSIRE A.ASSIRE - -from Macro.defi_part_feti_ops import defi_part_feti_ops - -DEFI_PART_FETI=MACRO(nom="DEFI_PART_FETI",op=defi_part_feti_ops,sd_prod=sd_feti_sdaster, - reentrant='n',UIinfo={"groupe":("Maillage",)}, - fr="Creation partitionnement en sous-domaines pour FETI", - regles=(UN_PARMI('MAILLAGE','MODELE'),), - MAILLAGE =SIMP(statut='f',typ=maillage_sdaster), - MODELE =SIMP(statut='f',typ=modele_sdaster), - NB_PART =SIMP(statut='o',typ='I',val_min=2), - EXCIT =FACT(statut='f',max='**', - CHARGE =SIMP(statut='f',typ=(char_meca,char_cine_meca)),), - - # Methode de partitionnement - METHODE =SIMP(statut='f',typ='TXM',into=("PMETIS","SCOTCH","KMETIS",), defaut="SCOTCH" ), - - LOGICIEL =SIMP(statut='f',typ='TXM'), - - # Corrige les problemes possibles de non-connexite des sous-domaines - CORRECTION_CONNEX =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON')), - - # Permet de grouper des mailles dans un meme sous-doamine - GROUPAGE =FACT(statut='f',max='**', - GROUP_MA =SIMP(statut='o',typ=grma,), - ), - # Permet d'appliquer des poids sur certaines mailles - POIDS_MAILLES =FACT(statut='f',max='**', - GROUP_MA =SIMP(statut='o',typ=grma,), - POIDS =SIMP(statut='f',typ='I',val_min=2), - ), - # Prefixe pour le nom des group_ma definissant les sous-domaines - NOM_GROUP_MA =SIMP(statut='f',typ='TXM',defaut='SD' ), - - # Traiter les mailles de bords (elles sont enlevees du graphe puis reinjectees) - TRAITER_BORDS =SIMP(statut='f',typ='TXM',defaut='OUI',into=('OUI','NON') ), - - # Si le mot-clé suivant est renseigné, crée de nouveau group_ma a partir des bords - # Note : le calcul FETI sera impossible - b_traiter_bords =BLOC(condition="TRAITER_BORDS == 'OUI'", fr="Crée t on des nouveaux group_ma", - NOM_GROUP_MA_BORD =SIMP(statut='f',typ='TXM'), - ), - - INFO =SIMP(statut='f',typ='I',into=(1, 2), defaut=1), -); -#& MODIF COMMANDE DATE 22/02/2005 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ASSIRE A.ASSIRE - -DEFI_PART_OPS=OPER(nom="DEFI_PART_OPS",op=21,sd_prod=sd_feti_sdaster, - fr="Creation partitionnement en sous-domaines pour FETI", - docu="U4.23.05",reentrant='n', - UIinfo={"groupes":("Résolution",)}, - MODELE =SIMP(statut='o',typ=(modele_sdaster) ), - MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster) ), - NOM =SIMP(statut='f',typ='TXM',defaut='SD'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2,3,4) ), - DEFI =FACT(statut='f',max='**', - GROUP_MA =SIMP(statut='o',typ=grma), - GROUP_MA_BORD =SIMP(statut='f',typ=grma), - ), - EXCIT =FACT(statut='f',max='**', - CHARGE =SIMP(statut='f',typ=(char_meca,char_cine_meca)), - ), -); -#& MODIF COMMANDE DATE 30/08/2005 AUTEUR ASSIRE A.ASSIRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ASSIRE A.ASSIRE - -DEFI_PART_PA_OPS=OPER(nom="DEFI_PART_PA_OPS",op=29,sd_prod=sd_feti_sdaster, - fr="Creation partitionnement en sous-domaines pour FETI", - docu="U4.00.00",reentrant='n', - UIinfo={"groupes":("Résolution",)}, - MAILLAGE =SIMP(statut='o',typ=(maillage_sdaster,squelette) ), - MODELE =SIMP(statut='f',typ=(modele_sdaster)), - NB_PART =SIMP(statut='o',typ='I',), - - # Methode de partitionnement - METHODE =SIMP(statut='f',typ='TXM',into=("PMETIS","SCOTCH","KMETIS",), defaut="SCOTCH" ), - - LOGICIEL =SIMP(statut='f',typ='TXM'), - - # Corrige les problemes possibles de non-connexite des sous-domaines - CORRECTION_CONNEX =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON')), - - # Permet de grouper des mailles dans un meme sous-doamine - GROUPAGE =FACT(statut='f',max='**', - GROUP_MA =SIMP(statut='o',typ=grma,), - ), - # Permet d'appliquer des poids sur certaines mailles - POIDS_MAILLES =FACT(statut='f',max='**', - GROUP_MA =SIMP(statut='o',typ=grma,), - POIDS =SIMP(statut='f',typ='I'), - ), - # Prefixe pour le nom des group_ma definissant les sous-domaines - NOM_GROUP_MA =SIMP(statut='f',typ='TXM',defaut='SD' ), - - # Traiter les mailles de bords (elles sont enlevees du graphe puis reinjectees) - TRAITER_BORDS =SIMP(statut='f',typ='TXM',defaut='OUI',into=('OUI','NON') ), - - # Si le mot-clé suivant est renseigné, crée de nouveau group_ma a partir des bords - # Note : le calcul FETI sera impossible - b_traiter_bords =BLOC(condition="TRAITER_BORDS == 'OUI'", fr="Crée t on des nouveaux group_ma", - NOM_GROUP_MA_BORD =SIMP(statut='f',typ='TXM'), - ), - - INFO =SIMP(statut='f',typ='I',into=(1, 2), defaut=1), - -); -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_SPEC_TURB=OPER(nom="DEFI_SPEC_TURB",op= 145,sd_prod=spectre_sdaster, - fr="Définition d'un spectre d'excitation turbulente", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(UN_PARMI('SPEC_LONG_COR_1','SPEC_LONG_COR_2','SPEC_LONG_COR_3', - 'SPEC_LONG_COR_4','SPEC_CORR_CONV_1','SPEC_CORR_CONV_2', - 'SPEC_FONC_FORME','SPEC_EXCI_POINT'),), - SPEC_LONG_COR_1 =FACT(statut='f', - LONG_COR =SIMP(statut='o',typ='R' ), - PROF_VITE_FLUI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - VISC_CINE =SIMP(statut='o',typ='R' ), - ), - SPEC_LONG_COR_2 =FACT(statut='f', - regles=(ENSEMBLE('FREQ_COUP','PHI0','BETA' ),), - LONG_COR =SIMP(statut='o',typ='R' ), - PROF_VITE_FLUI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FREQ_COUP =SIMP(statut='f',typ='R',defaut= 0.1 ), - PHI0 =SIMP(statut='f',typ='R',defaut= 1.5E-3 ), - BETA =SIMP(statut='f',typ='R',defaut= 2.7 ), - ), - SPEC_LONG_COR_3 =FACT(statut='f', - regles=(ENSEMBLE('PHI0_1','BETA_1','PHI0_2','BETA_2','FREQ_COUP'),), - LONG_COR =SIMP(statut='o',typ='R' ), - PROF_VITE_FLUI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FREQ_COUP =SIMP(statut='f',typ='R',defaut= 0.2 ), - PHI0_1 =SIMP(statut='f',typ='R',defaut= 5.E-3 ), - BETA_1 =SIMP(statut='f',typ='R',defaut= 0.5 ), - PHI0_2 =SIMP(statut='f',typ='R',defaut= 4.E-5 ), - BETA_2 =SIMP(statut='f',typ='R',defaut= 3.5 ), - ), - SPEC_LONG_COR_4 =FACT(statut='f', - regles=(ENSEMBLE('BETA','GAMMA'),), - LONG_COR =SIMP(statut='o',typ='R' ), - PROF_VITE_FLUI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TAUX_VIDE =SIMP(statut='o',typ='R' ), - BETA =SIMP(statut='f',typ='R',defaut= 2. ), - GAMMA =SIMP(statut='f',typ='R',defaut= 4. ), - ), - SPEC_CORR_CONV_1=FACT(statut='f', - LONG_COR_1 =SIMP(statut='o',typ='R' ), - LONG_COR_2 =SIMP(statut='f',typ='R' ), - VITE_FLUI =SIMP(statut='o',typ='R' ), - RHO_FLUI =SIMP(statut='o',typ='R' ), - FREQ_COUP =SIMP(statut='f',typ='R' ), - K =SIMP(statut='f',typ='R',defaut= 5.8E-3 ), - D_FLUI =SIMP(statut='o',typ='R' ), - COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ), - COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ), - METHODE =SIMP(statut='f',typ='TXM',defaut="GENERALE", - into=("AU_YANG","GENERALE","CORCOS") ), - ), - SPEC_CORR_CONV_2=FACT(statut='f', - FONCTION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - VITE_FLUI =SIMP(statut='o',typ='R' ), - FREQ_COUP =SIMP(statut='f',typ='R' ), - METHODE =SIMP(statut='f',typ='TXM',defaut="GENERALE", - into=("AU_YANG","GENERALE","CORCOS",) ), - COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ), - COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ), - ), - SPEC_FONC_FORME =FACT(statut='f', - regles=(UN_PARMI('INTE_SPEC','GRAPPE_1'), - ENSEMBLE('INTE_SPEC','FONCTION'),), - INTE_SPEC =SIMP(statut='f',typ=tabl_intsp ), - FONCTION =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'), - GRAPPE_1 =SIMP(statut='f',typ='TXM',into=("DEBIT_180","DEBIT_300",) ), - NOEUD =SIMP(statut='o',typ=no), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - ), - SPEC_EXCI_POINT =FACT(statut='f', - regles=(UN_PARMI('INTE_SPEC','GRAPPE_2'),), - INTE_SPEC =SIMP(statut='f',typ=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_sdaster ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_SQUELETTE=OPER(nom="DEFI_SQUELETTE",op= 110,sd_prod=squelette, - fr="Définit un maillage pour visualiser les résultats d'une sous-structuration dynamique", - reentrant='n', - UIinfo={"groupes":("Maillage",)}, - regles=(UN_PARMI('CYCLIQUE','MODELE_GENE','MAILLAGE'), - PRESENT_PRESENT('CYCLIQUE','SECTEUR'), - EXCLUS('SOUS_STRUC','SECTEUR'), - PRESENT_PRESENT('NOM_GROUP_MA','MODELE_GENE'), - PRESENT_PRESENT('NOM_GROUP_MA','SOUS_STRUC'),), - CYCLIQUE =FACT(statut='f',max='**', - regles=(UN_PARMI('MODE_CYCL','MAILLAGE'), - PRESENT_PRESENT('NB_SECTEUR','MAILLAGE'),), - MODE_CYCL =SIMP(statut='f',typ=mode_cycl ), - NB_SECTEUR =SIMP(statut='f',typ='I',validators=NoRepeat(),max=1 ), - MAILLAGE =SIMP(statut='f',typ=maillage_sdaster ), - ), - MODELE_GENE =SIMP(statut='f',typ=modele_gene ), - SQUELETTE =SIMP(statut='f',typ=squelette ), - RECO_GLOBAL =FACT(statut='f',max='**', - regles=(EXCLUS('TOUT','GROUP_NO_1'), - PRESENT_PRESENT('GROUP_NO_1','GROUP_NO_2'), - PRESENT_PRESENT('GROUP_NO_1','SOUS_STRUC_1'), - PRESENT_PRESENT('GROUP_NO_2','SOUS_STRUC_2'), - PRESENT_PRESENT('SOUS_STRUC_1','SOUS_STRUC_2'),), - TOUT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",) ), - GROUP_NO_1 =SIMP(statut='f',typ=grno), - SOUS_STRUC_1 =SIMP(statut='f',typ='TXM' ), - GROUP_NO_2 =SIMP(statut='f',typ=grno), - SOUS_STRUC_2 =SIMP(statut='f',typ='TXM' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - DIST_REFE =SIMP(statut='f',typ='R' ), - ), - NOM_GROUP_MA =FACT(statut='f',max='**', - NOM =SIMP(statut='o',typ='TXM' ), - SOUS_STRUC =SIMP(statut='o',typ='TXM' ), - GROUP_MA =SIMP(statut='o',typ=grma), - ), - EXCLUSIF =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - MAILLAGE =SIMP(statut='f',typ=maillage_sdaster ), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - TRANS =SIMP(statut='f',typ='R',min=3,max=3), - ANGL_NAUT =SIMP(statut='f',typ='R',min=3,max=3), - SOUS_STRUC =FACT(statut='f',max='**', - NOM =SIMP(statut='f',typ='TXM' ), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - ), - SECTEUR =FACT(statut='f',max='**', - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_TEXTURE=OPER(nom="DEFI_TEXTURE",op= 181,sd_prod=tabl_texture,reentrant='n', - fr="Définir pour un materiau CFC, les orientations cristillographiques et leur système de glissement ", - 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=1,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 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_THER_JOULE=OPER(nom="DEFI_THER_JOULE",op= 121,sd_prod=fonction_sdaster,reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - fr="Calculer l'évolution temporelle de la température due à l'effet JOULE d'un courant de court-circuit" - +" dans un cable conducteur", - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - 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',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 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_TRC=OPER(nom="DEFI_TRC",op=94,sd_prod=tabl_trc,reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - fr="Définir d'un diagramme de transformations en refroidissement continu (TRC) de référence d'un acier" - +" pour les calculs métallurgiques.", - HIST_EXP =FACT(statut='o',max='**', - VALE =SIMP(statut='o',typ='R',max='**'), - ), - TEMP_MS =FACT(statut='o',max='**', - SEUIL =SIMP(statut='o',typ='R'), - AKM =SIMP(statut='o',typ='R'), - BKM =SIMP(statut='o',typ='R'), - TPLM =SIMP(statut='o',typ='R'), - ), - GRAIN_AUST =FACT(statut='f',max='**', - DREF =SIMP(statut='f',typ='R'), - A =SIMP(statut='f',typ='R'), - ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEPL_INTERNE=OPER(nom="DEPL_INTERNE",op=89,sd_prod=cham_no_depl_r,reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - fr="Calculer le champ de déplacement à l'intérieur d'une sous-structure statique", - DEPL_GLOBAL =SIMP(statut='o',typ=cham_no_depl_r), - MAILLE =SIMP(statut='o',typ=ma,), - NOM_CAS =SIMP(statut='f',typ='TXM',defaut=" "), -) ; -#& MODIF COMMANDE DATE 17/10/2005 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=MACRO(nom="DETRUIRE",op=-7, - UIinfo={"groupes":("Gestion du travail",)}, - fr="Détruit des concepts utilisateurs dans la base GLOBALE ou des objets JEVEUX", - op_init=ops.detruire, - regles=(UN_PARMI('CONCEPT','OBJET',),), - CONCEPT =FACT(statut='f',max='**', - NOM =SIMP(statut='o',typ=assd,validators=NoRepeat(),max='**'), - ), - OBJET =FACT(statut='f',max='**', - CLASSE =SIMP(statut='f',typ='TXM',into=('G','V','L'),defaut='G'), - CHAINE =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'), - POSITION =SIMP(statut='f',typ='I' ,max='**'), - ), - ALARME =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI',), - INFO =SIMP(statut='f',typ='I',into=(1,2),defaut=2, ), -); -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DIST_LIGN_3D=OPER(nom="DIST_LIGN_3D",op= 133,sd_prod=fonction_sdaster,reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - fr="Calcul (au cours d'un transitoire) de la distance minimale entre deux structures filaires ou entre une structure" - +" et un point fixe", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'), - UN_PARMI('GROUP_MA_2','POIN_FIXE'),), - MODELE =SIMP(statut='o',typ=modele_sdaster), - RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,evol_noli) ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",)), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - GROUP_MA_1 =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),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 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DYNA_ALEA_MODAL=OPER(nom="DYNA_ALEA_MODAL",op= 131,sd_prod=tabl_intsp - ,fr="Calcul de la réponse spectrale d'une structure linéaire sous une excitation connue par sa DSP", - reentrant='n', - UIinfo={"groupes":("Résolution",)}, - BASE_MODALE =FACT(statut='o', - regles=(UN_PARMI('NUME_ORDRE','BANDE'),), - MODE_MECA =SIMP(statut='o',typ=mode_meca ), - BANDE =SIMP(statut='f',typ='R',validators=NoRepeat(),max=2), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - b_bande =BLOC(condition = "BANDE != None", - AMOR_UNIF =SIMP(statut='o',typ='R' ), - ), - b_nume_ordre =BLOC(condition = "NUME_ORDRE != None", - AMOR_REDUIT =SIMP(statut='o',typ='R',max='**'), - ), - ), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)), -# MODE_STAT devrait etre dans EXCIT car est utile et obligatoire que si NOM_CMP=depl_r, on pourrait -# ainsi rajouter un bloc du genre b_mod_stat= BLOC(condition = "(GRANDEUR == None) or (GRANDEUR == 'DEPL_R')", - EXCIT =FACT(statut='o', - INTE_SPEC =SIMP(statut='o',typ=tabl_intsp ), - NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), - OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG",) ), - MODAL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - b_modal_non = BLOC(condition = "(MODAL == None) or (MODAL == 'NON')", - regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I'),), - NUME_ORDRE_I =SIMP(statut='f',typ='I',max='**'), - NOEUD_I =SIMP(statut='f',typ=no,max='**'), - b_nume_ordre_i =BLOC(condition = "NUME_ORDRE_I != None", - regles=(EXCLUS('CHAM_NO','NOEUD'),), -# on devrait rajouter EXCLUS('GRANDEUR','CHAM_NO') pour eviter ambiguite car CHAM_NO => GRANDEUR='EFFO' -# cela impliquerait d'enlever la valeur par defaut a GRANDEUR - NUME_ORDRE_J =SIMP(statut='o',typ='I',max='**'), - CHAM_NO =SIMP(statut='f',typ=cham_no_sdaster), - NOEUD =SIMP(statut='f',typ=no,max='**'), - b_noeud =BLOC(condition = "NOEUD != None", - NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), - ), - GRANDEUR =SIMP(statut='f',typ='TXM',defaut="DEPL_R", - into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")), -# que se passe-t-il en cas d'incompatibilite entre GRANDEUR et NOM_CMP - DERIVATION =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ), - ), - b_noeud_i =BLOC(condition = "NOEUD_I != None", - NOEUD_J =SIMP(statut='o',typ=no,max='**'), - NOM_CMP_I =SIMP(statut='o',typ='TXM',max='**'), - NOM_CMP_J =SIMP(statut='o',typ='TXM',max='**'), - NOEUD =SIMP(statut='o',typ=no,max='**'), - NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), -# ne serait-il pas bien que NOEUD et NOM_CMP soient facultatifs, car l'information peut etre contenue dans -# NOEUD_I, NOM_CMP_I ... => modif. du Fortran - GRANDEUR =SIMP(statut='f',typ='TXM',defaut="DEPL_R", - into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")), -# que se passe-t-il en cas d'incompatibilite entre GRANDEUR et NOM_CMP_I - DERIVATION =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ), - ), - ), - b_modal_oui = BLOC(condition = "(MODAL == 'OUI')", -# dans ce cas, y-a-t-il vraiment la possibilite d'une matrice interspectrale avec plusieurs termes - NUME_ORDRE_I =SIMP(statut='o',typ='I',max='**'), - NUME_ORDRE_J =SIMP(statut='o',typ='I',max='**'), - GRANDEUR =SIMP(statut='f',typ='TXM',defaut="DEPL_R", - into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")), - DERIVATION =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ), -# dans le cas MODAL=OUI, GRANDEUR peut-il etre different de EFFO et doit il etre impose a EFFO On devrait -# pouvoir supprimer GRANDEUR et DERIVATION ici - ), - - ), - REPONSE =FACT(statut='f', - regles=( ENSEMBLE('FREQ_MIN','FREQ_MAX'),), - DERIVATION =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ,) ), - OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ), - FREQ_MIN =SIMP(statut='f',typ='R' ), - FREQ_MAX =SIMP(statut='f',typ='R' ), - PAS =SIMP(statut='f',typ='R' ), - b_defaut_freq =BLOC(condition = "FREQ_MIN == NONE", - FREQ_EXCIT =SIMP(statut='f',typ='TXM',defaut="AVEC",into=("AVEC","SANS") ), - NB_POIN_MODE =SIMP(statut='f',typ='I',defaut= 50 ), - ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 12/09/2005 AUTEUR NICOLAS O.NICOLAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def dyna_line_harm_prod(MATR_RIGI,**args): - if AsType(MATR_RIGI) == matr_asse_depl_r : return dyna_harmo - if AsType(MATR_RIGI) == matr_asse_depl_c : return dyna_harmo - if AsType(MATR_RIGI) == matr_asse_pres_c : return acou_harmo - if AsType(MATR_RIGI) == matr_asse_gene_r : return harm_gene - if AsType(MATR_RIGI) == matr_asse_gene_c : return harm_gene - raise AsException("type de concept resultat non prevu") - -DYNA_LINE_HARM=OPER(nom="DYNA_LINE_HARM",op= 60,sd_prod=dyna_line_harm_prod, - fr="Calcul de la réponse dynamique complexe d'un système à une excitation harmonique", - reentrant='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_sdaster ), - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - MATR_MASS =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_pres_c,matr_asse_gene_r ) ), - MATR_RIGI =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_pres_c - ,matr_asse_gene_r,matr_asse_gene_c ) ), - MATR_AMOR =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_pres_c,matr_asse_gene_r ) ), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - LIST_AMOR =SIMP(statut='f',typ=listr8_sdaster ), - MATR_IMPE_PHI =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",)), - NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3,into=("DEPL","VITE","ACCE") ), - EXCIT =FACT(statut='o',max='**', - regles=(UN_PARMI('VECT_ASSE','CHARGE'), - UN_PARMI('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'), - ), - VECT_ASSE =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_depl_c,cham_no_pres_c,vect_asse_gene_r,vect_asse_gene_c ) ), - CHARGE =SIMP(statut='f',typ=char_meca ), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), - FONC_MULT_C =SIMP(statut='f',typ=fonction_c ), - COEF_MULT_C =SIMP(statut='f',typ='C' ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - COEF_MULT =SIMP(statut='f',typ='R' ), - PHAS_DEG =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - PUIS_PULS =SIMP(statut='f',typ='I',defaut= 0 ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"), -) ; -# Rajouter test icompatibilite vect_asse et sensibilite -# Peut-on aussi rajouter ici le test d incompatibilite charge complexe - derivation -# presents dans le Fortran -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op= 48,sd_prod=dyna_trans, - fr="Calcul de la réponse dynamique transitoire à une excitation temporelle quelconque", - reentrant='f', - UIinfo={"groupes":("Résolution",)}, -# regles=(UN_PARMI('WILSON','DIFF_CENTRE','ADAPT'),), - regles=(UN_PARMI('NEWMARK','WILSON','DIFF_CENTRE','ADAPT'),), - MODELE =SIMP(statut='f',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - MATR_MASS =SIMP(statut='o',typ=matr_asse_depl_r ), - MATR_RIGI =SIMP(statut='o',typ=matr_asse_depl_r ), - MATR_AMOR =SIMP(statut='f',typ=matr_asse_depl_r ), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ), - NEWMARK =FACT(statut='f', - ALPHA =SIMP(statut='f',typ='R',defaut= 0.25 ), - DELTA =SIMP(statut='f',typ='R',defaut= 0.5 ), - ), - WILSON =FACT(statut='f', - THETA =SIMP(statut='f',typ='R',defaut= 1.4 ), - ), - DIFF_CENTRE =FACT(statut='f', - ), - ADAPT =FACT(statut='f', - ), - ETAT_INIT =FACT(statut='f', - regles=(AU_MOINS_UN('DYNA_TRANS', 'DEPL_INIT', 'VITE_INIT',), - 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',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_sdaster,nappe_sdaster,formule) ), - COEF_MULT =SIMP(statut='f',typ='R' ), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), - ACCE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - VITE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DEPL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MULT_APPUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - DIRECTION =SIMP(statut='f',typ='R',max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - ), - AMOR_MODAL =FACT(statut='f', - MODE_MECA =SIMP(statut='f',typ=mode_meca ), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - NB_MODE =SIMP(statut='f',typ='I',defaut= 9999 ), - REAC_VITE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), -# ce n est pas le mot clesolveur standard - SOLVEUR =FACT(statut='d', - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - INCREMENT =FACT(statut='o',max='**', - regles=(UN_PARMI('LIST_INST','FONC_INST','PAS'),), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), - FONC_INST =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PAS =SIMP(statut='f',typ='R' ), - b_pas =BLOC(condition = "PAS != None", - INST_INIT =SIMP(statut='f',typ='R' ), - INST_FIN =SIMP(statut='f',typ='R' ), - ), - b_list_fonc =BLOC(condition = "LIST_INST != None or FONC_INST != None", - regles=(EXCLUS('INST_FIN','NUME_FIN'),), - NUME_FIN =SIMP(statut='f',typ='I' ), - INST_FIN =SIMP(statut='f',typ='R' ), - ), - VITE_MIN =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ), - COEF_MULT_PAS =SIMP(statut='f',typ='R',defaut= 1.1 ), - COEF_DIVI_PAS =SIMP(statut='f',typ='R',defaut= 1.33334 ), - PAS_LIMI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ), - NMAX_ITER_PAS =SIMP(statut='f',typ='I',defaut= 16 ), - PAS_CALCUL =SIMP(statut='f',typ='I',defaut= 1 ), - ), - ARCHIVAGE =FACT(statut='f', - regles=(UN_PARMI('LIST_ARCH','PAS_ARCH', ),), - LIST_ARCH =SIMP(statut='f',typ=listis_sdaster ), - PAS_ARCH =SIMP(statut='f',typ='I' ), - CHAM_EXCLU =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","VITE","ACCE") ), - ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des param\350tres de sensibilit\351.", - ang="List of sensitivity parameters", - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 07/10/2005 AUTEUR CIBHHPD L.SALMONA -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f', - fr="Calcul de l'évolution dynamique d'une structure dont le matériau ou la géométrie ont un comportement non linéaire", - UIinfo={"groupes":("Résolution",)}, - regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',), - UN_PARMI('NEWMARK','HHT','TETA_METHODE', ),), - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - EXCIT =FACT(statut='o',max='**', - regles=(PRESENT_ABSENT('FONC_MULT','ACCE'), - PRESENT_PRESENT('ACCE','VITE','DEPL'), - # PRESENT_ABSENT('MULT_APPUI','FONC_MULT'), - ), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE", - into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")), - CHARGE =SIMP(statut='o',typ=(char_meca,char_cine_meca)), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - DEPL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ACCE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VITE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MULT_APPUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - DIRECTION =SIMP(statut='f',typ='R',max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - ), - SOUS_STRUC =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','MAILLE'),), - CAS_CHARGE =SIMP(statut='o',typ='TXM' ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',), - ), - AMOR_MODAL =FACT(statut='f', - MODE_MECA =SIMP(statut='f',typ=mode_meca), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**' ), - NB_MODE =SIMP(statut='f',typ='I',defaut= 9999 ), - REAC_VITE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - COMP_INCR =C_COMP_INCR(), - COMP_ELAS =FACT(statut='f',max='**', - RELATION =SIMP(statut='o',typ='TXM',defaut="ELAS", - into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC", - "ELAS_POUTRE_GR","CABLE")), - ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_VMIS_LINE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_POUTRE_GR =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - CABLE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", - into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), - ), -#------------------------------------------------------------------- - b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : ETAT_INIT obligatoire", - ETAT_INIT =FACT(statut='o', - regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','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'), - ),), - b_not_reuse =BLOC(condition = "not reuse",fr="en mode concept non reentrant : ETAT_INIT facultatif", - ETAT_INIT =FACT(statut='f', - regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','SIGM','VARI','VARI_NON_LOCAL',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','VITE'), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), - EXCLUS('NUME_ORDRE','INST'), ), - DEPL =SIMP(statut='f',typ=cham_no_depl_r), - VITE =SIMP(statut='f',typ=cham_no_depl_r), - SIGM =SIMP(statut='f',typ=(cham_elem_sief_r,carte_sief_r)), - VARI =SIMP(statut='f',typ=cham_elem_vari_r), - VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_vanl_r), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - NUME_DIDI =SIMP(statut='f',typ='I'), - INST_ETAT_INIT =SIMP(statut='f',typ='R'), - ),), -#------------------------------------------------------------------- - INCREMENT =FACT(statut='o', - regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), - EXCLUS('NUME_INST_FIN','INST_FIN'),), - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE", - into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ), - NUME_INST_INIT =SIMP(statut='f',typ='I'), - INST_INIT =SIMP(statut='f',typ='R'), - NUME_INST_FIN =SIMP(statut='f',typ='I'), - INST_FIN =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - 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', - ALPHA =SIMP(statut='f',typ='R',defaut= 0.25), - DELTA =SIMP(statut='f',typ='R',defaut= 0.5), - ), - HHT =FACT(statut='f', - ALPHA =SIMP(statut='f',typ='R' - ,defaut= -0.29999999999999999 ), - ), - TETA_METHODE =FACT(statut='f', - TETA =SIMP(statut='f',typ='R' - ,defaut= 1.,val_min=0.5,val_max=1. ), - ), - NEWTON =FACT(statut='d', - REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), - PREDICTION =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE") ), - MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ), - REAC_ITER =SIMP(statut='f',typ='I',defaut= 0), - REAC_ITER_ELAS =SIMP(statut='f',typ='I',defaut=0), - PAS_MINI_ELAS =SIMP(statut='f',typ='R',defaut=0.0E+0), - ), - PARM_THETA =SIMP(statut='f',typ='R',defaut= 1. ), - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ), - b_mult_front =BLOC(condition= "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition= "METHODE == 'LDLT'",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition="METHODE == 'LDLT' or METHODE == 'MULT_FRONT'", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ), - ), - b_mumps =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS", - TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=20,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=1.E-6,), - ), - b_gcpc =BLOC(condition="METHODE == 'GCPC'",fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), -#------------------------------------------------------------------- - RECH_LINEAIRE =FACT(statut='f', - RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-1 ), - ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3), - ITER_LINE_CRIT =SIMP(statut='f',typ='I',defaut= 20), - PAS_MINI_CRIT =SIMP(statut='f',typ='R',defaut=0.0E+0), - RHO_MIN =SIMP(statut='f',typ='R',defaut=1.0E-2), - RHO_MAX =SIMP(statut='f',typ='R',defaut=1.0E+1), - RHO_EXCL =SIMP(statut='f',typ='R',defaut=0.9E-2), - ), - PILOTAGE =FACT(statut='f', - regles=(EXCLUS('NOEUD','GROUP_NO'),PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TYPE =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS","PRED_ELAS_INCR","DEFORMATION","ANA_LIM") ), - COEF_MULT =SIMP(statut='f',typ='R',defaut= 1.0E+0), - ETA_PILO_MAX =SIMP(statut='f',typ='R'), - ETA_PILO_MIN =SIMP(statut='f',typ='R'), - ETA_PILO_R_MAX =SIMP(statut='f',typ='R'), - ETA_PILO_R_MIN =SIMP(statut='f',typ='R'), - PROJ_BORNES =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - SELECTION =SIMP(statut='f',typ='TXM',defaut="NORM_INCR_DEPL", into=("RESIDU","ANGL_INCR_DEPL","NORM_INCR_DEPL") ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**' ), - ), - CONVERGENCE =FACT(statut='d', - regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),), - SIGM_REFE =SIMP(statut='f',typ='R'), - EPSI_REFE =SIMP(statut='f',typ='R'), - FLUX_THER_REFE =SIMP(statut='f',typ='R'), - FLUX_HYD1_REFE =SIMP(statut='f',typ='R'), - FLUX_HYD2_REFE =SIMP(statut='f',typ='R'), - RESI_REFE_RELA =SIMP(statut='f',typ='R'), - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), - ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25), - ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), - ), -#------------------------------------------------------------------- - SUIVI_DDL = FACT(statut='f',max=4, - regles=(UN_PARMI('NOEUD','MAILLE'), - PRESENT_PRESENT('MAILLE','POINT'),), - NUME_SUIVI =SIMP(statut='o',typ='I' ,min=1,max=4), - NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1, - into=("DEPL","VITE","ACCE","SIEF_ELGA", - "VARI_ELGA","FORC_NODA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU",)), - NOM_CMP =SIMP(statut='o',typ='TXM',max=1 ), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=1), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max=1), - POINT =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max=1), - ), - - AFFICHAGE = FACT(statut='f',max=16, - - UNITE = SIMP(statut='f',typ='I',val_min=1), - - LONG_R = SIMP(statut='f',typ='I',defaut=12,val_min=1,val_max=12), - PREC_R = SIMP(statut='f',typ='I',defaut=5, val_min=1,val_max=8), - LONG_I = SIMP(statut='f',typ='I',defaut=6, val_min=1,val_max=12), - - NOM_COLONNE = SIMP(statut='o',typ='TXM',defaut="STANDARD", - into=("STANDARD","MINIMUM", - "ITER_NEWT", - "INCR_TPS", - "RESI_RELA","RELA_NOEU", - "RESI_MAXI","MAXI_NOEU", - "RESI_REFE","REFE_NOEU", - "RELI_ITER","RELI_COEF", - "PILO_PARA", - "LAGR_ECAR","LAGR_INCR","LAGR_ITER", - "MATR_ASSE", - "ITER_DEBO", - "CTCD_ITER","CTCD_INFO","CTCD_GEOM","CTCD_NOEU", - "CTCC_GEOM","CTCC_FROT","CTCC_CONT", - "SUIV_1","SUIV_2","SUIV_3","SUIV_4", - ), - ), - b_residu = BLOC(condition = " NOM_COLONNE == 'RESI_RELA' or \ - NOM_COLONNE == 'RESI_MAXI' or\ - NOM_COLONNE == 'RESI_REFE' or\ - NOM_COLONNE == 'CTCD_GEOM' or\ - NOM_COLONNE == 'STANDARD' ", - INFO_RESIDU = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - ), -#------------------------------------------------------------------- - ARCHIVAGE =FACT(statut='f', - regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'), - EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ), - LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - PAS_ARCH =SIMP(statut='f',typ='I' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - ARCH_ETAT_INIT =SIMP(statut='f',typ='TXM',into=("OUI",)), - NUME_INIT =SIMP(statut='f',typ='I'), - DETR_NUME_SUIV =SIMP(statut='f',typ='TXM',into=("OUI",)), - CHAM_EXCLU =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - into=("DEPL","SIEF_ELGA","VARI_ELGA","ACCE","VITE","VARI_NON_LOCAL","LANL_ELGA")), - ), - OBSERVATION =FACT(statut='f',max='**', - regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'), - PRESENT_PRESENT('MAILLE','POINT'),), - NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - -into=("DEPL","VITE","ACCE","SIEF_ELGA","VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU") ), - NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ), - LIST_ARCH =SIMP(statut='f',typ=listis_sdaster), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PAS_OBSE =SIMP(statut='f',typ='I'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - POINT =SIMP(statut='f',typ='I' ,max='**'), - ), -#------------------------------------------------------------------- - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité", - ang="List of sensitivity parameters"), -#------------------------------------------------------------------- - SOLV_NON_LOCAL =FACT(statut='f', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_mumps =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS", - TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=20,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=1.E-6,), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - LAGR_NON_LOCAL =FACT(statut='f', - ITER_DUAL_MAXI =SIMP(statut='f',typ='I',defaut= 50), - RESI_DUAL_ABSO =SIMP(statut='o',typ='R'), - RESI_PRIM_ABSO =SIMP(statut='o',typ='R'), - R =SIMP(statut='f',typ='R',defaut= 1000.), - ITER_PRIM_MAXI =SIMP(statut='f',typ='I',defaut= 10), - ), -#------------------------------------------------------------------- - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -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", - reentrant='n', - UIinfo={"groupes":("Résolution",)}, - BASE_ELAS_FLUI =SIMP(statut='o',typ=melasflu_sdaster ), - EXCIT =FACT(statut='o', - INTE_SPEC_GENE =SIMP(statut='o',typ=tabl_intsp ), - ), - OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 07/10/2005 AUTEUR CIBHHPD L.SALMONA -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -#& RESPONSABLE -DYNA_TRAN_EXPLI=OPER(nom="DYNA_TRAN_EXPLI",op= 70,sd_prod=evol_noli,reentrant='f',UIinfo={"groupe":("Résolution",)}, - fr="Calcul de l'évolution dynamique d'une structure dont la géométrie ou le matériau ont un comportement" - +" non linéaire, par une méthode explicite sur les accélérations ", - regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',),), - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - EXCIT =FACT(statut='o',max='**', - regles=(PRESENT_ABSENT('FONC_MULT','ACCE'), - PRESENT_PRESENT('ACCE','VITE','DEPL'), - # PRESENT_ABSENT('MULT_APPUI','FONC_MULT'), - ), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE", - into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")), - CHARGE =SIMP(statut='o',typ=char_meca), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - DEPL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ACCE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VITE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MULT_APPUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - DIRECTION =SIMP(statut='f',typ='R',max=3), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - ), - AMOR_MODAL =FACT(statut='f', - MODE_MECA =SIMP(statut='f',typ=mode_meca), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**' ), - NB_MODE =SIMP(statut='f',typ='I',defaut= 9999 ), - REAC_VITE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - PROJ_MODAL =FACT(statut='f', - MODE_MECA =SIMP(statut='f',typ=mode_meca), - NB_MODE =SIMP(statut='f',typ='I',defaut= 9999 ), - ), - COMP_INCR =C_COMP_INCR(), - COMP_ELAS =FACT(statut='f',max='**', - RELATION =SIMP(statut='o',typ='TXM',defaut="ELAS", - into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC", - "ELAS_POUTRE_GR","CABLE")), - ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_VMIS_LINE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_POUTRE_GR =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - CABLE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", - into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), - ), -#------------------------------------------------------------------- - ETAT_INIT =FACT(statut='f', - regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','SIGM','VARI','VARI_NON_LOCAL',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','VITE'), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), - EXCLUS('NUME_ORDRE','INST'), ), - DEPL =SIMP(statut='f',typ=cham_no_depl_r), - VITE =SIMP(statut='f',typ=cham_no_depl_r), - SIGM =SIMP(statut='f',typ=(cham_elem_sief_r,carte_sief_r)), - VARI =SIMP(statut='f',typ=cham_elem_vari_r), - VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_vanl_r), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - NUME_DIDI =SIMP(statut='f',typ='I'), - INST_ETAT_INIT =SIMP(statut='f',typ='R'), - ), -#------------------------------------------------------------------- - INCREMENT =FACT(statut='o', - regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), - EXCLUS('NUME_INST_FIN','INST_FIN'),), - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE", - into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ), - NUME_INST_INIT =SIMP(statut='f',typ='I'), - INST_INIT =SIMP(statut='f',typ='R'), - NUME_INST_FIN =SIMP(statut='f',typ='I'), - INST_FIN =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - SUBD_PAS =SIMP(statut='f',typ='I',defaut=1), - SUBD_PAS_MINI =SIMP(statut='f',typ='R'), - COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0), - OPTI_LIST_INST =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),), - NOM_CHAM =SIMP(statut='f',typ='TXM',), - NOM_CMP =SIMP(statut='f',typ='TXM',), - VALE =SIMP(statut='f',typ='R'), - ), -#------------------------------------------------------------------- - NEWMARK =FACT(statut='d', - ALPHA =SIMP(statut='f',typ='R',defaut= 0.25), - DELTA =SIMP(statut='f',typ='R',defaut= 0.5), - ), - NEWTON =FACT(statut='c', - REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), - PREDICTION =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE") ), - MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ), - REAC_ITER =SIMP(statut='f',typ='I',defaut= 0), - REAC_ITER_ELAS =SIMP(statut='f',typ='I',defaut=0), - PAS_MINI_ELAS =SIMP(statut='f',typ='R',defaut=0.0E+0), - ), - PARM_THETA =SIMP(statut='f',typ='R',defaut= 1. ), - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition= "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition= "METHODE == 'LDLT'",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition="METHODE == 'LDLT' or METHODE == 'MULT_FRONT'", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ), - ), - b_gcpc =BLOC(condition="METHODE == 'GCPC'",fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), -#------------------------------------------------------------------- - RECH_LINEAIRE =FACT(statut='c', - RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-1 ), - ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3), - ITER_LINE_CRIT =SIMP(statut='f',typ='I',defaut= 20), - PAS_MINI_CRIT =SIMP(statut='f',typ='R',defaut=0.0E+0), - RHO_MIN =SIMP(statut='f',typ='R',defaut=1.0E-2), - RHO_MAX =SIMP(statut='f',typ='R',defaut=1.0E+1), - RHO_EXCL =SIMP(statut='f',typ='R',defaut=0.9E-2), - ), - PILOTAGE =FACT(statut='c', - regles=(EXCLUS('NOEUD','GROUP_NO'),PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TYPE =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS","PRED_ELAS_INCR","DEFORMATION","ANA_LIM") ), - COEF_MULT =SIMP(statut='f',typ='R',defaut= 1.0E+0), - ETA_PILO_MAX =SIMP(statut='f',typ='R'), - ETA_PILO_MIN =SIMP(statut='f',typ='R'), - ETA_PILO_R_MAX =SIMP(statut='f',typ='R'), - ETA_PILO_R_MIN =SIMP(statut='f',typ='R'), - PROJ_BORNES =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - SELECTION =SIMP(statut='f',typ='TXM',defaut="NORM_INCR_DEPL", into=("RESIDU","ANGL_INCR_DEPL","NORM_INCR_DEPL") ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**' ), - ), - CONVERGENCE =FACT(statut='d', - regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),), - SIGM_REFE =SIMP(statut='f',typ='R'), - EPSI_REFE =SIMP(statut='f',typ='R'), - FLUX_THER_REFE =SIMP(statut='f',typ='R'), - FLUX_HYD1_REFE =SIMP(statut='f',typ='R'), - FLUX_HYD2_REFE =SIMP(statut='f',typ='R'), - RESI_REFE_RELA =SIMP(statut='f',typ='R'), - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), - ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25), - ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), - RESI_INTE_RELA =SIMP(statut='f',typ='R' - ,defaut= 1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", - into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), - ), -#------------------------------------------------------------------- - AFFICHAGE = FACT(statut='f',max=16, - - UNITE = SIMP(statut='f',typ='I',val_min=1), - - LONG_R = SIMP(statut='f',typ='I',defaut=12,val_min=1,val_max=12), - PREC_R = SIMP(statut='f',typ='I',defaut=5, val_min=1,val_max=8), - LONG_I = SIMP(statut='f',typ='I',defaut=6, val_min=1,val_max=12), - - NOM_COLONNE = SIMP(statut='o',typ='TXM',defaut="STANDARD", - into=("STANDARD","MINIMUM", - "ITER_NEWT", - "INCR_TPS", - "RESI_RELA","RELA_NOEU", - "RESI_MAXI","MAXI_NOEU", - "RESI_REFE","REFE_NOEU", - "RELI_ITER","RELI_COEF", - "PILO_PARA", - "LAGR_ECAR","LAGR_INCR","LAGR_ITER", - "MATR_ASSE", - "ITER_DEBO", - "CTCD_ITER","CTCD_INFO","CTCD_GEOM","CTCD_NOEU", - "CTCC_GEOM","CTCC_FROT","CTCC_CONT", - "SUIV_1","SUIV_2","SUIV_3","SUIV_4", - ), - ), - b_residu = BLOC(condition = " NOM_COLONNE == 'RESI_RELA' or \ - NOM_COLONNE == 'RESI_MAXI' or\ - NOM_COLONNE == 'RESI_REFE' or\ - NOM_COLONNE == 'CTCD_GEOM' or\ - NOM_COLONNE == 'STANDARD' ", - INFO_RESIDU = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - ), -#------------------------------------------------------------------- - ARCHIVAGE =FACT(statut='f', - regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'), - EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ), - LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - PAS_ARCH =SIMP(statut='f',typ='I' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - ARCH_ETAT_INIT =SIMP(statut='f',typ='TXM',into=("OUI",)), - NUME_INIT =SIMP(statut='f',typ='I'), - DETR_NUME_SUIV =SIMP(statut='f',typ='TXM',into=("OUI",)), - CHAM_EXCLU =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - into=("DEPL","SIEF_ELGA","VARI_ELGA","ACCE","VITE","VARI_NON_LOCAL","LANL_ELGA")), - ), - OBSERVATION =FACT(statut='f',max='**', - regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'), - PRESENT_PRESENT('MAILLE','POINT'),), - NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - -into=("DEPL","VITE","ACCE","SIEF_ELGA","VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU") ), - NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ), - LIST_ARCH =SIMP(statut='f',typ=listis_sdaster), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PAS_OBSE =SIMP(statut='f',typ='I'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - POINT =SIMP(statut='f',typ='I' ,max='**'), - ), -#------------------------------------------------------------------- - SOLV_NON_LOCAL =FACT(statut='f', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - ), - LAGR_NON_LOCAL =FACT(statut='f', - ITER_DUAL_MAXI =SIMP(statut='f',typ='I',defaut= 50), - RESI_DUAL_ABSO =SIMP(statut='o',typ='R'), - RESI_PRIM_ABSO =SIMP(statut='o',typ='R'), - R =SIMP(statut='f',typ='R',defaut= 1000.), - ITER_PRIM_MAXI =SIMP(statut='f',typ='I',defaut= 10), - ), -#------------------------------------------------------------------- - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op= 74,sd_prod=tran_gene, - fr="Calcul de la réponse dynamique transitoire d'un système amorti ou non en coordonées généralisées" - +" par superposition modale ou par sous structuration", - reentrant='f', - UIinfo={"groupes":("Résolution",)}, - regles=(EXCLUS('AMOR_REDUIT','AMOR_GENE','LIST_AMOR'), - PRESENT_ABSENT('MODE_STAT','MODE_CORR'),), - METHODE =SIMP(statut='f',typ='TXM',defaut="EULER", - into=("EULER","NEWMARK","DEVOGE","ADAPT","ITMI") ), - MASS_GENE =SIMP(statut='o',typ=matr_asse_gene_r ), - RIGI_GENE =SIMP(statut='o',typ=matr_asse_gene_r ), - AMOR_GENE =SIMP(statut='f',typ=matr_asse_gene_r ), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - LIST_AMOR =SIMP(statut='f',typ=listr8_sdaster ), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc) ), - MODE_CORR =SIMP(statut='f',typ=(mult_elas,mode_stat_acce) ,), - - ETAT_INIT =FACT(statut='f', - regles=(EXCLUS('RESU_GENE','DEPL_INIT_GENE'), - EXCLUS('RESU_GENE','VITE_INIT_GENE'),), - RESU_GENE =SIMP(statut='f',typ=tran_gene ), - b_resu_gene =BLOC(condition = "RESU_GENE != None", - INST_INIT =SIMP(statut='f',typ='R' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - DEPL_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene_r ), - VITE_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene_r ), - ), - INCREMENT =FACT(statut='o',max='**', - INST_INIT =SIMP(statut='f',typ='R' ), - INST_FIN =SIMP(statut='o',typ='R' ), - PAS =SIMP(statut='f',typ='R' ), - VERI_PAS =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - VITE_MIN =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ), - COEF_MULT_PAS =SIMP(statut='f',typ='R',defaut= 1.1 ), - COEF_DIVI_PAS =SIMP(statut='f',typ='R',defaut= 1.3333334 ), - PAS_LIMI_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6 ), - NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ), - NMAX_ITER_PAS =SIMP(statut='f',typ='I',defaut= 16 ), - ), - ARCHIVAGE =FACT(statut='f', - regles=(UN_PARMI('LIST_ARCH','PAS_ARCH'),), - LIST_ARCH =SIMP(statut='f',typ=listis_sdaster ), - PAS_ARCH =SIMP(statut='f',typ='I' ), - ), - - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 20 ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - LAMBDA =SIMP(statut='f',typ='R',defaut= 10. ), - - EXCIT =FACT(statut='f',max='**', - regles=(UN_PARMI('FONC_MULT','COEF_MULT','ACCE'), - PRESENT_PRESENT('ACCE','VITE','DEPL'), - PRESENT_PRESENT('D_FONC_DT','D_FONC_DT2'), - PRESENT_ABSENT('NUME_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_r ), - NUME_MODE =SIMP(statut='f',typ='I' ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - COEF_MULT =SIMP(statut='f',typ='R' ), - ACCE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - VITE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DEPL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MULT_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), - DIRECTION =SIMP(statut='f',typ='R',max='**'), - b_loca =BLOC(condition= "DIRECTION != None", - regles=(EXCLUS('NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - ), - CORR_STAT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - D_FONC_DT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - D_FONC_DT2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - CHOC =FACT(statut='f',max='**', - regles=(UN_PARMI('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_sdaster ), - ORIG_OBST =SIMP(statut='f',typ='R',min=3,max=3), - NORM_OBST =SIMP(statut='o',typ='R',min=3,max=3), - ANGL_VRIL =SIMP(statut='f',typ='R' ), - JEU =SIMP(statut='f',typ='R',defaut= 1. ), - DIST_1 =SIMP(statut='f',typ='R',val_min=0.E+0 ), - DIST_2 =SIMP(statut='f',typ='R',val_min=0.E+0 ), - SOUS_STRUC_1 =SIMP(statut='f',typ='TXM' ), - SOUS_STRUC_2 =SIMP(statut='f',typ='TXM' ), - REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL"), - RIGI_NOR =SIMP(statut='f',typ='R' ), - AMOR_NOR =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - RIGI_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - AMOR_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - COULOMB =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - - LAME_FLUIDE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - b_lame =BLOC(condition="LAME_FLUIDE=='OUI'", - ALPHA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - BETA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - CHI =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - DELTA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - ), - VERI_CHOC =FACT(statut='f',max='**', - STOP_CRITERE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - SEUIL =SIMP(statut='f',typ='R',defaut= 0.5 ), - ), - FLAMBAGE =FACT(statut='f',max='**', - regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'), - 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_sdaster ), - ORIG_OBST =SIMP(statut='f',typ='R',max='**'), - NORM_OBST =SIMP(statut='o',typ='R',max='**'), - ANGL_VRIL =SIMP(statut='f',typ='R' ), - JEU =SIMP(statut='f',typ='R',defaut= 1. ), - DIST_1 =SIMP(statut='f',typ='R' ), - DIST_2 =SIMP(statut='f',typ='R' ), - REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL"), - RIGI_NOR =SIMP(statut='f',typ='R' ), - FNOR_CRIT =SIMP(statut='f',typ='R' ), - FNOR_POST_FL =SIMP(statut='f',typ='R' ), - RIGI_NOR_POST_FL=SIMP(statut='f',typ='R' ), - ), - ANTI_SISM =FACT(statut='f',max='**', - regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'), - UN_PARMI('NOEUD_2','GROUP_NO_2'), - 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',max='**', - NOEUD =SIMP(statut='o',typ=no), - SOUS_STRUC =SIMP(statut='f',typ='TXM' ), - NOM_CMP =SIMP(statut='f',typ='TXM' ), - RELATION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - RELA_TRANSIS =FACT(statut='f',max='**', - NOEUD =SIMP(statut='o',typ=no), - SOUS_STRUC =SIMP(statut='f',typ='TXM' ), - NOM_CMP =SIMP(statut='f',typ='TXM' ), - RELATION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - RELA_EFFO_VITE =FACT(statut='f',max='**', - NOEUD =SIMP(statut='o',typ=no), - SOUS_STRUC =SIMP(statut='f',typ='TXM' ), - NOM_CMP =SIMP(statut='f',typ='TXM' ), - RELATION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - b_itmi =BLOC(condition = "METHODE=='ITMI'", - regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),), - BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu_sdaster ), - NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), - ETAT_STAT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - PREC_DUREE =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - CHOC_FLUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - NB_MODE =SIMP(statut='f',typ='I' ), - NB_MODE_FLUI =SIMP(statut='f',typ='I' ), - NB_MODE_DIAG =SIMP(statut='f',typ='I' ), - TS_REG_ETAB =SIMP(statut='f',typ='R' ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - IMPRESSION =FACT(statut='f',max='**', - regles=(EXCLUS('TOUT','NIVEAU'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NIVEAU =SIMP(statut='f',typ='TXM',into=("DEPL_LOC","VITE_LOC","FORC_LOC","TAUX_CHOC") ), - INST_INIT =SIMP(statut='f',typ='R' ), - INST_FIN =SIMP(statut='f',typ='R' ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - ) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -ENGENDRE_TEST=PROC(nom="ENGENDRE_TEST",op=178, - UIinfo={"groupes":("Impression",)}, - fr="Engendre des tests pour la non régression du code (pour développeurs)", - regles=(UN_PARMI('TOUT','CO'),), - UNITE =SIMP(statut='f',typ='I',defaut=8), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - CO =SIMP(statut='f',typ=assd,validators=NoRepeat(),max='**'), - TYPE_TEST =SIMP(statut='f',typ='TXM',defaut="SOMME",into=("SOMME","RESUME") ), - FORMAT_R =SIMP(statut='f',typ='TXM',defaut="1PE12.5"), - PREC_R =SIMP(statut='f',typ='TXM',defaut="1.E-5"), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -EXEC_LOGICIEL=PROC(nom="EXEC_LOGICIEL",op= 183, - fr="Exécute un logiciel ou une commande système depuis Aster", - UIinfo={"groupes":("Impression",)}, - LOGICIEL =SIMP(statut='f',typ='TXM' ), - ARGUMENT =FACT(statut='f',max='**', - NOM_PARA =SIMP(statut='f',typ='TXM' ), - ), -) ; -#& MODIF COMMANDE DATE 14/10/2005 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def extr_mode_prod(FILTRE_MODE,**args): - vale=FILTRE_MODE[0]['MODE'] - if AsType(vale) == mode_meca : return mode_meca - if AsType(vale) == mode_meca_c : return mode_meca_c - if AsType(vale) == mode_gene : return mode_gene - raise AsException("type de concept resultat non prevu") - -EXTR_MODE=OPER(nom="EXTR_MODE",op= 168,sd_prod=extr_mode_prod, - reentrant='n',fr="Extraire séléctivement des modes des structures de données modales", - UIinfo={"groupes":("Résolution",)}, - FILTRE_MODE =FACT(statut='o',max='**', - regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','NUME_MODE','NUME_MODE_EXCLU','FREQ_MIN','CRIT_EXTR',),), - MODE =SIMP(statut='o',typ=(mode_meca,mode_meca_c,mode_gene ) ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NUME_MODE_EXCLU =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - FREQ_MIN =SIMP(statut='f',typ='R' ), - CRIT_EXTR =SIMP(statut='f',typ='TXM',into=("MASS_EFFE_UN","MASS_GENE") ), - b_freq_min =BLOC(condition = "FREQ_MIN != None", - FREQ_MAX =SIMP(statut='o',typ='R' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - b_crit_extr =BLOC(condition = "CRIT_EXTR != None", - regles=(AU_MOINS_UN('SEUIL','SEUIL_X','SEUIL_Y','SEUIL_Z'),), - SEUIL =SIMP(statut='f',typ='R'), - SEUIL_X =SIMP(statut='f',typ='R'), - SEUIL_Y =SIMP(statut='f',typ='R'), - SEUIL_Z =SIMP(statut='f',typ='R'), - ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - IMPRESSION =FACT(statut='f', - CUMUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - CRIT_EXTR =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",into=("MASS_EFFE_UN","MASS_GENE") ), - ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def 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,reentrant='f', - UIinfo={"groupes":("Résultats et champs",)}, - fr="Extraire des champs au sein d'une SD Résultat", - RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,acou_harmo,mode_meca, - mode_acou,mode_stat_depl,mode_stat_acce,mode_stat_forc,evol_ther,evol_noli, - mult_elas,fourier_elas ) ), - - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"), - - ARCHIVAGE =FACT(statut='f', - regles=( UN_PARMI('NUME_ORDRE', 'INST', 'FREQ', 'NUME_MODE', - 'NOEUD_CMP', 'LIST_INST', 'LIST_FREQ', 'LIST_ORDRE', - 'NOM_CAS', 'LIST_ARCH', 'PAS_ARCH' ), - EXCLUS( 'CHAM_EXCLU','NOM_CHAM' ), ), - CHAM_EXCLU =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO()), - PRECISION =SIMP(statut='f',typ='R',defaut=1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),defaut="RELATIF"), - LIST_ARCH =SIMP(statut='f',typ=listis_sdaster), - PAS_ARCH =SIMP(statut='f',typ='I'), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM'), - ), - - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def extr_table_prod(TYPE_RESU,**args): - if TYPE_RESU == "MATR_ASSE_GENE_R" : return matr_asse_gene_r - raise AsException("type de concept resultat non prevu") - -EXTR_TABLE=OPER(nom="EXTR_TABLE",op=173,sd_prod=extr_table_prod,reentrant='n', - UIinfo={"groupes":("Résultats et champs",)}, - fr="Extraire d'une table la matrice de masse généralisée assemblée", - TYPE_RESU =SIMP(statut='o',typ='TXM',into=("MATR_ASSE_GENE_R",) ), - - TABLE =SIMP(statut='o',typ=table_sdaster), - - NOM_PARA =SIMP(statut='o',typ='TXM'), - - FILTRE =FACT(statut='f',min=1,max='**', - NOM_PARA =SIMP(statut='o',typ='TXM'), - CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ", - into=("EQ","LT","GT","NE","LE","GE","VIDE", - "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ), - b_vale =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))", - regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),), - VALE =SIMP(statut='f',typ='R'), - VALE_I =SIMP(statut='f',typ='I'), - VALE_C =SIMP(statut='f',typ='C'), - VALE_K =SIMP(statut='f',typ='TXM'),), - - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ), - - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def fact_grad_prod(MATR_ASSE,**args): - if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r - if AsType(MATR_ASSE) == matr_asse_temp_r : return matr_asse_temp_r - if AsType(MATR_ASSE) == matr_asse_pres_r : return matr_asse_pres_r - raise AsException("type de concept resultat non prevu") - -FACT_GRAD=OPER(nom="FACT_GRAD",op=85,sd_prod=fact_grad_prod, - UIinfo={"groupes":("Résolution",)}, - fr="Construire une matrice de préconditionnement pour une résolution par gradient conjugué", - reentrant='n', - MATR_ASSE =SIMP(statut='o', - typ=(matr_asse_depl_r,matr_asse_temp_r, - matr_asse_pres_r) ), - PRE_COND =SIMP(statut='f',typ='TXM',defaut="LDLT_INC",into=("LDLT_INC",) ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def fact_ldlt_prod(MATR_ASSE,**args): - if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r - if AsType(MATR_ASSE) == matr_asse_depl_c : return matr_asse_depl_c - if AsType(MATR_ASSE) == matr_asse_temp_r : return matr_asse_temp_r - if AsType(MATR_ASSE) == matr_asse_temp_c : return matr_asse_temp_c - if AsType(MATR_ASSE) == matr_asse_pres_r : return matr_asse_pres_r - if AsType(MATR_ASSE) == matr_asse_pres_c : return matr_asse_pres_c - raise AsException("type de concept resultat non prevu") - -FACT_LDLT=OPER(nom="FACT_LDLT",op=14,sd_prod=fact_ldlt_prod, - fr="Factoriser une matrice assemblée en un produit de deux matrices triangulaires", - reentrant='f', - UIinfo={"groupes":("Résolution",)}, - regles=(EXCLUS('BLOC_DEBUT','DDL_DEBUT'), - EXCLUS('BLOC_FIN','DDL_FIN'),), - MATR_ASSE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r, - matr_asse_temp_c,matr_asse_pres_r,matr_asse_pres_c) ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - NPREC =SIMP(statut='f',typ='I',defaut=8,val_min=0,), - PRE_COND =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","DIAG") ), - BLOC_DEBUT =SIMP(statut='f',typ='I',val_min=1,), - DDL_DEBUT =SIMP(statut='f',typ='I',val_min=1,), - BLOC_FIN =SIMP(statut='f',typ='I',val_min=1,), - DDL_FIN =SIMP(statut='f',typ='I',val_min=1,), -# - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - -# mots clés pour solveur MUMPS : - TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=20,), - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une étude, fin du travail engagé par une des commandes DEBUT ou POURSUITE", - UIinfo={"groupes":("Gestion du travail",)}, - FORMAT_HDF =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f', - typ='TXM',defaut="NON",into=("OUI","NON",) ), - RETASSAGE =SIMP(fr="provoque le retassage de la base GLOBALE", - statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - PERFORMANCE =SIMP(fr="provoque l'impression d'un résumé des mesures de temps ", - statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ), - INFO_RESU =SIMP(fr="provoque l'impression des informations sur les structures de données", - statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ), - UNITE =SIMP(statut='f',typ='I',defaut=6), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -FONC_FLUI_STRU=OPER(nom="FONC_FLUI_STRU",op= 169,sd_prod=fonction_sdaster, - reentrant='n',fr="Crée une fonction constante paramètrée par l'abscisse curviligne", - UIinfo={"groupes":("Fonction",)}, - TYPE_FLUI_STRU =SIMP(statut='o',typ=(type_flui_stru) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def form_pyth_ops(self,d): - import types,string - NOM_PARA=self.etape['NOM_PARA'] - VALE =self.etape['VALE'] - if type(NOM_PARA) not in (types.ListType,types.TupleType) : NOM_PARA=[NOM_PARA,] - if self.sd==None : return - texte=string.join(VALE.splitlines()) - - self.sd.setFormule(NOM_PARA,string.strip(texte)) - -FORMULE=FORM(nom="FORMULE",op_init=form_pyth_ops,op=-5, - sd_prod=formule,UIinfo={"groupes":("Fonction",)}, - fr="Définit une formule réelle à partir de son expression mathématique", - VALE =SIMP(statut='f',typ='TXM'), - NOM_PARA =SIMP(statut='o',typ='TXM',max='**'), -); -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE CAMBIER S.CAMBIER -GENE_FONC_ALEA=OPER(nom="GENE_FONC_ALEA",op= 118,sd_prod=table_sdaster, - fr="Génération de la fonction temporelle à partir d une matrice interspectrale", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - INTE_SPEC =SIMP(statut='o',typ=tabl_intsp ), - NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), - INTERPOL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("NON","OUI") ), - b_interpol_oui =BLOC(condition = "INTERPOL == 'OUI' ",fr="Parametres cas interpolation autorisee", - DUREE_TIRAGE =SIMP(statut='f',typ='R' ), - FREQ_INIT =SIMP(statut='f',typ='R' ), - FREQ_FIN =SIMP(statut='f',typ='R' ), - ), - NB_POIN =SIMP(statut='f',typ='I'), - NB_TIRAGE =SIMP(statut='f',typ='I',defaut= 1 ), - INIT_ALEA =SIMP(statut='f',typ='I'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 11/07/2005 AUTEUR CAMBIER S.CAMBIER -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE CAMBIER S.CAMBIER -def gene_matr_alea_prod(MATR_MOYEN,**args ): - if (AsType(MATR_MOYEN) == matr_asse_gene_r ) : return matr_asse_gene_r - if (AsType(MATR_MOYEN) == macr_elem_dyna) : return macr_elem_dyna - raise AsException("type de concept resultat non prevu") - -GENE_MATR_ALEA=OPER(nom="GENE_MATR_ALEA",op= 27, -#sd_prod=matr_asse_gene_r, -sd_prod=gene_matr_alea_prod, - fr="Générer une réalisation d'une matrice aléatoire réelle sym. déf. positive ou d'un macro élément dynamique", - reentrant='n', - UIinfo={"groupes":("Matrice",)}, - MATR_MOYEN = SIMP(statut='o', typ=(matr_asse_gene_r,macr_elem_dyna)), - -# cas matrice generalisee - b_matr =BLOC( condition = "AsType(MATR_MOYEN) in (matr_asse_gene_r,)", - COEF_VAR = SIMP(statut='f', typ='R', defaut=0.1, val_min=0.E+0 , - fr="coefficient de variation de la matrice a generer" ), - ), -# cas macr_elem_dyna - b_macr =BLOC( condition = "AsType(MATR_MOYEN) in (macr_elem_dyna,)", - fr="cas macr_elem_dyna (sous-structuratio)", - COEF_VAR_RIGI = SIMP(statut='f', typ='R', defaut=0.1, val_min=0.E+0 , - fr="coefficient de variation de la matrice de raideur" ), - COEF_VAR_MASS = SIMP(statut='f', typ='R', defaut=0., val_min=0.E+0 , - fr="coefficient de variation de la matrice de masse" ), - COEF_VAR_AMOR = SIMP(statut='f', typ='R', defaut=0., val_min=0.E+0 , - fr="coefficient de variation de la matrice d'amortissement" ),), - - INIT_ALEA =SIMP(statut='f',typ='I'), -) ; - -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE CAMBIER S.CAMBIER -GENE_VARI_ALEA=OPER(nom="GENE_VARI_ALEA",op= 28,sd_prod=table_sdaster, - fr="Générer une réalisation d'une variable aléatoire réelle de loi de probabilité donnée (Gamma ou Exponentielle)", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - TYPE = SIMP(statut='f', typ='TXM', into=("EXP_TRONQUEE", "EXPONENTIELLE", "GAMMA"), defaut="GAMMA"), - b_gamma =BLOC(condition = "TYPE == 'GAMMA' ",fr="Parametres loi gamma", - VALE_MOY = SIMP(statut='f', typ='R', defaut=1.), - BORNE_INF = SIMP(statut='f', typ='R', defaut=0.), - COEF_VAR = SIMP(statut='f', typ='R', defaut=0.1), - ), - b_expo =BLOC(condition = "TYPE == 'EXPONENTIELLE' ",fr="Parametres loi exponentielle", - VALE_MOY = SIMP(statut='f', typ='R', defaut=0.), - BORNE_INF = SIMP(statut='f', typ='R', defaut=-1.), - ), - b_expo_tronq =BLOC(condition = "TYPE == 'EXP_TRONQUEE' ",fr="Parametres loi exponentielle tronquee", - VALE_MOY = SIMP(statut='f', typ='R', defaut=0.), - BORNE_INF = SIMP(statut='f', typ='R', defaut=-1.), - BORNE_SUP = SIMP(statut='f', typ='R', defaut=1.), - COEF_VAR = SIMP(statut='f', typ='R', defaut=0.1), - ), - INIT_ALEA =SIMP(statut='f',typ='I'), -) ; - -#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_CHARGE=PROC(nom="IMPR_CHARGE",op= 158, - fr="Impression des charges mécaniques de type ddl imposés et relations linéaires entre les ddl", - UIinfo={"groupes":("Fonction",)}, - UNITE =SIMP(statut='f',typ='I',defaut=30), - FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS",) ), - VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ), - CHARGE =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**', ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_CLASSI=PROC(nom="IMPR_CLASSI",op= 114, - UIinfo={"groupes":("Fonction",)},fr="Ecrit le résultat d'une analyse modale au format du code CLASSI", - 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',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster ), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), - b_prec_crit =BLOC(condition = "LIST_FREQ != None or FREQ != None", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", - into=("RELATIF","ABSOLU") ), - ), - IMPRESSION =FACT(statut='f',max='**', - regles=(UN_PARMI('NOEUD','GROUP_NO', ),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - ), - AMOR =SIMP(statut='o',typ='R',max='**'), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -IMPR_CO=PROC(nom="IMPR_CO",op=17, - UIinfo={"groupes":("Impression",)}, - fr="Imprimer tous les objets JEVEUX qui constituent un concept utilisateur existant (pour développeur)", - regles=(UN_PARMI('CO','CHAINE', ),), - UNITE =SIMP(statut='f',typ='I',defaut=8), - 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,validators=NoRepeat(),max='**'), - CHAINE =SIMP(statut='f',typ='TXM'), - POSITION =SIMP(statut='f',typ='I',defaut=1), -) ; -#& MODIF COMMANDE DATE 04/07/2005 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 -IMPR_FICO_HOMA=PROC(nom="IMPR_FICO_HOMA",op= 189, docu="U7.04.01-b", - 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. 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." ), -# -# 3. Le nom local du fichier de configuration HOMARD -# - UNITE_CONF =SIMP(statut='o',typ='I'), -# -# 4. Le nom local du fichier de données HOMARD -# - UNITE_DONN =SIMP(statut='f',typ='I'), -# -# 5. Gestion des éléments autres que des simplexes -# 0 : autres elements refuses (defaut) -# 1 : raffinement sur les simplexes, mais autres acceptes -# 2 : tous -# - NON_SIMPLEXE = SIMP(statut='f',typ='I',defaut=0,into=(0,1,2), - fr="Type d'éléments acceptés.", - ang="Type of authorized elements." ), -# -# 6. Le type de traitement : -# - TRAITEMENT =FACT(statut='o', -# -# 6.1. TROIS CHOIX EXCLUSIFS : -# -# 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 -# - regles=( UN_PARMI('ADAPTATION','UNIFORME','INFORMATION'),), - 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="Information sur un maillage", - ang="Information on a mesh", - into=("OUI",) ), -# -# 6.2. LES CONTRAINTES : -# -# 6.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 -# -# 6.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 -# -# 6.2.3. 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 ) ", - 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 =BLOC(condition = "( UNIFORME != None ) or ( ADAPTATION != None ) ", - fr="Nom MED du maillage en sortie, numero d'iteration", - ang="MED name of the out-mesh, iteration rank", - 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" ), - ) , -# - b_indicateur_d_erreur =BLOC(condition = "ADAPTATION != None", - fr="Indicateur d'erreur", - ang="Error indicator", - regles=(EXCLUS('NUME_ORDRE','INST'), - EXCLUS('NUME_ORDRE','RESULTAT'), - PRESENT_PRESENT('RESULTAT','NOM_CHAM'),), - NOM_MED =SIMP(statut='o',typ='TXM', - fr="Nom MED de l'indicateur d'erreur.", - ang="MED name of error indicator.",), - COMPOSANTE =SIMP(statut='o',typ='TXM', - fr="Nom de la composante de l'indicateur d'erreur retenue.", - ang="Name of the selected component of the error indicator.",), - NUME_ORDRE =SIMP(statut='f',typ='I', - fr="Numero d'ordre de l'indicateur.", - ang="Rank number of the error indicator.",), - INST =SIMP(statut='f',typ='R', - fr="Instant de l'indicateur.", - ang="Instant of the error indicator.",), - b_precision =BLOC(condition="(INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3, - fr="Précision sur le choix de l'instant associé", - ang="Accuracy over instant choice" ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), - fr="Critère de précision sur le choix de l'instant associé", - ang="Accuracy criterium over instant choice" ),), - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther), - fr="Concept contenant l'indicateur.", - ang="Conceipt wich contains the error indicator.",), - NOM_CHAM =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' )" , - NIVE_MAX =SIMP(statut='f',typ='I', - fr="Niveau maximum de profondeur de raffinement", - ang="Maximum level for refinement"), - ) , -# - b_niveau_minimum =BLOC ( condition = " ( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'DERAFFINEMENT' ) or \ - ( UNIFORME == 'DERAFFINEMENT' )" , - NIVE_MIN =SIMP(statut='f',typ='I', - fr="Niveau minimum de déraffinement", - ang="Minimum level for unrefinement" ), - ) , -# -# 6.3. Le suivi de frontiere eventuel : -# - NOM_MED_MAILLAGE_FRONTIERE =SIMP(statut='f',typ='TXM', - fr="Nom MED du maillage de la frontiere à suivre", - ang="MED name of the boundary mesh" ), -# - b_frontiere_1 =BLOC ( condition = "NOM_MED_MAILLAGE_FRONTIERE != None" , - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', - fr="Groupes définissant la frontière", - ang="Groups which define the boundary" ), - ) , -# - ), -# -# 7. Mise à jour de champs sur le nouveau maillage -# - MAJ_CHAM =FACT(statut='f',max='**', - fr="Mise à jour de champs sur le nouveau maillage.", - ang="Updating of fields over the new mesh.", - regles=(EXCLUS('NUME_ORDRE','INST'), - EXCLUS('NUME_ORDRE','RESULTAT'), - PRESENT_PRESENT('RESULTAT','NOM_CHAM'),), - NOM_MED =SIMP(statut='o',typ='TXM', - fr="Nom MED du champ à mettre à jour.", - ang="MED name of field.",), - NUME_ORDRE =SIMP(statut='f',typ='I', - fr="Numero d'ordre du champ à mettre à jour.", - ang="Rank number of field.",), - INST =SIMP(statut='f',typ='R', - fr="Instant du champ à mettre à jour.", - ang="Instant of field.",), - b_precision =BLOC(condition="(INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3, - fr="Précision sur le choix de l'instant associé", - ang="Accuracy over instant choice" ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), - fr="Critère de précision sur le choix de l'instant associé", - ang="Accuracy criterium over instant choice" ),), - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther), - fr="Concept contenant le champ à mettre à jour.", - ang="Conceipt wich contains the field.",), - NOM_CHAM =SIMP(statut='f',typ='TXM', - fr="Nom du champ dans le résultat du champ à mettre à jour.", - ang="Name of the field.",), - ), -# -# 8. L'ANALYSE DU MAILLAGE -# - ANALYSE =FACT(statut='f', - fr="Analyse du maillage.", - ang="Mesh analysis.", -# -# 5 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="OUI",into=("OUI","NON"), - fr="Qualité du maillage", - ang="Mesh quality" ), -# - INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), - fr="Controle de la non interpénétration des éléments.", - ang="Overlapping checking." ), -# - CONNEXITE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), - fr="Connexité du maillage.", - ang="Mesh connexity." ), -# - TAILLE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), - fr="Tailles des sous-domaines du maillage.", - ang="Sizes of mesh sub-domains." ), -# - ), -# -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE MCOURTOI M.COURTOIS -from Macro.impr_fonction_ops import impr_fonction_ops - -IMPR_FONCTION=MACRO(nom="IMPR_FONCTION",op=impr_fonction_ops,sd_prod=None, - fr="Imprime le contenu d'objets de type fonction ou liste de réels dans un fichier destiné à un traceur de courbe", - UIinfo={"groupes":("Fonction",)}, - FORMAT =SIMP(statut='o',typ='TXM',position='global',defaut='TABLEAU', - into=("TABLEAU","AGRAF","XMGRACE",),), - b_pilote = BLOC(condition = "FORMAT == 'XMGRACE'", - fr="Mots-clés propres à XMGRACE", - PILOTE =SIMP(statut='f',typ='TXM',defaut='', - into=('','POSTSCRIPT','EPS','MIF','SVG','PNM','PNG','JPEG','PDF','INTERACTIF'), - fr="Pilote de sortie, PNG/JPEG/PDF ne sont pas disponibles sur toutes les installations de xmgrace"), - UNITE =SIMP(statut='f',typ='I',val_min=10,val_max=90,defaut=29, - fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"), - ), - b_agraf = BLOC(condition = "FORMAT == 'AGRAF'", - fr="Mots-clés propres à AGRAF", - UNITE =SIMP(statut='o',typ='I',defaut=25, - fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"), - UNITE_DIGR =SIMP(statut='o',typ='I',defaut=26, - fr="Unité logique définissant le fichier dans lequel on écrit les directives Agraf"), - ), - # unite pour TABLEAU dans le bloc de mise en forme spécifique - - COURBE =FACT(statut='o',max='**',fr="Définition de la fonction à tracer", - regles=(UN_PARMI('FONCTION','LIST_RESU','FONC_X','ABSCISSE'),), - FONCTION =SIMP(statut='f',typ=(fonction_sdaster, formule, fonction_c, nappe_sdaster), - fr="Fonction réelle ou complexe", ), - LIST_RESU =SIMP(statut='f',typ=listr8_sdaster, - fr="Liste des ordonnees d'une fonction réelle définie par deux listes", ), - FONC_X =SIMP(statut='f',typ=(fonction_sdaster,formule), - fr="Fonction abscisses d'une fonction paramétrique",), - ABSCISSE =SIMP(statut='f',typ='R',max='**', - fr="Valeurs des abscisses", ), - b_fonction =BLOC(condition = "FONCTION != None", - LIST_PARA =SIMP(statut='f',typ=listr8_sdaster ), - ), - b_fonction_c =BLOC(condition = "AsType(FONCTION) == fonction_c", - fr="Fonction complexe définie par le mot-clé fonction", - PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ), - ), - b_list_resu =BLOC(condition = "LIST_RESU != None", - LIST_PARA =SIMP(statut='o',typ=listr8_sdaster ), - ), - b_fonc_x =BLOC(condition = "FONC_X != None", - FONC_Y =SIMP(statut='o',typ=(fonction_sdaster,formule),fr="Fonction ordonnées d une fonction paramétrique" ), - LIST_PARA =SIMP(statut='f',typ=listr8_sdaster ), - ), - b_vale_resu =BLOC(condition = "ABSCISSE != None", - ORDONNEE =SIMP(statut='o',typ='R',max='**', - fr="Valeurs des ordonnées"), - ), - - # le bloc n'est pas activé (vide) car position n'est pas pris en compte - b_forme =BLOC(condition = "FORMAT != 'TABLEAU'", - fr="Données de mise en forme de la fonction (cf. doc)", - ), - LEGENDE =SIMP(statut='f',typ='TXM', - fr="Légende associée à la fonction" ), - STYLE =SIMP(statut='f',typ='I',val_min=0, - fr="Style de la ligne représentant la fonction",), - COULEUR =SIMP(statut='f',typ='I',val_min=0, - fr="Couleur associée à la fonction",), - MARQUEUR =SIMP(statut='f',typ='I',val_min=0, - fr="Type du marqueur associé à la fonction",), - FREQ_MARQUEUR =SIMP(statut='f',typ='I',defaut=0, - fr="Fréquence d impression du marqueur associé à la fonction", ), - # fin bloc b_forme - TRI =SIMP(statut='f',typ='TXM',defaut="N", - fr="Choix du tri effectué sur les abscisses ou sur les ordonnées", - into=("N","X","Y","XY","YX") ), - ), - # Mise en page du tableau ou du graphique - b_tableau = BLOC(condition = "FORMAT == 'TABLEAU'", - fr="Mots-clés propres au format Tableau", - UNITE =SIMP(statut='o',typ='I',defaut=8, - fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"), - TITRE =SIMP(statut='f',typ='TXM', - fr="Titre associé au graphique" ), - SOUS_TITRE =SIMP(statut='f',typ='TXM', - fr="Sous-titre du graphique" ), - SEPARATEUR =SIMP(statut='f',typ='TXM',defaut=' ', - fr="Séparateur des colonnes du tableau (ex : ' ', ';'...)"), - COMMENTAIRE =SIMP(statut='f',typ='TXM',defaut='#', - fr="Caractère indiquant au traceur de fonction que la ligne peut etre ignorée"), - DEBUT_LIGNE =SIMP(statut='f',typ='TXM',defaut='', - fr="Caractère de debut de ligne"), - FIN_LIGNE =SIMP(statut='f',typ='TXM',defaut='\n', - fr="Caractère de fin de ligne"), - ), - b_graphique = BLOC(condition = "FORMAT != 'TABLEAU'", - fr="Mise en page du graphique", - TITRE =SIMP(statut='f',typ='TXM', - fr="Titre associé au graphique" ), - SOUS_TITRE =SIMP(statut='f',typ='TXM', - fr="Sous-titre du graphique" ), - BORNE_X =SIMP(statut='f',typ='R',min=2,max=2, - fr="Intervalles de variation des abscisses"), - BORNE_Y =SIMP(statut='f',typ='R',min=2,max=2, - fr="Intervalles de variation des ordonnées"), - ECHELLE_X =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"), - fr="Type d'échelle pour les abscisses" ), - ECHELLE_Y =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"), - fr="Type d'échelle pour les ordonnées" ), - GRILLE_X =SIMP(statut='f',typ='R',max=1,val_min=0., - fr="Pas du quadrillage vertical" ), - GRILLE_Y =SIMP(statut='f',typ='R',max=1,val_min=0., - fr="Pas du quadrillage horizontal" ), - LEGENDE_X =SIMP(statut='f',typ='TXM', - fr="Légende associée à l'axe des abscisses" ), - LEGENDE_Y =SIMP(statut='f',typ='TXM', - fr="Légende associée à l'axe des ordonnées" ), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 12/09/2005 AUTEUR NICOLAS O.NICOLAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_GENE=PROC(nom="IMPR_GENE",op= 157, - fr="Imprimer le résultat d'un calcul dynamique en variables généralisées au format RESULTAT", - UIinfo={"groupes":("Impression",)}, - FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT",into=("RESULTAT",) ), - UNITE =SIMP(statut='f',typ='I',defaut=8), - GENE =FACT(statut='o',max='**', - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'LIST_INST','LIST_FREQ','TOUT_MODE','TOUT_INST','LIST_ORDRE'), - EXCLUS('TOUT_MODE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'LIST_INST','LIST_FREQ','TOUT_ORDRE','TOUT_INST','LIST_ORDRE'), - EXCLUS('TOUT_INST','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'LIST_INST','LIST_FREQ','TOUT_ORDRE','LIST_ORDRE'), - EXCLUS('TOUT_CMP_GENE','NUME_CMP_GENE'), - EXCLUS('TOUT_CHAM','NOM_CHAM'), - EXCLUS('TOUT_PARA','NOM_PARA'),), -# faut-il faire des blocs selon le type de RESU_GENE - RESU_GENE =SIMP(statut='o',typ=(vect_asse_gene_r, tran_gene, mode_gene, harm_gene)), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), - TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), - TOUT_MODE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", - into=("RELATIF","ABSOLU") ), - TOUT_CMP_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NUME_CMP_GENE =SIMP(statut='f',typ='I',max='**'), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NOM_CHAM =SIMP(statut='f',typ='TXM',max='**'), - TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NOM_PARA =SIMP(statut='f',typ='TXM',max='**'), - SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO_CMP_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - INFO_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_JEVEUX=PROC(nom="IMPR_JEVEUX",op=16, - UIinfo={"groupes":("Impression",)}, - fr="Imprimer le contenu des objets créés par JEVEUX (pour développeur)", - ENTITE =SIMP(fr="choix de l'observation",statut='o',typ='TXM', - into=("DISQUE","MEMOIRE","REPERTOIRE", - "OBJET","ATTRIBUT","SYSTEME") ), - b_objet =BLOC(condition = "(ENTITE=='OBJET')", - NOMOBJ =SIMP(fr="nom d'objet",statut='f',typ='TXM' ), - NUMOC =SIMP(fr="numéro d objet de collection",statut='f',typ='I' ), - NOMOC =SIMP(fr="nom d'objet de collection",statut='f',typ='TXM' ), - ), - b_attribut =BLOC(condition = "(ENTITE=='ATTRIBUT')", - NOMOBJ =SIMP(fr="nom de collection",statut='f',typ='TXM' ), - NOMATR =SIMP(fr="nom d attribut de collection",statut='f',typ='TXM', - into=('$$DESO','$$IADD','$$IADM','$$NOM','$$LONG', - '$$LONO','$$LUTI','$$NUM') ), - ), - b_systeme =BLOC(condition = "(ENTITE=='SYSTEME')", - CLASSE =SIMP(statut='o',typ='TXM',into=('G','V','L') ), - NOMATR =SIMP(fr="nom d attribut systeme",statut='f',typ='TXM', - into=('$$CARA','$$IADD','$$GENR','$$TYPE','$$MARQ', - '$$DOCU','$$ORIG','$$RNOM','$$LTYP','$$LONG', - '$$LONO','$$DATE','$$LUTI','$$HCOD','$$INDX', - '$$TLEC','$$TECR','$$IADM','$$ACCE','$$USADI') ), - ), - b_repertoire =BLOC(condition = "(ENTITE=='REPERTOIRE')", - CLASSE =SIMP(statut='f',typ='TXM',into=('G','V','L',' '),defaut=' '), - ), - b_disque =BLOC(condition = "(ENTITE=='DISQUE')", - CLASSE =SIMP(statut='f',typ='TXM' ,into=('G','V','L',' '),defaut=' '), - ), - IMPRESSION =FACT(statut='f', - NOM =SIMP(statut='f',typ='TXM' ), - UNITE =SIMP(statut='f',typ='I'), - ), - COMMENTAIRE =SIMP(statut='f',typ='TXM' ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_MACR_ELEM=PROC(nom="IMPR_MACR_ELEM",op= 160, - UIinfo={"groupes":("Impression",)}, - fr="Impression d'une structure de données MACR_ELEM_DYNA au format IDEAS MISS3D PLEXUS ou CADYRO", - MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS", - into=("MISS_3D","IDEAS","CADYRO","PLEXUS") ), - - b_plexus =BLOC(condition = "FORMAT == 'IDEAS'", - UNITE =SIMP(statut='f',typ='I',defaut=30), - VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ), - ), - - b_ideas =BLOC(condition = "FORMAT == 'PLEXUS'", - UNITE =SIMP(statut='f',typ='I',defaut=30), - VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ), - ), - - b_miss_3d =BLOC(condition = "FORMAT == 'MISS_3D'", - regles=(EXCLUS('AMOR_REDUIT','LIST_AMOR'),), - UNITE =SIMP(statut='f',typ='I',defaut= 26 ), - SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'), - AMOR_REDUIT =SIMP(statut='f',typ='R' ,max='**'), - LIST_AMOR =SIMP(statut='f',typ=listr8_sdaster ), - GROUP_MA_INTERF =SIMP(statut='o',typ=grma ,max='**'), - GROUP_MA_FLU_STR=SIMP(statut='f',typ=grma,max='**'), - GROUP_MA_FLU_SOL=SIMP(statut='f',typ=grma,max='**'), - GROUP_MA_SOL_SOL=SIMP(statut='f',typ=grma,max='**'), - IMPR_MODE_MECA =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - IMPR_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - - b_cadyro =BLOC(condition = "FORMAT == 'CADYRO'", - SQUELETTE =SIMP(statut='f',typ=squelette ), - UNITE_MODE_MECA =SIMP(statut='f',typ='I',defaut= 26 ), - UNITE_MODE_STAT =SIMP(statut='f',typ='I',defaut= 27 ), - UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut= 28 ), - IMPR_MODE_MECA =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - IMPR_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_MATRICE=PROC(nom="IMPR_MATRICE",op= 159, - fr="Imprimer sur un fichier au format IDEAS ou RESULTAT des matrices élémentaires et assemblées", - UIinfo={"groupes":("Impression",)}, - regles=(AU_MOINS_UN('MATR_ELEM','MATR_ASSE'),), -# ====================================================================== - MATR_ELEM =FACT(statut='f',max='**', -# - MATRICE =SIMP(statut='o',typ=(matr_elem, vect_elem)), - FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS", - into=("IDEAS","RESULTAT") ), -# - b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="unité logique d'impression et version IDEAS", - UNITE =SIMP(statut='f',typ='I',defaut=30), - VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,), ), ), -# - b_format_resultat =BLOC(condition="FORMAT=='RESULTAT'",fr="unité logique d'impression au format RESULTAT", - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),), - UNITE =SIMP(statut='f',typ='I',defaut=8), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - GRAIN =SIMP(statut='f',typ='TXM',defaut="VALEUR",into=("VALEUR","NOEUD","MAILLE") ), - NB_CHIFFRE =SIMP(statut='f',typ='I',defaut= 4 ), ), - ), -# ====================================================================== - MATR_ASSE =FACT(statut='f',max='**', -# - MATRICE =SIMP(statut='o',typ=matr_asse_gd), - FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS","RESULTAT") ), -# - b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="unité logique d'impression et version IDEAS", - UNITE =SIMP(statut='f',typ='I',defaut=30), - VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,), ), ), -# - b_format_resultat =BLOC(condition="FORMAT=='RESULTAT'",fr="unité logique d'impression au format RESULTAT", - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),), - UNITE =SIMP(statut='f',typ='I',defaut=8), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), - OPTION =SIMP(statut='f',typ='TXM',defaut="SOUS_MATRICE",into=("SOUS_MATRICE","LIGNE","COLONNE") ), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - GRAIN =SIMP(statut='f',typ='TXM',defaut="VALEUR",into=("VALEUR","NOEUD") ), - NB_CHIFFRE =SIMP(statut='f',typ='I',defaut= 4 ), - VALE_ZERO =SIMP(statut='f',typ='R',defaut= 0.E+0 ), ), - ), -# ====================================================================== -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_MISS_3D=PROC(nom="IMPR_MISS_3D",op= 162, - UIinfo={"groupes":("Impression",)}, - fr="Impression des données d'entrée pour une étude sismique avec MISS3D", - regles=(UN_PARMI('INST_INIT','FREQ_INIT'), - PRESENT_PRESENT('INST_INIT','INST_FIN'), - PRESENT_PRESENT('FREQ_INIT','FREQ_FIN'),), - MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ), - EXCIT =FACT(statut='f',max='**', - regles=(UN_PARMI('FONC_MULT','COEF_MULT' ),), - VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - COEF_MULT =SIMP(statut='f',typ='R' ), - ), - EXCIT_SOL =FACT(statut='f',max='**', - DIRECTION =SIMP(statut='o',typ='R',min=3,max=3), - FONC_SIGNAL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL", - into=("DEPL","VITE","ACCE","FORC",) ), - ), - INST_INIT =SIMP(statut='f',typ='R' ), - INST_FIN =SIMP(statut='f',typ='R' ), - FREQ_INIT =SIMP(statut='f',typ='R' ), - FREQ_FIN =SIMP(statut='f',typ='R' ), - PAS =SIMP(statut='o',typ='R' ), - UNITE =SIMP(statut='f',typ='I',defaut= 26 ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 16/06/2004 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE D6BHHAM A.M.DONORE -# -IMPR_OAR =PROC(nom="IMPR_OAR",op= 40, - fr="Impression au format OAR", - UIinfo={"groupes":("Impression",)}, - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - MAILLE =SIMP(statut='o',typ=ma ,validators=NoRepeat(),max=2 ), - NOEUD =SIMP(statut='o',typ=no ,validators=NoRepeat() ), - - CHARGE =FACT(statut='o',max='**', - - NUM_CHAR =SIMP(statut='o',typ='I'), - TEMP_NOEUD =SIMP(statut='f',typ='R',defaut=20.), - TYPE =SIMP(statut='f',typ='TXM',defaut="DILA", - into=("POIDS","DILA","SEISME","DEPL","EFFO","STRATIF","CONDITIONNEL","COMBINAISON") ), - NATURE =SIMP(statut='f',typ='TXM',defaut="PRIMAIRE", - into=("PRIMAIRE","SECONDAIRE","TOTAL") ), - SIGNE =SIMP(statut='f',typ='TXM',defaut="S", - into=("S","NS") ), - RESULTAT =SIMP(statut='o',typ=resultat_sdaster),# CO() sd a creer !!! - ), - - - UNITE =SIMP(statut='f',typ='I',defaut=38), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 05/09/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_RESU=PROC(nom="IMPR_RESU",op=39, - UIinfo={"groupes":("Impression",)}, - fr="Imprimer un maillage et/ou les résultats d'un calcul (différents formats)", - MODELE =SIMP(statut='f',typ=modele_sdaster), - - FORMAT =SIMP(statut='f',typ='TXM',position='global',defaut="RESULTAT", - into=("RESULTAT","IDEAS","ASTER","CASTEM","ENSIGHT","MED","GMSH") ), - - b_format_resultat =BLOC(condition="FORMAT=='RESULTAT'",fr="unité logique d'impression au format RESULTAT", - UNITE =SIMP(statut='f',typ='I',defaut=8), - ), - - b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="unité logique d'impression et version IDEAS", - UNITE =SIMP(statut='f',typ='I',defaut=30), - VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), - ), - - b_format_aster =BLOC(condition="FORMAT=='ASTER'",fr="unité logique d'impression au format ASTER", - UNITE =SIMP(statut='f',typ='I',defaut=26), - ), - - b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="unité logique d'impression et version CASTEM", - UNITE =SIMP(statut='f',typ='I',defaut=37), - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)), - ), - - b_format_ensight =BLOC(condition="FORMAT=='ENSIGHT'",fr="unité logique d'impression au format ENSIGHT", - UNITE =SIMP(statut='f',typ='I',defaut=31), - ), - - b_format_med =BLOC(condition="FORMAT=='MED'",fr="unité logique d'impression au format MED", - UNITE =SIMP(statut='f',typ='I',defaut=80), - ), - - b_format_gmsh =BLOC(condition="FORMAT=='GMSH'",fr="unité logique d'impression et version GMSH", - UNITE =SIMP(statut='f',typ='I',defaut=19), - VERSION =SIMP(statut='f',typ='R',defaut=1.2,into=(1.0,1.2)), - ), - - RESU =FACT(statut='o',max='**', - - regles=(AU_MOINS_UN('CHAM_GD','RESULTAT','MAILLAGE'), - EXCLUS('CHAM_GD','RESULTAT'),), - MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster,squelette)), - INFO_MAILLAGE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - CHAM_GD =SIMP(statut='f',typ=cham_gd_sdaster), - RESULTAT =SIMP(statut='f',typ=resultat_sdaster),# CO() sd a creer !!! - - b_sensibilite =BLOC(condition="RESULTAT != None", - fr="Définition des paramètres de sensibilité", - ang="Definition of sensitivity parameters", - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"),), - - b_partie =BLOC(condition="""((AsType(RESULTAT)==dyna_harmo) or (AsType(CHAM_GD)==cham_elem_epsi_c) - or (AsType(CHAM_GD)==cham_elem_depl_c) or (AsType(CHAM_GD)==cham_elem_sief_c) or - (AsType(CHAM_GD)==cham_no_depl_c) or (AsType(CHAM_GD)==cham_no_pres_c) or - (AsType(CHAM_GD)==cham_no_temp_c)) and ((FORMAT=='CASTEM') or (FORMAT=='GMSH'))""", - PARTIE =SIMP(statut='o',typ='TXM',into=("REEL","IMAG") ), - ), - b_extrac =BLOC(condition="RESULTAT != None", - fr="extraction d un champ de grandeur", - regles=(EXCLUS('TOUT_CHAM','NOM_CHAM'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP', - 'LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS','ANGL'),), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO()), - - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - ANGL =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - - b_acce_reel =BLOC(condition="(FREQ != None)or(LIST_FREQ != None)or(INST != None)or(LIST_INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - ), -### - b_parametres =BLOC(condition="""(RESULTAT != None)and(FORMAT == 'RESULTAT')""", - regles=(EXCLUS('TOUT_PARA','NOM_PARA'),), - INFO_RESU =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI","NON",) ), - NOM_PARA =SIMP(statut='f',typ='TXM',max='**'), - FORM_TABL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON","EXCEL") ), - ), -### - b_cmp=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and\ - ((FORMAT == 'CASTEM')or(FORMAT == 'RESULTAT')or(FORMAT == 'IDEAS')or(FORMAT == 'ENSIGHT')or(FORMAT == 'MED'))""", - fr="sélection des composantes", - regles=(EXCLUS('TOUT_CMP','NOM_CMP'),), - TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - ), -### - b_gmsh=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and((FORMAT == 'GMSH'))""", - fr="sélection des composantes et des entités toplogiques", - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), -### - b_topologie=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and\ - ((FORMAT == 'RESULTAT')or(FORMAT == 'IDEAS')or(FORMAT == 'MED'))""", - fr="sélection des entités topologiques", - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), -### - b_valeurs=BLOC(condition="(FORMAT == 'RESULTAT')", - fr="sélection sur les valeurs", - VALE_MAX =SIMP(statut='f',typ='TXM',into=("OUI",) ), - VALE_MIN =SIMP(statut='f',typ='TXM',into=("OUI",) ), - BORNE_SUP =SIMP(statut='f',typ='R'), - BORNE_INF =SIMP(statut='f',typ='R'), - IMPR_COOR =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - FORMAT_R =SIMP(statut='f',typ='TXM',defaut="1PE12.5"), - ), - - SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_STURM=PROC(nom="IMPR_STURM",op=32,fr="Calculer et imprimer le nombre de valeurs propres dans un intervalle donné", - UIinfo={"groupes":("Résolution",)}, - MATR_A =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ), - MATR_B =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ), - TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE",into=("MODE_FLAMB","DYNAMIQUE"), - fr="Type d analyse" ), - b_dynamique =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'", - fr="Recheche du nombre de fréquences propres", - FREQ_MIN =SIMP(statut='f',typ='R',defaut= 0.E+0 ,fr="Borne inférieure de l intervalle" ), - FREQ_MAX =SIMP(statut='o',typ='R',fr="Borne supérieure de l intervalle" ), - ), - b_mode_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'", - fr="Recherche du nombre de charges critiques", - CHAR_CRIT_MIN =SIMP(statut='o',typ='R',fr="Borne inférieure de l intervalle" ), - CHAR_CRIT_MAX =SIMP(statut='o',typ='R',fr="Borne supérieure de l intervalle" ), - ), - NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8 ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ), - UNITE =SIMP(statut='f',typ='I',defaut=8), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2 ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE MCOURTOI M.COURTOIS -from Macro.impr_table_ops import impr_table_ops - -IMPR_TABLE=MACRO(nom="IMPR_TABLE",op=impr_table_ops,sd_prod=None, - UIinfo={"groupes":("Impression",)}, - fr="Impression du contenu d'une table dans un fichier", - TABLE =SIMP(statut='o',typ=table_sdaster), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"), - FORMAT =SIMP(statut='f',typ='TXM',defaut="TABLEAU", - into=("TABLEAU","ASTER","TABLEAU_CROISE","AGRAF","XMGRACE",),), - b_pilote =BLOC(condition = "FORMAT == 'XMGRACE'", - fr="Mots-clés propres à XMGRACE", - PILOTE =SIMP(statut='f',typ='TXM',defaut='', - into=('','POSTSCRIPT','EPS','MIF','SVG','PNM','PNG','JPEG','PDF','INTERACTIF'), - fr="Pilote de sortie, PNG/JPEG/PDF ne sont pas disponibles sur toutes les installations de xmgrace"), - UNITE =SIMP(statut='f',typ='I',val_min=10,val_max=90,defaut=29, - fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"), - ), - b_unite =BLOC(condition = "FORMAT != 'XMGRACE'", - UNITE =SIMP(statut='f',typ='I',defaut=8, - fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"), - ), - FILTRE =FACT(statut='f',max='**', - NOM_PARA =SIMP(statut='o',typ='TXM'), - CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ", - into=("EQ","LT","GT","NE","LE","GE","VIDE", - "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI"),), - b_vale =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))", - regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),), - VALE =SIMP(statut='f',typ='R'), - VALE_I =SIMP(statut='f',typ='I'), - VALE_C =SIMP(statut='f',typ='C'), - VALE_K =SIMP(statut='f',typ='TXM'), - ), - b_crit =BLOC(condition = "CRIT_COMP in ('EQ','NE')", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ), - ), - TRI =FACT(statut='f', - NOM_PARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'), - ORDRE =SIMP(statut='f',typ='TXM',defaut="CROISSANT", # max='**', - into=("CROISSANT","DECROISSANT") ), - ), - PAGINATION =SIMP(statut='f',typ='TXM',max='**'), - FORMAT_R =SIMP(statut='f',typ='TXM',defaut="E12.5"), - FORMAT_C =SIMP(statut='f',typ='TXM',defaut="MODULE_PHASE", - into=("MODULE_PHASE","REEL_IMAG") ), - NOM_PARA =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - IMPR_FONCTION =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - - # mise en forme pour les formats qui passent par Graph - b_forme =BLOC(condition = "FORMAT == 'XMGRACE'", - fr="Données de mise en forme du graphique", - # pour la courbe - LEGENDE =SIMP(statut='f',typ='TXM', - fr="Légende associée à la fonction" ), - STYLE =SIMP(statut='f',typ='I',val_min=0, - fr="Style de la ligne représentant la fonction",), - COULEUR =SIMP(statut='f',typ='I',val_min=0, - fr="Couleur associée à la fonction",), - MARQUEUR =SIMP(statut='f',typ='I',val_min=0, - fr="Type du marqueur associé à la fonction",), - FREQ_MARQUEUR =SIMP(statut='f',typ='I',defaut=0, - fr="Fréquence d impression du marqueur associé à la fonction", ), - # format du graphique - BORNE_X =SIMP(statut='f',typ='R',min=2,max=2, - fr="Intervalles de variation des abscisses"), - BORNE_Y =SIMP(statut='f',typ='R',min=2,max=2, - fr="Intervalles de variation des ordonnées"), - ECHELLE_X =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"), - fr="Type d'échelle pour les abscisses" ), - ECHELLE_Y =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"), - fr="Type d'échelle pour les ordonnées" ), - GRILLE_X =SIMP(statut='f',typ='R',max=1,val_min=0., - fr="Pas du quadrillage vertical" ), - GRILLE_Y =SIMP(statut='f',typ='R',max=1,val_min=0., - fr="Pas du quadrillage horizontal" ), - LEGENDE_X =SIMP(statut='f',typ='TXM', - fr="Légende associée à l'axe des abscisses" ), - LEGENDE_Y =SIMP(statut='f',typ='TXM', - fr="Légende associée à l'axe des ordonnées" ), - ), - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -INCLUDE=MACRO(nom="INCLUDE",op=ops.build_include, - UIinfo={"groupes":("Gestion du travail",)}, - fr="Débranchement vers un fichier de commandes secondaires", - sd_prod=ops.INCLUDE,op_init=ops.INCLUDE_context,fichier_ini=1, - UNITE = SIMP(statut='o',typ='I'), - INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -); -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -INCLUDE_MATERIAU=MACRO(nom="INCLUDE_MATERIAU",op=-14, - UIinfo={"groupes":("Modélisation",)}, - fr="Récupérer les caractéristiques d'un matériau dans le Catalogue Materiaux d'Aster ", - sd_prod=ops.INCLUDE_MATERIAU,op_init=ops.INCLUDE_context,fichier_ini=0, - NOM_AFNOR =SIMP(statut='o',typ='TXM' ), - TYPE_MODELE =SIMP(statut='o',typ='TXM',into=("REF","PAR") ), - VARIANTE =SIMP(statut='o',typ='TXM', - into=("A","B","C","D","E","F","G","H","I","J", - "K","L","M","N","O","P","Q","R","S","T","U","V", - "W","X","Y","Z",) ), - TYPE_VALE =SIMP(statut='o',typ='TXM',into=("NOMI","MINI","MAXI") ), - NOM_MATER =SIMP(statut='o',typ='TXM' ), - UNITE =SIMP(statut='f',typ='I',defaut= 32 ), - EXTRACTION =FACT(statut='f',max=99, - COMPOR =SIMP(statut='o',typ='TXM' ), - TEMP_EVAL =SIMP(statut='o',typ='R' ), - ), - UNITE_LONGUEUR =SIMP(statut='f',typ='TXM',into=("M","MM"),defaut="M" ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE D6BHHJP J.P.LEFEBVRE -INFO_EXEC_ASTER=OPER(nom="INFO_EXEC_ASTER",op=35,sd_prod=table_sdaster, - fr="Récupère différentes informations propres à l'exécution en cours", - reentrant='n', - UIinfo={"groupes":("Gestion du travail",)}, - - regles=(), - LISTE_INFO =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=3, - into=("CPU_RESTANT","UNITE_LIBRE","ETAT_UNITE"),), - b_etat_unite =BLOC(condition = "'ETAT_UNITE' in LISTE_INFO", - regles=(UN_PARMI('UNITE','FICHIER'),), - UNITE =SIMP(statut='f',typ='I',val_min=1,val_max=99,max=1, - fr="Unité logique dont on veut obtenir l'état",), - FICHIER =SIMP(statut='f',typ='TXM',validators=LongStr(1,255), - fr="Nom du fichier dont on veut obtenir l'état",), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 24/05/2005 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -from Macro.info_fonction_ops import info_fonction_ops -def info_fonction_prod(self,ECART_TYPE,RMS,NOCI_SEISME,MAX,NORME, **args): - if (RMS != None): return table_sdaster - if (MAX != None): return table_sdaster - if (NOCI_SEISME != None): return table_sdaster - if (ECART_TYPE != None): return table_sdaster - if (NORME != None): return table_sdaster - raise AsException("type de concept resultat non prevu") - -INFO_FONCTION=MACRO(nom="INFO_FONCTION",op=info_fonction_ops,sd_prod=info_fonction_prod - ,fr="Opérations mathématiques sur des concepts de type fonction, fonction_c ou nappe", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - regles=(UN_PARMI('MAX','RMS','NOCI_SEISME','NORME','ECART_TYPE',),), - RMS =FACT(statut='f',fr="Valeur RMS d'une fonction",max='**', - METHODE =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ), - FONCTION =SIMP(statut='o',typ=fonction_sdaster ), - INST_INIT =SIMP(statut='f',typ='R',fr="Instant initial définissant le début du signal" ), - INST_FIN =SIMP(statut='f',typ='R',fr="Instant final définissant la fin du signal" ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3,val_min=0.E+0 ), - ), - NOCI_SEISME =FACT(statut='f', - regles=(UN_PARMI('FONCTION','SPEC_OSCI',),), - FONCTION =SIMP(statut='f',typ=fonction_sdaster ), - SPEC_OSCI =SIMP(statut='f',typ=nappe_sdaster ), - b_option_f =BLOC(condition="""FONCTION !=None""", - OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",validators=NoRepeat(),max='**', - into=("INTE_ARIAS","POUV_DEST","INTE_SPEC","VITE_ABSO_CUMU", - "DUREE_PHAS_FORT","MAXI","ACCE_SUR_VITE","TOUT",), ), - b_amor =BLOC(condition="""OPTION=="TOUT" or OPTION=="INTE_SPEC" """, - AMOR_REDUIT =SIMP(statut='o',typ='R'), ),), - b_option_n =BLOC(condition="""SPEC_OSCI !=None""", - OPTION =SIMP(statut='f',typ='TXM',defaut="INTE_SPEC",into=("INTE_SPEC",), ), - NATURE =SIMP(statut='o',typ='TXM',into=("DEPL","VITE","ACCE") ), - AMOR_REDUIT =SIMP(statut='o',typ='R'), ), - INST_INIT =SIMP(statut='f',typ='R'), - INST_FIN =SIMP(statut='f',typ='R'), - COEF =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - PESANTEUR =SIMP(statut='f',typ='R',defaut= 9.81E+0 ), - FREQ_INIT =SIMP(statut='f',typ='R',defaut= 4.E-1 ), - FREQ_FIN =SIMP(statut='f',typ='R',defaut= 10.E+0 ), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), - FREQ =SIMP(statut='f',typ='R',max='**'), - NORME =SIMP(statut='f',typ='R',defaut= 1.E+0 ), - BORNE_INF =SIMP(statut='f',typ='R',defaut= 0.05E+0 ), - BORNE_SUP =SIMP(statut='f',typ='R',defaut= 0.95E+0 ), - b_acce_reel =BLOC(condition="(INST_INIT != None)or(INST_FIN != None)or(FREQ_INIT != None)or(FREQ_FIN != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3,val_min=0.E+0), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - ), - MAX =FACT(statut='f',fr="Extrémas locaux d'une fonction", - FONCTION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster) ), - ), - NORME =FACT(statut='f',fr="Norme L2 d'une fonction", - FONCTION =SIMP(statut='o', typ=nappe_sdaster), - ), - ECART_TYPE =FACT(statut='f',fr="Ecart-type d'une fonction", - METHODE =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ), - FONCTION =SIMP(statut='o',typ=fonction_sdaster), - INST_INIT =SIMP(statut='f',typ='R',fr="Instant initial définissant le début du signal" ), - INST_FIN =SIMP(statut='f',typ='R',fr="Instant final définissant la fin du signal" ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3,val_min=0.E+0 ), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -INTE_MAIL_2D=OPER(nom="INTE_MAIL_2D",op=50,sd_prod=courbe_sdaster, - UIinfo={"groupes":("Post traitements",)}, - fr="Définition d'une courbe dans un maillage 2D",reentrant='n', - - MAILLAGE =SIMP(statut='o',typ=(maillage_sdaster) ), - - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('DEFI_SEGMENT','DEFI_ARC','DEFI_CHEMIN'), - PRESENT_ABSENT('DEFI_CHEMIN','DEFI_SEGMENT','DEFI_ARC'), - PRESENT_ABSENT('DEFI_SEGMENT','NOEUD_ORIG','GROUP_NO_ORIG'), - PRESENT_ABSENT('DEFI_ARC','NOEUD_ORIG','GROUP_NO_ORIG'), - EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'), - EXCLUS('DEFI_CHEMIN','DEFI_SEGMENT'), - EXCLUS('DEFI_CHEMIN','DEFI_ARC'),), - - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - - DEFI_SEGMENT =FACT(statut='f',max='**', - regles=(UN_PARMI('ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'), - UN_PARMI('EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),), - ORIGINE =SIMP(statut='f',typ='R',min=2,max=2), - NOEUD_ORIG =SIMP(statut='f',typ=no,), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), - EXTREMITE =SIMP(statut='f',typ='R',min=2,max=2), - NOEUD_EXTR =SIMP(statut='f',typ=no,), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno,), - ), - - DEFI_ARC =FACT(statut='f',max='**', - regles=(UN_PARMI('CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE'), - UN_PARMI('RAYON','ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'), - UN_PARMI('RAYON','EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'), - PRESENT_PRESENT('RAYON','SECTEUR'),), - CENTRE =SIMP(statut='f',typ='R',min=2,max=2), - NOEUD_CENTRE =SIMP(statut='f',typ=no,), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,), - RAYON =SIMP(statut='f',typ='R',val_min=0.E+0), - SECTEUR =SIMP(statut='f',typ='R',min=2,max=2, - val_min=-180.E+0,val_max=180E+0), - ORIGINE =SIMP(statut='f',typ='R',min=2,max=2), - NOEUD_ORIG =SIMP(statut='f',typ=no,), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), - EXTREMITE =SIMP(statut='f',typ='R',min=2,max=2), - NOEUD_EXTR =SIMP(statut='f',typ=no,), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno,), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", - into=("RELATIF","ABSOLU",) ), - ), - - DEFI_CHEMIN =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), - - NOEUD_ORIG =SIMP(statut='f',typ=no,), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -INTE_MAIL_3D=OPER(nom="INTE_MAIL_3D",op=96,sd_prod=surface_sdaster, - UIinfo={"groupes":("Post traitements",)}, - fr="Définir un chemin de type segment de droite dans un maillage 3D",reentrant='n', - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - DEFI_SEGMENT =FACT(statut='o',max='**', - regles=(UN_PARMI('ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'), - UN_PARMI('EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),), - ORIGINE =SIMP(statut='f',typ='R',min=3,max=3), - NOEUD_ORIG =SIMP(statut='f',typ=no,), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), - EXTREMITE =SIMP(statut='f',typ='R',min=3,max=3), - NOEUD_EXTR =SIMP(statut='f',typ=no,), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno,), - ), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def lire_champ_prod(TYPE_CHAM=None,**args): -# Remarque : si cette liste évolue, il faut penser à mettre à jour son -# homologue dans macr_adap_mail - import string -# - if TYPE_CHAM[0:5] == "NOEU_" : return eval("cham_no_"+string.lower(TYPE_CHAM[5:])) - if TYPE_CHAM == "ELEM_G_DEPL_R" : return cham_elem_g_depl - if TYPE_CHAM[0:5] == "ELEM_" : return eval("cham_elem_"+string.lower(TYPE_CHAM[5:])) - if TYPE_CHAM == "ELNO_G_DEPL_R" : return cham_elem_g_depl - if TYPE_CHAM[0:5] == "ELNO_" : return eval("cham_elem_"+string.lower(TYPE_CHAM[5:])) - if TYPE_CHAM == "ELGA_G_DEPL_R" : return cham_elem_g_depl - if TYPE_CHAM[0:5] == "ELGA_" : return eval("cham_elem_"+string.lower(TYPE_CHAM[5:])) - raise AsException("type de concept resultat non prevu") - -LIRE_CHAMP=OPER(nom="LIRE_CHAMP",op= 192,sd_prod=lire_champ_prod, - fr="Lire un champ dans un fichier au format MED et le stocker dans un concept.", - reentrant='n',UIinfo={"groupe":("Résultats et champs",)}, - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster,), - FORMAT =SIMP(statut='f',typ='TXM',defaut="MED",into=("MED",),), - UNITE =SIMP(statut='f',typ='I',defaut= 81,), - b_format =BLOC(condition = "FORMAT == 'MED'", - regles=( UN_PARMI('NOM_CMP_IDEM','NOM_CMP'), - PRESENT_PRESENT('NOM_CMP','NOM_CMP_MED' ), - EXCLUS('NUME_ORDRE','INST'), - EXCLUS('NUME_PT','INST'),), - NOM_MED =SIMP(statut='o',typ='TXM', ), - NOM_CMP_IDEM =SIMP(statut='f',typ='TXM',into=("OUI",), ), - NOM_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',), - NOM_CMP_MED =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',), - NUME_PT =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**',), - NUME_ORDRE =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**', - fr="Numero d ordre du champ à lire",ang="Rank of the field to be read" ), - INST =SIMP(statut='f',typ='R',fr="Instant associé",ang="Instant" ), -# - b_precision =BLOC(condition="(INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3, - fr="Précision sur le choix de l'instant associé",ang="Accuracy over instant choice" ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), - fr="Critère de précision sur le choix de l'instant associé", - ang="Accuracy criterium over instant choice" ),), -# - NOM_MAIL_MED =SIMP(statut='f',typ='TXM',), - ), -# Remarque : si cette liste évolue, il faut penser à mettre à jour son -# homologue dans macr_adap_mail - TYPE_CHAM =SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO()), - b_modele =BLOC(condition = "TYPE_CHAM!=None and TYPE_CHAM[0:2] == 'EL'", - MODELE =SIMP(statut='o',typ=modele_sdaster, ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.lire_fonction_ops import lire_fonction_ops - -def lire_fonction_prod(self,TYPE,**args): - if (TYPE == 'FONCTION') : return fonction_sdaster - elif (TYPE == 'FONCTION_C'): return fonction_c - elif (TYPE == 'NAPPE' ) : return nappe_sdaster - raise AsException("type de concept resultat non prevu") - -LIRE_FONCTION=MACRO(nom="LIRE_FONCTION",op=lire_fonction_ops,sd_prod=lire_fonction_prod, - fr="Lit les valeurs réelles dans un fichier de données représentant une fonction et" - +" crée un concept de type fonction ou nappe", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - FORMAT =SIMP(statut='f',typ='TXM',into=("LIBRE",),defaut="LIBRE" ), - TYPE =SIMP(statut='f',typ='TXM',into=("FONCTION","FONCTION_C","NAPPE"),defaut="FONCTION" ), - SEPAR =SIMP(statut='f',typ='TXM',into=("None",",",";","/"),defaut="None" ), - INDIC_PARA =SIMP(statut='f',typ='I',min=2,max=2,defaut=[1,1]), - b_fonction =BLOC(condition = "TYPE=='FONCTION' ", - INDIC_RESU =SIMP(statut='f',typ='I',min=2,max=2,defaut=[1,2]), ), - b_fonction_c =BLOC(condition = "TYPE=='FONCTION_C' ", - FORMAT_C =SIMP(statut='f',typ='TXM',defaut="REEL_IMAG",into=("REEL_IMAG","MODULE_PHASE") ), - b_reel_imag =BLOC(condition = "FORMAT_C=='REEL_IMAG' ", - INDIC_REEL =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,2]), - INDIC_IMAG =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,3]), ) , - b_modu_phas =BLOC(condition = "FORMAT_C=='MODULE_PHASE' ", - INDIC_MODU =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,2]), - INDIC_PHAS =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,3]), ), ), - b_nappe =BLOC(condition = "TYPE=='NAPPE' ", - NOM_PARA_FONC =SIMP(statut='o',typ='TXM',into=C_PARA_FONCTION() ), - INDIC_ABSCISSE =SIMP(statut='o',typ='I',min=2,max=2,), - INTERPOL_FONC =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - DEFI_FONCTION =FACT(statut='f',max='**', - INDIC_RESU =SIMP(statut='o',typ='I',min=2,max=2,),), ), - UNITE =SIMP(statut='o',typ='I' ), - NOM_PARA =SIMP(statut='o',typ='TXM',into=C_PARA_FONCTION() ), - NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - VERIF =SIMP(statut='f',typ='TXM',defaut="CROISSANT",into=("CROISSANT","NON") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 08/11/2005 AUTEUR ACBHHCD G.DEVESA -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -LIRE_FORC_MISS=OPER(nom="LIRE_FORC_MISS",op= 179,sd_prod=vect_asse_gene_c, - fr="Création d un vecteur assemblé à partir de base modale", - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - BASE =SIMP(statut='o',typ=base_modale ), - NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), - FREQ_EXTR =SIMP(statut='o',typ='R',max=1), - NOM_CMP =SIMP(statut='o',typ='TXM',into=("DX","DY","DZ") ), - NOM_CHAM =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE"),defaut="DEPL"), - UNITE_RESU_FORC =SIMP(statut='f',typ='I',defaut=30), -) ; - -#& MODIF COMMANDE DATE 08/11/2005 AUTEUR ACBHHCD G.DEVESA -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -LIRE_IMPE_MISS=OPER(nom="LIRE_IMPE_MISS",op= 164,sd_prod=matr_asse_gene_c, - fr="Création d une matrice assemblée à partir de base modale", - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - BASE =SIMP(statut='o',typ=base_modale ), - NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), - FREQ_EXTR =SIMP(statut='o',typ='R',max=1), - UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30), -) ; - -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.lire_inte_spec_ops import lire_inte_spec_ops - -LIRE_INTE_SPEC=MACRO(nom="LIRE_INTE_SPEC",op=lire_inte_spec_ops,sd_prod=tabl_intsp, - fr="Lecture sur un fichier externe de fonctions complexes pour créer une matrice interspectrale", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - UNITE =SIMP(statut='o',typ='I' ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="MODULE_PHASE",into=("REEL_IMAG","MODULE_PHASE") ), - NOM_PARA =SIMP(statut='f',typ='TXM',defaut="FREQ", - into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP", - "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC",) ), - NOM_RESU =SIMP(statut='f',typ='TXM',defaut="DSP" ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -LIRE_MAILLAGE=OPER(nom="LIRE_MAILLAGE",op= 1,sd_prod=maillage_sdaster, - fr="Crée un maillage par lecture d'un fichier au format Aster ou Med", - ang="Readings of a mesh file", - reentrant='n', - UIinfo={"groupes":("Maillage",)}, -# - UNITE =SIMP(statut='f',typ='I',defaut= 20 ), -# - FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","MED"), - fr="Format du fichier : ASTER ou MED.", - ang="Format of the file : ASTER or MED.",), -# - ABSC_CURV =FACT(statut='f',min=0, - TOUT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), -# - VERI_MAIL =FACT(statut='d', - VERIF =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - APLAT =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ), -# - b_format_med =BLOC( condition = " ( FORMAT == 'MED' ) " , - fr="Informations complémentaires pour la lecture MED.", - ang="Further information for MED readings.", -# -# Pour une lecture dans un fichier MED, on peut préciser le nom sous lequel -# le maillage y a été enregistré. Par défaut, on va le chercher sous le nom du concept à créer. -# - NOM_MED = SIMP(statut='f',typ='TXM', - fr="Nom du maillage dans le fichier MED.", - ang="Name of the mesh into the MED file.",), -# - INFO_MED = SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -# - ) , -# - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -# -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def lire_miss_3d_prod(TYPE_RESU,**args): - if TYPE_RESU == "TRANS" : return dyna_trans - if TYPE_RESU == "HARMO" : return dyna_harmo - raise AsException("type de concept resultat non prevu") - -LIRE_MISS_3D=OPER(nom="LIRE_MISS_3D",op= 163,sd_prod=lire_miss_3d_prod, - fr="Restituer sur base physique une réponse harmonique ou transitoire issue de MISS3D", - reentrant='n', - UIinfo={"groupes":("Maillage",)}, - MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ), - UNITE =SIMP(statut='f',typ='I',defaut= 27 ), - NOM =SIMP(statut='f',typ='TXM' ), - TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="TRANS",into=("TRANS","HARMO") ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -LIRE_PLEXUS=OPER(nom="LIRE_PLEXUS",op= 184,sd_prod=evol_char, - fr="Lire le fichier de résultats au format IDEAS produit par le logiciel EUROPLEXUS", - reentrant='n', - UIinfo={"groupes":("Maillage",)}, - regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),), - UNITE =SIMP(statut='f',typ='I',defaut= 19 ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS",)), - MAIL_PLEXUS =SIMP(statut='o',typ=maillage_sdaster ), - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), - b_prec_crit =BLOC(condition = "LIST_INST != None or INST != None", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", - into=("RELATIF","ABSOLU") ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 03/10/2005 AUTEUR NICOLAS O.NICOLAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET - -def lire_resu_prod(TYPE_RESU,**args): - if TYPE_RESU == "EVOL_CHAR" : return evol_char - if TYPE_RESU == "EVOL_THER" : return evol_ther - if TYPE_RESU == "EVOL_ELAS" : return evol_elas - if TYPE_RESU == "EVOL_NOLI" : return evol_noli - if TYPE_RESU == "DYNA_TRANS" : return dyna_trans - if TYPE_RESU == "DYNA_HARMO" : return dyna_harmo - if TYPE_RESU == "HARM_GENE" : return harm_gene - if TYPE_RESU == "MODE_MECA" : return mode_meca - if TYPE_RESU == "MODE_MECA_C" : return mode_meca_c - raise AsException("type de concept resultat non prevu") - -# pour éviter d'écrire 3 fois cette liste : -def l_nom_cham_pas_elga(): return ( - "ACCE", "ACCE_ABSOLU", "CRIT_ELNO_RUPT", "DCHA_ELNO_SIGM", - "DCHA_NOEU_SIGM", "DEDE_ELNO_DLDE", "DEDE_NOEU_DLDE", "DEGE_ELNO_DEPL", "DEGE_NOEU_DEPL", - "DEPL", "DEPL_ABSOLU", "DESI_ELNO_DLSI", "DESI_NOEU_DLSI", "DETE_ELNO_DLTE", "DETE_NOEU_DLTE", - "DURT_ELNO_META", "DURT_NOEU_META", "ECIN_ELEM_DEPL", "EFGE_ELNO_CART", "EFGE_ELNO_DEPL", - "EFGE_NOEU_CART", "EFGE_NOEU_DEPL", "ENDO_ELNO_SIGA", "ENDO_ELNO_SINO", "ENDO_NOEU_SINO", - "ENEL_ELNO_ELGA", "ENEL_NOEU_ELGA", "EPEQ_ELNO_TUYO", "EPGR_ELNO", "EPME_ELNO_DEPL", - "EPMG_ELNO_DEPL", "EPMG_NOEU_DEPL", "EPOT_ELEM_DEPL", "EPSA_ELNO", "EPSA_NOEU", - "EPSG_ELNO_DEPL", "EPSG_NOEU_DEPL", "EPSI_ELNO_DEPL", "EPSI_ELNO_TUYO", "EPSI_NOEU_DEPL", - "EPSP_ELNO", "EPSP_ELNO_ZAC", "EPSP_NOEU", "EPSP_NOEU_ZAC", "EQUI_ELNO_EPME", "EQUI_ELNO_EPSI", - "EQUI_ELNO_SIGM", "EQUI_NOEU_EPME", "EQUI_NOEU_EPSI", "EQUI_NOEU_SIGM", "ERRE_ELEM_NOZ1", - "ERRE_ELEM_NOZ2", "ERRE_ELNO_ELGA", "ERRE_NOEU_ELGA", "ERTH_ELEM_TEMP", "ERTH_ELNO_ELEM", - "ETOT_ELEM", "ETOT_ELNO_ELGA", "FLUX_ELNO_TEMP", "FLUX_NOEU_TEMP", "FORC_NODA", "FSUR_2D", - "FSUR_3D", "FVOL_2D", "FVOL_3D", "GRAD_NOEU_THETA", "HYDR_ELNO_ELGA", "HYDR_NOEU_ELGA", - "INTE_ELNO_ACTI", "INTE_ELNO_REAC", "INTE_NOEU_ACTI", "INTE_NOEU_REAC", "IRRA", - "META_ELNO_TEMP", "META_NOEU_TEMP", "PMPB_ELNO_SIEF", "PMPB_NOEU_SIEF", - "PRES", "PRES_DBEL_DEPL", "PRES_ELNO_DBEL", "PRES_ELNO_IMAG", "PRES_ELNO_REEL", - "PRES_NOEU_DBEL", "PRES_NOEU_IMAG", "PRES_NOEU_REEL", - "RADI_ELNO_SIGM", "RADI_NOEU_SIGM", "REAC_NODA", - "SIEF_ELNO", "SIEF_ELNO_ELGA", "SIEF_NOEU", "SIEF_NOEU_ELGA", "SIEQ_ELNO_TUYO", - "SIGM_ELNO_CART", "SIGM_ELNO_COQU", "SIGM_ELNO_DEPL", "SIGM_ELNO_SIEF", - "SIGM_ELNO_TUYO", "SIGM_ELNO_ZAC", "SIGM_NOEU_CART", "SIGM_NOEU_COQU", - "SIGM_NOEU_DEPL", "SIGM_NOEU_SIEF", "SIGM_NOEU_ZAC", "SIGM_NOZ1_ELGA", - "SIGM_NOZ2_ELGA", "SIPO_ELNO_DEPL", "SIPO_ELNO_SIEF", "SIPO_NOEU_DEPL", - "SIPO_NOEU_SIEF", "SIRE_ELNO_DEPL", "SIRE_NOEU_DEPL", "TEMP", "THETA", - "VALE_CONT", "VALE_NCOU_MAXI", "VARI_ELNO", "VARI_ELNO_COQU", - "VARI_ELNO_ELGA", "VARI_ELNO_TUYO", "VARI_NOEU", "VARI_NOEU_ELGA", "VARI_NON_LOCAL", - "VITE", "VITE_ABSOLU", "VITE_VENT", - ) - -LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,reentrant='n', - UIinfo={"groupes":("Résultats et champs",)}, - fr="Lire dans un fichier, soit format IDEAS, soit au format ENSIGHT soit au format MED," - +" des champs et les stocker dans une SD résultat", - - -# 0) mots clés généraux : -#---------------------- - TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_THER","EVOL_ELAS","EVOL_NOLI","MODE_MECA", - "MODE_MECA_C","DYNA_TRANS","DYNA_HARMO","HARM_GENE", - "EVOL_CHAR") ), - - FORMAT =SIMP(statut='o',typ='TXM',into=("IDEAS","IDEAS_DS58","ENSIGHT","MED") ), - - INFO =SIMP(statut='f',typ='I',into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - - regles=(UN_PARMI('MAILLAGE','MODELE'),), - MAILLAGE =SIMP(statut='f',typ=maillage_sdaster), - MODELE =SIMP(statut='f',typ=modele_sdaster), - - NB_VARI =SIMP(statut='f',typ='I' ), - - -# 1) blocs selon le format choisi : -#--------------------------------- - -# 1-1 ideas dataset-58 : -# ---------------------- - b_dataset_58 = BLOC(condition="FORMAT=='IDEAS_DS58'", - UNITE =SIMP(statut='f',typ='I',defaut= 19 ), - ), - b_dataset_58_b = BLOC(condition="(FORMAT=='IDEAS_DS58') and ((TYPE_RESU=='DYNA_TRANS') or\ - (TYPE_RESU=='DYNA_HARMO') or (TYPE_RESU=='HARM_GENE'))", - UNITE =SIMP(statut='f',typ='I',defaut= 19 ), - NOM_CHAM=SIMP(statut='o',typ='TXM',into=("DEPL","VITE","ACCE","EPSI_NOEU_DEPL","SIEF_NOEU",) ), - REDEFI_ORIENT=FACT(statut='f',max='**', - regles=(PRESENT_PRESENT('CODE_DIR','DIRECTION','NOEUD',),), - CODE_DIR =SIMP(statut='f',typ='I',into=(1,2,3,) ), - DIRECTION=SIMP(statut='f',typ='R',min=3,max=3,), - NOEUD =SIMP(statut='f',typ=no,validators=NoRepeat(),max='**'),), - ), - -# 1-2 ideas : -# --------- - b_ideas =BLOC(condition="FORMAT=='IDEAS'", - UNITE =SIMP(statut='f',typ='I',defaut= 19 ), -# TEST =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ), - NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=l_nom_cham_pas_elga()), - FORMAT_IDEAS =FACT(statut='f',max='**', - regles=(UN_PARMI('POSI_INST','POSI_FREQ'),), - NOM_CHAM =SIMP(statut='o',typ='TXM',into=l_nom_cham_pas_elga()), - NUME_DATASET =SIMP(statut='f',typ='I',into=(55,57,2414) ), - RECORD_3 =SIMP(statut='f',typ='I',max=10), - RECORD_6 =SIMP(statut='f',typ='I',max=10), - RECORD_9 =SIMP(statut='f',typ='I',max=10), - POSI_ORDRE =SIMP(statut='o',typ='I',min=2,max=2), - POSI_NUME_MODE =SIMP(statut='f',typ='I',min=2,max=2), - POSI_MASS_GENE =SIMP(statut='f',typ='I',min=2,max=2), - POSI_AMOR_GENE =SIMP(statut='f',typ='I',min=2,max=2), - POSI_INST =SIMP(statut='f',typ='I',min=2,max=2), - POSI_FREQ =SIMP(statut='f',typ='I',min=2,max=2), - NOM_CMP =SIMP(statut='o',typ='TXM',max='**'),), - ), -# 1-3 ensight : -# ------------- - b_ensight =BLOC(condition="FORMAT=='ENSIGHT'", - NOM_FICHIER =SIMP(statut='f',typ='TXM'), - NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=l_nom_cham_pas_elga()), - ), - -# 1-4 med : -# --------- - b_med =BLOC(condition = "FORMAT == 'MED'",fr="Nom du champ dans le fichier MED", - UNITE =SIMP(statut='f',typ='I',defaut= 81, fr="Le fichier est : fort.n.",), - FORMAT_MED =FACT(statut='f',max='**', - regles=(ENSEMBLE('NOM_CMP','NOM_CMP_MED'),), - NOM_CHAM =SIMP(statut='o',typ='TXM',into=l_nom_cham_pas_elga()), - NOM_CHAM_MED =SIMP(statut='o',typ='TXM', fr="Nom du champ dans le fichier MED.", ), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**', fr="Nom des composantes dans ASTER.", ), - NOM_CMP_MED =SIMP(statut='f',typ='TXM',max='**', fr="Nom des composantes dans MED.", ), - ), - ), - -# 2) blocs selon le type du résultat : -#--------------------------------- - b_mode_meca =BLOC(condition="(TYPE_RESU=='MODE_MECA')or(TYPE_RESU=='MODE_MECA_C')", - MATR_A =SIMP(statut='f',typ=matr_asse_depl_r,), - MATR_B =SIMP(statut='f',typ=matr_asse_depl_r,), - ), - - -# 3) autres blocs : -#--------------------------------- - b_extrac =BLOC(condition="1",fr="accès à un champ dans la structure de données résultat", - regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST','FREQ','LIST_FREQ'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), - - b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)or(FREQ != None)or(LIST_FREQ != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.lire_table_ops import lire_table_ops - -def lire_table_prod(self,TYPE_TABLE,**args): - if TYPE_TABLE == "TABLE" : return table_sdaster - 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=MACRO(nom="LIRE_TABLE",op=lire_table_ops,sd_prod=lire_table_prod, - fr="Lecture d'un fichier contenant une table", - UIinfo={"groupes":("Table",)}, - UNITE =SIMP(statut='o',typ='I' ), - FORMAT =SIMP(statut='f',typ='TXM',into=("ASTER",),defaut="ASTER"), - NUME_TABLE =SIMP(statut='f',typ='I',defaut=1), - 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'), - PARA =SIMP(statut='f',typ='TXM',max='**'), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - ) ; - -#& MODIF COMMANDE DATE 12/09/2005 AUTEUR NICOLAS O.NICOLAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# ====================================================================== - -MAC_MODES=OPER(nom="MAC_MODES",op= 141,sd_prod=table_sdaster, - fr="Normalisation de modes propres", - reentrant='f', - UIinfo={"groupes":("Résolution",)}, - BASE_1 =SIMP(statut='o',typ=(mode_meca,mode_flamb,base_modale) ), - BASE_2 =SIMP(statut='o',typ=(mode_meca,mode_flamb,base_modale) ), - MATR_ASSE =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 07/11/2005 AUTEUR GNICOLAS G.NICOLAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GNICOLAS G.NICOLAS - -from Macro.macr_adap_mail_ops import macr_adap_mail_ops - -def macr_adap_mail_prod(self,MAJ_CHAM,ADAPTATION,**args): - maillage_np1=ADAPTATION['MAILLAGE_NP1'] - self.type_sdprod(maillage_np1,maillage_sdaster) - if MAJ_CHAM == None:return None -# Remarque : la liste qui suit doit etre conforme à son homologue de LIRE_CHAMP - for ch in MAJ_CHAM: - t=ch['TYPE_CHAM'] - if t[0:5] == "NOEU_":self.type_sdprod(ch['CHAM_MAJ'],eval("cham_no_"+string.lower(t[5:]))) - if t == "ELEM_G_DEPL_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_g_depl) - if t[0:5] == "ELEM_":self.type_sdprod(ch['CHAM_MAJ'],eval("cham_elem_"+string.lower(t[5:]))) - if t == "ELNO_G_DEPL_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_g_depl) - if t[0:5] == "ELNO_":self.type_sdprod(ch['CHAM_MAJ'],eval("cham_elem_"+string.lower(t[5:]))) - if t == "ELGA_G_DEPL_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_g_depl) - if t[0:5] == "ELGA_":self.type_sdprod(ch['CHAM_MAJ'],eval("cham_elem_"+string.lower(t[5:]))) - return None - -MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL",op=macr_adap_mail_ops,sd_prod=macr_adap_mail_prod, - fr="Adapter un maillage avec le logiciel HOMARD.", - ang="Mesh adaptation with HOMARD software.", - docu="U7.03.01-b",UIinfo={"groupe":("Maillage",)}, -# -# 1. Le niveau d'information -# - INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -# -# 2. Version de HOMARD -# - VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V7_7", - into=("V7_7", "V7_N", "V7_N_PERSO", "V8_N"), - 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. Gestion des éléments autres que des simplexes -# 0 : autres elements refuses -# 1 : raffinement sur les simplexes, mais autres acceptes -# 2 : tous (defaut) -# - NON_SIMPLEXE = SIMP(statut='f',typ='I',defaut=2,into=(0,1,2), - fr="Type d'éléments acceptés.", - ang="Type of authorized elements." ), -# -# 5. Le type de traitement : -# - ADAPTATION =FACT(statut='o', - fr="Type d'adaptation", - ang="Type of adaptation", -# -# 5.1. Deux choix d'adaptation exclusifs : -# -# 5.1. -# A. Pilote par une consigne, 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" ), -# -# 5.2. Quel que soit le type de traitement, il faut donner : -# A. Le concept du maillage initial -# B. Le concept du maillage final -# - MAILLAGE_N = SIMP(statut='o',typ=maillage_sdaster, - fr="Maillage avant adaptation", - ang="Mesh before adaptation" ), - MAILLAGE_NP1 = SIMP(statut='o',typ=CO, - fr="Maillage apres adaptation", - ang="Mesh after adaptation" ), -# -# 5.3. Pour de l'adaptation libre, il faut un indicateur d'erreur et/ou des definitions de zones -# - b_indicateur_d_erreur =BLOC( condition = " LIBRE != None " , - fr="Choix de l'indicateur d'erreur", - ang="Selection of error indicator", -# -# 5.3.1. L'indicateur -# - regles=(UN_PARMI('CHAM_GD','RESULTAT_N')), -# -# 5.3.1.1. Sous forme de champ de grandeur -# - CHAM_GD =SIMP(statut='f',typ=cham_gd_sdaster, - fr="Champ de grandeur Code_Aster contenant l'indicateur d'erreur", - ang="Champ de grandeur with error indicator" ), -# -# 5.3.1.2. Sous forme de concept resultat_sdaster -# - RESULTAT_N = SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther) , - fr="Concept resultat Code_Aster contenant l'indicateur d'erreur", - ang="Result with error indicator" ), -# - b_champ_indicateur =BLOC(condition="(RESULTAT_N != None)", - INDICATEUR = SIMP(statut='o',typ='TXM', - fr="Champ de l'indicateur d'erreur", - ang="Error indicator field" ), - ), -# -# 5.3.2. La composante retenue -# - NOM_CMP_INDICA = SIMP(statut='o',typ='TXM', - fr="Composante retenue", - ang="Selected component" ), -# -# 5.3.3. Le paramètre temporel pour l'indicateur -# - b_parametre_temporel =BLOC(condition="(RESULTAT_N != None)", -# - regles=(EXCLUS('NUME_ORDRE','INST'),), -# -# 5.3.3.1. Soit le numero d'ordre -# - NUME_ORDRE = SIMP(statut='f',typ='I', - fr="Numero d ordre", - ang="Rank" ), -# -# 5.3.3.2. Soit l'instant -# 5.3.3.2.1. Sa valeur -# - INST = SIMP(statut='f',typ='R', - fr="Instant associé", - ang="Instant" ), -# -# 5.3.3.2.2. La précision du choix de l'instant -# - b_precision =BLOC(condition="(INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3, - fr="Précision sur le choix de l'instant associé", - ang="Accuracy over instant choice" ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), - fr="Critère de précision sur le choix de l'instant associé", - ang="Accuracy criterium over instant choice" ), - ), -# - ), -# - ) , -# -# 5.4. Les criteres pour de l'adaptation libre : -# absolu, relatif, en proportion d'entite -# 5.4.1. Pour le raffinement : -# - 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 : fraction entre 0 et 1", - ang="Relative threshold : ratio between 0 and 1" ), - CRIT_RAFF_PE = SIMP(statut='f',typ='R', - fr="Pourcentage d'éléments : fraction entre 0 et 1", - ang="Percentage of elements : ratio between 0 and 1" ), - ) , -# -# 5.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 : fraction entre 0 et 1", - ang="Relative threshold : ratio between 0 and 1" ), - CRIT_DERA_PE = SIMP(statut='f',typ='R', - fr="Pourcentage d'éléments : fraction entre 0 et 1", - ang="Percentage of elements : ratio between 0 and 1" ), - ) , -# -# 5.5. Les niveaux extremes pour le maillage adapte -# 5.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' ), - ) , -# -# 5.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' ), - ) , -# - ), -# -# 6. Suivi d'une frontiere -# - MAILLAGE_FRONTIERE = SIMP(statut='f',typ=maillage_sdaster, - fr="Maillage de la frontiere à suivre", - ang="Boundary mesh" ), -# - b_frontiere =BLOC( condition = " MAILLAGE_FRONTIERE != None " , - fr="Groupes définissant la frontière", - ang="Groups which define the boundary", - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**' ), - ) , -# -# 7. Mise à jour de champs sur le nouveau maillage -# - MAJ_CHAM =FACT(statut='f',max='**', - fr="Mise à jour de champs sur le nouveau maillage.", - ang="Updating of fields over the new mesh.", -# -# 7.1. Le nom du champ qui contiendra le resultat de la mise a jour -# - CHAM_MAJ = SIMP(statut='o',typ=CO, - fr="Nom du champ qui contiendra le champ mis à jour", - ang="Name of the field for the updated field"), -# -# 7.2. Le type du champ qui contiendra le resultat de la mise a jour -# - TYPE_CHAM = SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO(), - fr="Type du champ qui contiendra le champ mis à jour", - ang="Type of the field for the updated field" ), -# -# 7.3. Le champ a interpoler -# - regles=(UN_PARMI('CHAM_GD','RESULTAT')), -# -# 7.3.1. Sous forme de champ de grandeur -# - CHAM_GD =SIMP(statut='f',typ=cham_gd_sdaster, - fr="Champ de grandeur Code_Aster contenant le champ à mettre à jour", - ang="Champ de grandeur with field to be updated" ), -# -# 7.3.2. Le nom du resultat du champ a interpoler -# - RESULTAT = SIMP(statut='f', - typ=(evol_elas,evol_noli,evol_ther), - fr="Resultat contenant le champ à mettre à jour", - ang="Result with field to be updated" ), -# - NOM_CHAM = SIMP(statut='f',typ='TXM', - fr="Nom du champ à mettre à jour", - ang="Name of the field to be updated" ), -# -# 7.4. Le paramètre temporel pour le champ a interpoler -# - b_parametre_temporel =BLOC(condition="(RESULTAT != None)", -# - regles=(EXCLUS('NUME_ORDRE','INST'),), -# -# 7.4.1. Soit le numero d'ordre -# - NUME_ORDRE = SIMP(statut='f',typ='I', - fr="Numero d ordre du champ à mettre à jour", - ang="Rank of the field to be updated" ), -# -# 7.4.2. Soit l'instant -# 7.4.2.1. Sa valeur -# - INST = SIMP(statut='f',typ='R', - fr="Instant associé", - ang="Instant" ), -# -# 7.4.2.2. La précision du choix de l'instant -# - b_precision =BLOC(condition="(INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3, - fr="Précision sur le choix de l'instant associé", - ang="Accuracy over instant choice" ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), - fr="Critère de précision sur le choix de l'instant associé", - ang="Accuracy criterium over instant choice" ),), -# - ), - ), -# -# 8. Les options d'analyse de maillage ; par defaut, on ne fait que les nombres -# 8.1. Nombre de noeuds et éléments -# - NOMBRE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), - fr="Nombre de noeuds et éléments du maillage", - ang="Number of nodes and éléments in the mesh" ), -# -# 8.2. Determination de la qualité des éléments du maillage -# - QUALITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Qualité du maillage", - ang="Mesh quality" ), -# -# 8.3. Connexite du maillage -# - CONNEXITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Connexité du maillage.", - ang="Mesh connexity." ), -# -# 8.4. Taille des sous-domaines du maillage -# - TAILLE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Tailles des sous-domaines du maillage.", - ang="Sizes of mesh sub-domains." ), -# -# 8.5. Controle de la non-interpenetration des éléments -# - INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Controle de la non interpénétration des éléments.", - ang="Overlapping checking." ), -# -) ; -#& MODIF COMMANDE DATE 07/10/2005 AUTEUR CIBHHPD L.SALMONA -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE F1BHHAJ J.ANGLES -from Macro.macr_ascouf_calc_ops import macr_ascouf_calc_ops -def macr_ascouf_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS,CHARGE,RESU_THER,**args): - self.type_sdprod(MODELE,modele_sdaster) - if CHAM_MATER != None:self.type_sdprod(CHAM_MATER,cham_mater) - if CARA_ELEM != None:self.type_sdprod(CARA_ELEM,cara_elem) - if FOND_FISS != None:self.type_sdprod(FOND_FISS,fond_fiss) - if CHARGE != None:self.type_sdprod(CHARGE,char_meca) - if RESU_THER != None:self.type_sdprod(RESU_THER,evol_ther) - return evol_noli - -MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC",op=macr_ascouf_calc_ops,sd_prod=macr_ascouf_calc_prod, - fr="Réalise l'analyse thermomécanique du coude dont le maillage a été concu par MACR_ASCOUF_MAIL", - reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - regles=(UN_PARMI('COMP_INCR','COMP_ELAS'),), - - TYPE_MAILLAGE =SIMP(statut='o',typ='TXM', - into=("SAIN", - "FISS_COUDE", - "FISS_AXIS_DEB", - "SOUS_EPAIS_COUDE" - ) ), - - CL_BOL_P2_GV =FACT(statut='f', - ANGLE =SIMP(statut='o',typ='R' ), - AZIMUT =SIMP(statut='f',typ='R',defaut= 90. ), - ), - - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), - MODELE =SIMP(statut='o',typ=CO,), - CHAM_MATER =SIMP(statut='f',typ=CO,), - CARA_ELEM =SIMP(statut='f',typ=CO,), - FOND_FISS =SIMP(statut='f',typ=CO,), - CHARGE =SIMP(statut='f',typ=CO,), - RESU_THER =SIMP(statut='f',typ=CO,), - - AFFE_MATERIAU =FACT(statut='o',max=3, - regles=(UN_PARMI('TOUT','GROUP_MA'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ='TXM',into=("COUDE","BOL") ), - MATER =SIMP(statut='o',typ=mater_sdaster ), - TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - - PRES_REP =FACT(statut='f', - PRES =SIMP(statut='o',typ='R' ), - EFFE_FOND_P1 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - PRES_LEVRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - ECHANGE =FACT(statut='f', - COEF_H =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TEMP_EXT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - TORS_P1 =FACT(statut='f',max=6, - regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - MX =SIMP(statut='f',typ='R' ), - MY =SIMP(statut='f',typ='R' ), - MZ =SIMP(statut='f',typ='R' ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - COMP_INCR =FACT(statut='f', - RELATION =SIMP(statut='o',typ='TXM',into=("VMIS_ISOT_TRAC",) ), - VMIS_ISOT_TRAC =SIMP(statut='c',typ='I',defaut= 2,into=( 2 ,) ), - RESI_INTE_RELA =SIMP(statut='f',typ='R' - ,defaut= 1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", - into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), - ), - - COMP_ELAS =FACT(statut='f', - RELATION =SIMP(statut='o',typ='TXM',into=("ELAS","ELAS_VMIS_TRAC") ), - ELAS =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ), - ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ), - RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", - into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), - ), - - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - - CONVERGENCE =FACT(statut='d', - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), - ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), - ), - - NEWTON =FACT(statut='d', - REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), - PREDICTION =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ), - MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ), - REAC_ITER =SIMP(statut='f',typ='I',defaut=0), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - ), - - RECH_LINEAIRE =FACT(statut='d', - RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3), - ), - - INCREMENT =FACT(statut='o', - regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), - EXCLUS('NUME_INST_FIN','INST_FIN'),), - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE", - into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ), - NUME_INST_INIT =SIMP(statut='f',typ='I'), - INST_INIT =SIMP(statut='f',typ='R'), - NUME_INST_FIN =SIMP(statut='f',typ='I'), - INST_FIN =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - 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',max='**', - R_INF =SIMP(statut='o',typ='R' ), - R_SUP =SIMP(statut='o',typ='R' ), - ), - - IMPR_TABLE =FACT(statut='f', - regles=(UN_PARMI('TOUT_PARA','NOM_PARA', ), - PRESENT_PRESENT('TOUT_PARA','ANGLE', ), - PRESENT_PRESENT('TOUT_PARA','R_CINTR', ), - UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL',),), - NOM_PARA =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=4, - into=("TRESCA_MEMBRANE", - "TRESCA_MFLE", - "TRESCA", - "SI_LONG" - "SI_RADI" - "SI_CIRC" - ) ), - TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI",) ), - ANGLE =SIMP(statut='f',typ='R',max='**' ), - R_CINTR =SIMP(statut='f',typ='R',max='**' ), - POSI_CURV_LONGI =SIMP(statut='f',typ='R',max='**' ), - POSI_ANGUL =SIMP(statut='f',typ='R',max='**' ), - TRANSFORMEE =SIMP(statut='f',typ='TXM',defaut="COUDE",into=("COUDE","TUBE") ), - ), - - IMPRESSION =FACT(statut='f', - FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT", - into=("RESULTAT","ASTER","IDEAS","CASTEM") ), - - b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas", - VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), - ), - - b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem", - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)), - ), - - ), - - TITRE =SIMP(statut='f',typ='TXM' ), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE F1BHHAJ J.ANGLES -from Macro.macr_ascouf_mail_ops import macr_ascouf_mail_ops -MACR_ASCOUF_MAIL=MACRO(nom="MACR_ASCOUF_MAIL",op=macr_ascouf_mail_ops,sd_prod=maillage_sdaster, - fr="Engendre le maillage d'un coude sain ou comportant une fissure ou une (ou plusieurs) sous-épaisseur(s)", - UIinfo={"groupes":("Outils métier",)},reentrant='n', - - regles=(EXCLUS('SOUS_EPAIS_COUDE','FISS_COUDE','SOUS_EPAIS_MULTI'),), - - EXEC_MAILLAGE =FACT(statut='o', - LOGICIEL =SIMP(statut='o',typ='TXM',defaut="GIBI2000",into=("GIBI98","GIBI2000") ), - UNITE_DATG =SIMP(statut='f',typ='I',defaut=70), - UNITE_MGIB =SIMP(statut='f',typ='I',defaut=19), - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,4,5,6,7,8,9,10,11)), - ), - - TYPE_ELEM =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8") ), - - COUDE =FACT(statut='o', - ANGLE =SIMP(statut='o',typ='R' ), - R_CINTR =SIMP(statut='o',typ='R' ), - L_TUBE_P1 =SIMP(statut='o',typ='R' ), - L_TUBE_P2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - NB_ELEM_EPAIS =SIMP(statut='f',typ='I',defaut= 3 ), - SYME =SIMP(statut='f',typ='TXM',defaut="ENTIER",into=("ENTIER","QUART","DEMI") ), - TRANSFORMEE =SIMP(statut='o',typ='TXM',defaut="COUDE",into=("COUDE","TUBE") ), - b_transf_coude =BLOC(condition = "TRANSFORMEE == 'COUDE' ", - DEXT =SIMP(statut='o',typ='R' ), - EPAIS =SIMP(statut='o',typ='R' ), - SUR_EPAIS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - BOL_P2 =SIMP(statut='f',typ='TXM',into=("ASP_MPP","CUVE","GV") ), - ), - b_transf_tube =BLOC(condition = "TRANSFORMEE == 'TUBE' ", - TRAN_EPAIS =SIMP(statut='o',typ='TXM',defaut="NON",into=("OUI","NON") ), - b_trans_epais_oui =BLOC(condition = "TRAN_EPAIS == 'OUI' ", - regles=(ENSEMBLE('ANGL_TETA2','EPAIS_TI'), - UN_PARMI('ABSC_CURV_TRAN','POSI_ANGU_TRAN'),), - DEXT_T1 =SIMP(statut='o',typ='R' ), - EPAIS_T1 =SIMP(statut='o',typ='R' ), - EPAIS_T2 =SIMP(statut='o',typ='R' ), - EPAIS_TI =SIMP(statut='f',typ='R' ), - ANGL_TETA1 =SIMP(statut='o',typ='R' ), - ANGL_TETA2 =SIMP(statut='f',typ='R' ), - ABSC_CURV_TRAN =SIMP(statut='f',typ='R' ), - POSI_ANGU_TRAN =SIMP(statut='f',typ='R' ), - ), - b_trans_epais_non =BLOC(condition = "TRAN_EPAIS == 'NON' ", - DEXT =SIMP(statut='o',typ='R' ), - EPAIS =SIMP(statut='o',typ='R' ), - SUR_EPAIS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - BOL_P2 =SIMP(statut='f',typ='TXM',into=("ASP_MPP","CUVE","GV") ), - ), - ), - ), - - SOUS_EPAIS_COUDE=FACT(statut='f', - regles=(UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL'), - UN_PARMI('POSI_CURV_CIRC','AZIMUT'),), - TYPE =SIMP(statut='o',typ='TXM',into=("AXIS","ELLI") ), - AXE_CIRC =SIMP(statut='f',typ='R' ), - AXE_LONGI =SIMP(statut='o',typ='R' ), - PROFONDEUR =SIMP(statut='o',typ='R' ), - POSI_CURV_LONGI =SIMP(statut='f',typ='R' ), - POSI_ANGUL =SIMP(statut='f',typ='R' ), - POSI_CURV_CIRC =SIMP(statut='f',typ='R' ), - AZIMUT =SIMP(statut='f',typ='R' ), - SOUS_EPAIS =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ), - NB_ELEM_LONGI =SIMP(statut='o',typ='I' ), - NB_ELEM_CIRC =SIMP(statut='o',typ='I' ), - NB_ELEM_RADI =SIMP(statut='f',typ='I',defaut= 3 ), - EMPREINTE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - - SOUS_EPAIS_MULTI=FACT(statut='f',max='**', - regles=(UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL'), - UN_PARMI('POSI_CURV_CIRC','AZIMUT'),), - TYPE =SIMP(statut='o',typ='TXM',into=("AXIS","ELLI") ), - AXE_CIRC =SIMP(statut='f',typ='R' ), - AXE_LONGI =SIMP(statut='o',typ='R' ), - PROFONDEUR =SIMP(statut='o',typ='R' ), - POSI_CURV_LONGI =SIMP(statut='f',typ='R' ), - POSI_ANGUL =SIMP(statut='f',typ='R' ), - POSI_CURV_CIRC =SIMP(statut='f',typ='R' ), - AZIMUT =SIMP(statut='f',typ='R' ), - SOUS_EPAIS =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ), - NB_ELEM_LONGI =SIMP(statut='o',typ='I' ), - NB_ELEM_CIRC =SIMP(statut='o',typ='I' ), - EMPREINTE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - - FISS_COUDE =FACT(statut='f', - regles=(UN_PARMI('ABSC_CURV','POSI_ANGUL'),), - AXIS =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ), - b_axis_non =BLOC(condition = "AXIS == 'NON' ", - LONGUEUR =SIMP(statut='o',typ='R' ), - ), - b_axis_oui =BLOC(condition = "AXIS == 'OUI' ", - LONGUEUR =SIMP(statut='f',typ='R' ), - ), - PROFONDEUR =SIMP(statut='o',typ='R' ), - ABSC_CURV =SIMP(statut='f',typ='R' ), - POSI_ANGUL =SIMP(statut='f',typ='R' ), - FISSURE =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT") ), - AZIMUT =SIMP(statut='f',typ='R',defaut= 90. ), - ORIEN =SIMP(statut='o',typ='R', - into=(45.,-45.,90.,0.E+0) ), - NB_TRANCHE =SIMP(statut='o',typ='I' ), - NB_SECTEUR =SIMP(statut='o',typ='I' ), - NB_COURONNE =SIMP(statut='o',typ='I' ), - RAYON_TORE =SIMP(statut='f',typ='R' ), - COEF_MULT_RC2 =SIMP(statut='f',typ='R',defaut= 1. ), - COEF_MULT_RC3 =SIMP(statut='f',typ='R' ), - ANGL_OUVERTURE =SIMP(statut='f',typ='R',defaut= 0.5 ), - ), - - IMPRESSION =FACT(statut='f',max='**', - regles=(PRESENT_PRESENT('FICHIER','UNITE'),), - FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER", - into=("ASTER","IDEAS","CASTEM") ), - b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas", - VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), - ), - b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem", - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)), - ), - FICHIER =SIMP(statut='f',typ='TXM' ), - UNITE =SIMP(statut='f',typ='I' ), - ), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 07/10/2005 AUTEUR CIBHHPD L.SALMONA -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE F1BHHAJ J.ANGLES -from Macro.macr_aspic_calc_ops import macr_aspic_calc_ops - -def macr_aspic_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS_1,FOND_FISS_2,CHARGE,RESU_THER,**args): - if MODELE != None:self.type_sdprod(MODELE,modele_sdaster) - if CHAM_MATER != None:self.type_sdprod(CHAM_MATER,cham_mater) - if CARA_ELEM != None:self.type_sdprod(CARA_ELEM,cara_elem) - if FOND_FISS_1 != None:self.type_sdprod(FOND_FISS_1,fond_fiss) - if FOND_FISS_2 != None:self.type_sdprod(FOND_FISS_2,fond_fiss) - if CHARGE != None:self.type_sdprod(CHARGE,char_meca) - if RESU_THER != None:self.type_sdprod(RESU_THER,evol_ther) - return evol_noli - -MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC",op=macr_aspic_calc_ops,sd_prod=macr_aspic_calc_prod, - fr="Réalise un calcul prédéfini de piquages sains ou fissurés ainsi que les post-traitements associés ", - UIinfo={"groupes":("Outils métier",)},reentrant='n', - regles=(UN_PARMI('COMP_INCR','COMP_ELAS'),), - - TYPE_MAILLAGE =SIMP(statut='o',typ='TXM', - into=("SAIN_FIN","SAIN_GROS","FISS_COUR_DEB","FISS_COUR_NONDEB","FISS_LONG_DEB", - "FISS_LONG_NONDEB","FISS_AXIS_DEB","FISS_AXIS_NONDEB") ), - - TUBULURE =FACT(statut='o', - TYPE =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2") ), - ), - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), - MODELE =SIMP(statut='f',typ=CO,), - CHAM_MATER =SIMP(statut='f',typ=CO,), - CARA_ELEM =SIMP(statut='f',typ=CO,), - FOND_FISS_1 =SIMP(statut='f',typ=CO,), - FOND_FISS_2 =SIMP(statut='f',typ=CO,), - CHARGE =SIMP(statut='f',typ=CO,), - RESU_THER =SIMP(statut='f',typ=CO,), - - AFFE_MATERIAU =FACT(statut='o',max=3, - regles=(UN_PARMI('TOUT','GROUP_MA'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)), - GROUP_MA =SIMP(statut='f',typ='TXM',into=("TUBU","CORP","SOUD","SOUDCORP","SOUDTUBU") ), - MATER =SIMP(statut='o',typ=mater_sdaster), - TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - RCCM =SIMP(statut='o',typ='TXM',into=("OUI","NON")), - ), - - EQUILIBRE =FACT(statut='o', - NOEUD =SIMP(statut='o',typ=no), - ), - - PRES_REP =FACT(statut='o', - PRES =SIMP(statut='o',typ='R'), - NOEUD =SIMP(statut='f',typ=no), - EFFE_FOND =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PRES_LEVRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - - ECHANGE =FACT(statut='f', - COEF_H_TUBU =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COEF_H_CORP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - TEMP_EXT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - - TORS_CORP =FACT(statut='f',max=6, - regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - NOEUD =SIMP(statut='o',typ=no), - FX =SIMP(statut='f',typ='R'), - FY =SIMP(statut='f',typ='R'), - FZ =SIMP(statut='f',typ='R'), - MX =SIMP(statut='f',typ='R'), - MY =SIMP(statut='f',typ='R'), - MZ =SIMP(statut='f',typ='R'), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - - TORS_TUBU =FACT(statut='f',max=6, - regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - FX =SIMP(statut='f',typ='R'), - FY =SIMP(statut='f',typ='R'), - FZ =SIMP(statut='f',typ='R'), - MX =SIMP(statut='f',typ='R'), - MY =SIMP(statut='f',typ='R'), - MZ =SIMP(statut='f',typ='R'), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - - COMP_INCR =FACT(statut='f', - RELATION =SIMP(statut='o',typ='TXM',into=("VMIS_ISOT_TRAC",) ), - VMIS_ISOT_TRAC =SIMP(statut='c',typ='I',defaut= 2,into=( 2 ,) ), - RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut=1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut=10), - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut=0), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", - into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), - ), - - COMP_ELAS =FACT(statut='f', - RELATION =SIMP(statut='o',typ='TXM',into=("ELAS","ELAS_VMIS_TRAC") ), - ELAS =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ), - ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ), - RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", - into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), - ), - - THETA_3D =FACT(statut='f',max='**', - R_INF =SIMP(statut='o',typ='R'), - R_SUP =SIMP(statut='o',typ='R'), - ), - - OPTION =SIMP(statut='f',typ='TXM',into=("CALC_G_MAX","CALC_G_MAX_LOCAL") ), - BORNES =FACT(statut='f',max='**', - NUME_ORDRE =SIMP(statut='o',typ='I'), - VALE_MIN =SIMP(statut='o',typ='R'), - VALE_MAX =SIMP(statut='o',typ='R'), - ), - - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non iversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - - CONVERGENCE =FACT(statut='d', - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), - ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), - ), - - NEWTON =FACT(statut='d', - REAC_INCR =SIMP(statut='f',typ='I',defaut=1), - PREDICTION =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE","EXTRAPOL","DEPL_CALCULE")), - MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE")), - REAC_ITER =SIMP(statut='f',typ='I',defaut= 0), - ), - - RECH_LINEAIRE =FACT(statut='d', - RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut=1.0E-3), - ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut=3), - ), - - INCREMENT =FACT(statut='o', - regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), - EXCLUS('NUME_INST_FIN','INST_FIN'),), - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE", - into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ), - NUME_INST_INIT =SIMP(statut='f',typ='I'), - INST_INIT =SIMP(statut='f',typ='R'), - NUME_INST_FIN =SIMP(statut='f',typ='I'), - INST_FIN =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - 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', - FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT", - into=("RESULTAT","ASTER","CASTEM","IDEAS")), - - b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas", - VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), - ), - - b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem", - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)), - ), - - b_extrac =BLOC(condition="((FORMAT=='IDEAS')or(FORMAT=='CASTEM'))", - fr="extraction d un champ de grandeur", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST'),), - NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3, - into=("DEPL","EQUI_ELNO_SIGM","TEMP")), - - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - ), - ), - - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - - TITRE =SIMP(statut='f',typ='TXM'), -) -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE F1BHHAJ J.ANGLES - -from Macro.macr_aspic_mail_ops import macr_aspic_mail_ops - -MACR_ASPIC_MAIL=MACRO(nom="MACR_ASPIC_MAIL",op= macr_aspic_mail_ops,sd_prod=maillage_sdaster,reentrant='n', - fr="Engendre le maillage d'un piquage sain ou avec fissure (longue ou courte)", - UIinfo={"groupes":("Outils métier",)}, - - EXEC_MAILLAGE =FACT(statut='o', - LOGICIEL =SIMP(statut='o',typ='TXM',defaut="GIBI2000",into=("GIBI98","GIBI2000")), - UNITE_DATG =SIMP(statut='f',typ='I',defaut=70), - UNITE_MGIB =SIMP(statut='f',typ='I',defaut=19), - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,4,5,6,7,8,9,10,11)), - ), - - TYPE_ELEM =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8")), - - RAFF_MAIL =SIMP(statut='f',typ='TXM',defaut="GROS",into=("GROS","FIN")), - - TUBULURE =FACT(statut='o', - E_BASE =SIMP(statut='o',typ='R'), - DEXT_BASE =SIMP(statut='o',typ='R'), - L_BASE =SIMP(statut='o',typ='R'), - L_CHANF =SIMP(statut='o',typ='R'), - E_TUBU =SIMP(statut='o',typ='R'), - DEXT_TUBU =SIMP(statut='o',typ='R'), - Z_MAX =SIMP(statut='o',typ='R'), - TYPE =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2")), - L_PENETR =SIMP(statut='f',typ='R',defaut= 0.0E+0), - ), - - SOUDURE =FACT(statut='o', - H_SOUD =SIMP(statut='o',typ='R'), - ANGL_SOUD =SIMP(statut='o',typ='R'), - JEU_SOUD =SIMP(statut='o',typ='R'), - ), - - CORPS =FACT(statut='o', - E_CORP =SIMP(statut='o',typ='R'), - DEXT_CORP =SIMP(statut='o',typ='R'), - X_MAX =SIMP(statut='o',typ='R'), - ), - - FISS_SOUDURE =FACT(statut='f', - TYPE =SIMP(statut='o',typ='TXM',into=("LONGUE","COURTE")), - AXIS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - PROFONDEUR =SIMP(statut='o',typ='R'), - LONGUEUR =SIMP(statut='f',typ='R'), - AZIMUT =SIMP(statut='o',typ='R'), - RAYON_TORE =SIMP(statut='f',typ='R'), - POSITION =SIMP(statut='o',typ='TXM',into=("DROIT","INCLINE")), - FISSURE =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT","NON_DEB","TRAVERS")), - LIGA_INT =SIMP(statut='f',typ='R'), - ANGL_OUVERTURE =SIMP(statut='f',typ='R',defaut= 0.0E+0), - COEF_MULT_RC1 =SIMP(statut='f',typ='R'), - COEF_MULT_RC2 =SIMP(statut='f',typ='R'), - COEF_MULT_RC3 =SIMP(statut='f',typ='R'), - NB_TRANCHE =SIMP(statut='f',typ='I'), - NB_SECTEUR =SIMP(statut='f',typ='I'), - NB_COURONNE =SIMP(statut='f',typ='I'), - ), - - IMPRESSION =FACT(statut='f',max='**', - regles=(PRESENT_PRESENT('FICHIER','UNITE'),), - FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","IDEAS","CASTEM")), - - b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas", - VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), - ), - - b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem", - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)), - ), - FICHIER =SIMP(statut='f',typ='TXM'), - UNITE =SIMP(statut='f',typ='I'), - ), - - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 07/10/2005 AUTEUR CIBHHPD L.SALMONA -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macr_cabri_calc_ops import macr_cabri_calc_ops - -def macr_cabri_calc_prod(self,MODELE_THER,MODELE_MECA,CHAM_MATER, - CHAR_THER,CHAR_MECA,RESU_THER,**args): - if MODELE_THER != None: - self.type_sdprod(MODELE_THER,modele_sdaster) - if MODELE_MECA != None: - self.type_sdprod(MODELE_MECA,modele_sdaster) - if RESU_THER != None: - self.type_sdprod(RESU_THER,evol_ther) - if CHAM_MATER != None: - self.type_sdprod(CHAM_MATER,cham_mater) - if CHAR_THER != None: - for m in CHAR_THER: - self.type_sdprod(m['CHARGE'],char_ther) - if CHAR_MECA != None: - for m in CHAR_MECA: - self.type_sdprod(m['CHARGE'],char_meca) - return evol_noli - - -MACR_CABRI_CALC=MACRO(nom="MACR_CABRI_CALC", - op=macr_cabri_calc_ops, - sd_prod=macr_cabri_calc_prod, - fr="Calcul thermo-mécanique d'une jonction boulonnée de tuyauterie", - reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - MAILLAGE = SIMP(statut='o',typ=maillage_sdaster,), - AFFE_MATERIAU = FACT(statut='o',max='**', - regles=(UN_PARMI('TOUT','GROUP_MA',),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA = SIMP(statut='f',typ='TXM',into=( - "BRIDE", - "GOUJON", - "ROND", - "ECROU", - "JOINT",) ), - MATER = SIMP(statut='o',typ=mater_sdaster), - TEMP_REF = SIMP(statut='d',typ='R',defaut= 25. ), - ), - CHAM_MATER = SIMP(statut = 'f',typ=CO,), - MODELE_THER= SIMP(statut = 'f',typ=CO,), - - DEFI_CHAR_THER = FACT(statut ='d', - TEMP_INIT = SIMP(statut='d',typ='R',defaut= 25.,), - COEF_H_FLUI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),), - TEMP_EXT_FLUI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),), - COEF_H_AIR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),), - TEMP_EXT_AIR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - ), - - CHAR_THER = FACT(statut = 'f',max=4, - CHARGE = SIMP(statut='o',typ=CO), - TYPE = SIMP(statut='o',typ='TXM', - into=("BRIDE_FLUIDE","BRIDE_AIR","ECROU_GOUJON", - "BRIDE_JOINT"),) - ), - - RESU_THER = SIMP(statut = 'f',typ=CO,), - - - MODELE_MECA= SIMP(statut = 'f',typ=CO,), - - DEFI_CHAR_MECA = FACT(statut='o', - PRETENS = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),), - PRES_REP = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),), - EFFE_FOND = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),), - ), - - CHAR_MECA = FACT(statut = 'f',max=11, - CHARGE = SIMP(statut='o',typ=CO), - TYPE = SIMP(statut='o',typ='TXM', - into=("BLOC_BAS_GOUJ","BLOC_BAS_JOINT", - "BLOC_LAT_ALES","BLOC_LAT_NALES", - "PLAN_TUBE", - "PRES_FLU","EFFET_FOND", - "CONT_JOINT", - "DEFO_THER", - "SERR_ECROU_1","SERR_ECROU_2",),) - ), - - RELATION = SIMP(statut='f',typ='TXM', - into=('VMIS_ISOT_TRAC','ELAS','ELAS_VMIS_TRAC',),), - - SOLVEUR = FACT(statut='d', - METHODE = SIMP(statut='d',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT",) ), - b_mult_front = BLOC(condition = "METHODE == 'MULT_FRONT' ", - fr="Paramètres de la méthode multi frontale", - RENUM = SIMP(statut='d',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - NPREC = SIMP(statut='d',typ='I',defaut=8), - STOP_SINGULIER = SIMP(statut='d',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - ), - INCREMENT = FACT(statut='f', - regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), - EXCLUS('NUME_INST_FIN','INST_FIN'),), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE", - into=("CHRONOLOGIQUE",) ), - NUME_INST_INIT =SIMP(statut='f',typ='I'), - INST_INIT =SIMP(statut='f',typ='R'), - NUME_INST_FIN =SIMP(statut='f',typ='I'), - INST_FIN =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - SUBD_PAS =SIMP(statut='f',typ='I',defaut=1), - SUBD_PAS_MINI =SIMP(statut='f',typ='R'), - COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0), - OPTI_LIST_INST =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),), - NOM_CHAM =SIMP(statut='f',typ='TXM',), - NOM_CMP =SIMP(statut='f',typ='TXM',), - VALE =SIMP(statut='f',typ='R'), - ), - NEWTON =FACT(statut='d', - REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), - PREDICTION =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE","EXTRAPOL") ), - MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ), - PAS_MINI_ELAS =SIMP(statut='f',typ='R',defaut=0.0E+0), - REAC_ITER =SIMP(statut='f',typ='I',defaut=0), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - ), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", - into=("IMPLICITE",)), - CONVERGENCE =FACT(statut='d', - regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),), - SIGM_REFE =SIMP(statut='f',typ='R'), - EPSI_REFE =SIMP(statut='f',typ='R'), - FLUX_THER_REFE =SIMP(statut='f',typ='R'), - RESI_REFE_RELA =SIMP(statut='f',typ='R'), - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), - ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25), - ), - ); - -#& MODIF COMMANDE DATE 07/02/2005 AUTEUR MABBAS M.ABBAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macr_cabri_mail_ops import macr_cabri_mail_ops - -MACR_CABRI_MAIL=MACRO(nom="MACR_CABRI_MAIL", - op=macr_cabri_mail_ops, - sd_prod=maillage_sdaster, - fr="maillage d'une jonction boulonnée de tuyauterie", - reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - EXEC_MAILLAGE = FACT(statut='o', - LOGICIEL = SIMP(statut = 'o',typ='TXM',into=("GIBI2000",),), - UNITE_DATG = SIMP(statut = 'f',typ='I',defaut=70,), - UNITE_MGIB = SIMP(statut = 'f',typ='I',defaut=19,), - NIVE_GIBI = SIMP(statut = 'f',typ='I',defaut=10, - into = (3,4,5,6,7,8,9,10,11), - ), - ), - RAFF_MAILLAGE = FACT(statut = 'd', - NB_RADIAL = SIMP(statut = 'f',typ='I',defaut=2,), - NB_CIRCONF = SIMP(statut = 'f',typ='I',defaut=3,), - NB_VERTICAL = SIMP(statut = 'f',typ='I',defaut=6,), - NB_ALESAGE = SIMP(statut = 'f',typ='I',defaut=5,), - ), - VERI_MAIL = FACT(statut='d', - VERIF = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - APLAT = SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ), - GEOM_BRID = FACT(statut = 'o', - NORME = SIMP(statut = 'o',typ='TXM',into=("OUI","NON"),), - b_bride_iso = BLOC(condition = "NORME == 'OUI'", - TYPE = SIMP(statut='o',typ='TXM', - into=('A','AA','B','B1','C','D','D1','E','F', - 'FF','G','GG','H','H1','I','J','J1', - 'K','L','L1','M','N','O','P','S','T','W'), - ), - ), - b_bride_niso = BLOC(condition = "NORME == 'NON'", - TUBU_D_EXT = SIMP(statut='o',typ='R',), - TUBU_H = SIMP(statut='o',typ='R',), - BRID_D_EXT = SIMP(statut='o',typ='R',), - BRID_D_INT = SIMP(statut='o',typ='R',), - BRID_H = SIMP(statut='o',typ='R',), - BRID_D_CONGE = SIMP(statut='o',typ='R',), - BRID_R_CONGE = SIMP(statut='o',typ='R',), - BRID_D_EPAUL = SIMP(statut='o',typ='R',), - BRID_H_EPAUL = SIMP(statut='o',typ='R',), - BRID_D_ALESAG = SIMP(statut='o',typ='R',), - BRID_P_ALESAG = SIMP(statut='o',typ='R',), - BRID_H_ALESAG = SIMP(statut='o',typ='R',), - GOUJ_N_GOUJON = SIMP(statut='o',typ='I',), - GOUJ_D_GOUJON = SIMP(statut='o',typ='R',), - GOUJ_E_FILET = SIMP(statut='o',typ='R',), - GOUJ_D_RONDEL = SIMP(statut='o',typ='R',), - GOUJ_E_RONDEL = SIMP(statut='o',typ='R',), - GOUJ_D_ECROU = SIMP(statut='o',typ='R',), - GOUJ_E_ECROU = SIMP(statut='o',typ='R',), - ETAN_E_JOINT = SIMP(statut='o',typ='R',), - ), - ), - IMPRESSION = FACT(statut='d', - UNITE = SIMP(statut='f',typ='I'), - FORMAT = SIMP(statut='f',typ='TXM',defaut="ASTER", - into=("ASTER","CASTEM","IDEAS"), - ), - b_impr_castem = BLOC(condition = "FORMAT == 'CASTEM'", - NIVE_GIBI = SIMP(statut='f',typ='I',defaut=10,into=(3,10),), - ), - b_impr_ideas = BLOC(condition = "FORMAT == 'IDEAS'", - VERSION = SIMP(statut='f',typ='I',defaut=5,into=(4,5),), - ), - ), - ); - -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE JMBHH01 J.M.PROIX - -from Macro.macr_cara_poutre_ops import macr_cara_poutre_ops - -MACR_CARA_POUTRE=MACRO(nom="MACR_CARA_POUTRE",op=macr_cara_poutre_ops,sd_prod=tabl_cara_geom, - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - fr="Calculer les caractéristiques d'une section transversale de poutre à partir d'un maillage 2D de la section", - regles=(EXCLUS('SYME_X','GROUP_MA_BORD'), - EXCLUS('SYME_Y','GROUP_MA_BORD'),), - - UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut= 20 ), - ORIG_INER =SIMP(statut='f',typ='R',max=3,defaut=(0.E+0,0.E+0), - fr="Point par rapport auquel sont calculées les inerties"), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - - SYME_X =SIMP(statut='f',typ='TXM',into=("OUI",),fr="demi maillage par rapport a x=0"), - SYME_Y =SIMP(statut='f',typ='TXM',into=("OUI",),fr="demi maillage par rapport a y=0"), - - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', - fr="Calcul des caractéristiques équivalentes a plusieurs sections disjointes"), - - GROUP_MA_BORD =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', - fr="Groupe(s) de mailles linéiques, bord(s) de(s) section(s)"), - - b_gma_bord = BLOC( condition = "GROUP_MA_BORD != None", - fr=" calcul des carac. mecaniques", - - NOEUD =SIMP(statut='f',typ=no,max='**', - fr="Simplement pour empecher des pivots nuls le cas echeant. Fournir un noeud quelconque"), - GROUP_MA_INTE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', - fr="groupes de mailles linéiques bordant des trous dans la section"), - ), - - b_reseau = BLOC( condition ="""(GROUP_MA_BORD != None) and (GROUP_MA != None)""", - fr=" calcul des coef de cisaillement équivalents a un reseau de poutres", - regles=(ENSEMBLE('LONGUEUR','LIAISON','MATERIAU') ,), - LONGUEUR =SIMP(statut='f',typ='R',fr="Longueur du réseau de poutres"), - MATERIAU =SIMP(statut='f',typ=mater_sdaster,fr="Materiau elastique lineaire du reseau"), - LIAISON =SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT"), - fr="type de conditions aux limites sur le plancher supérieur" ), - ), - ) -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - -from Macro.macr_ecla_pg_ops import macr_ecla_pg_ops - -def macr_ecla_pg_prod(self,RESULTAT,MAILLAGE,RESU_INIT,**args): - self.type_sdprod(RESULTAT,AsType(RESU_INIT)) - self.type_sdprod(MAILLAGE,maillage_sdaster) - return None - - -MACR_ECLA_PG=MACRO(nom="MACR_ECLA_PG",op=macr_ecla_pg_ops,sd_prod=macr_ecla_pg_prod, reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - fr="Permettre la visualisation des champs aux points de Gauss d'une SD_RESULTAT sans lissage ni interpolation", - - - # SD résultat ,modèle et champs à "éclater" : - RESU_INIT =SIMP(statut='o',typ=resultat_sdaster,fr="RESULTAT à éclater",), - MODELE_INIT =SIMP(statut='o',typ=modele_sdaster,fr="MODELE à éclater"), - NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("SIEF_ELGA","VARI_ELGA","SIEF_ELGA_DEPL","FLUX_ELGA_TEMP",) ), - - # paramètres numériques de la commande : - SHRINK =SIMP(statut='f',typ='R',defaut= 0.9, fr="Facteur de réduction" ), - TAILLE_MIN =SIMP(statut='f',typ='R',defaut= 0.0, fr="Taille minimale d'un coté" ), - - # concepts produits par la commande : - RESULTAT =SIMP(statut='o',typ=CO,fr="SD_RESULTAT résultat de la commande"), - MAILLAGE =SIMP(statut='o',typ=CO,fr="MAILLAGE associé aux cham_no de la SD_RESULTAT"), - - # Sélection éventuelle d'un sous-ensemble des éléments à visualiser : - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - - # Sélection des numéros d'ordre : - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - ) -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -MACR_ELEM_DYNA=OPER(nom="MACR_ELEM_DYNA",op= 81,sd_prod=macr_elem_dyna, - fr="Définition d'un macro élément pour analyse modale ou harmonique par sous structuration dynamique", - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(EXCLUS('MATR_AMOR','AMOR_REDUIT' ),), - 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 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -MACR_ELEM_STAT=OPER(nom="MACR_ELEM_STAT",op=86,sd_prod=macr_elem_stat,reentrant='f', - UIinfo={"groupes":("Matrices/vecteurs",)}, - fr="Définition d'un macro-élément pour l'analyse statique par sous-structuration", - regles=(AU_MOINS_UN('DEFINITION','RIGI_MECA','MASS_MECA','CAS_CHARGE'), - ENSEMBLE('DEFINITION','EXTERIEUR'),), - DEFINITION =FACT(statut='f', - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - CHAR_MACR_ELEM =SIMP(statut='f',typ=char_meca), - INST =SIMP(statut='f',typ='R',defaut=0.0E+0 ), - NMAX_CAS =SIMP(statut='f',typ='I',defaut=10), - NMAX_CHAR =SIMP(statut='f',typ='I',defaut=10), - ), - EXTERIEUR =FACT(statut='f', - regles=(AU_MOINS_UN('NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - ), - RIGI_MECA =FACT(statut='f', - ), - MASS_MECA =FACT(statut='f', - ), - CAS_CHARGE =FACT(statut='f',max='**', - NOM_CAS =SIMP(statut='o',typ='TXM'), - SUIV =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), - INST =SIMP(statut='f',typ='R',defaut=0.E+0), - ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GNICOLAS G.NICOLAS - -from Macro.macr_fiab_impr_ops import macr_fiab_impr_ops - -MACR_FIAB_IMPR=MACRO(nom="MACR_FIAB_IMPR",op=macr_fiab_impr_ops, - docu="U7.04.41",UIinfo={"groupe":("Impression",)}, - fr="Imprimer les valeurs à transmettre au logiciel de fiabilité.", - ang="Print values for the fiability software", -# -# 1. Le niveau d'information -# - INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -# -# 2. Impression de la valeur de la cible -# -# 2.1. ==> La table contenant la valeur à imprimer -# - TABLE_CIBLE = SIMP(statut='o',typ=table_sdaster, - fr="Table contenant la valeur cible.", - ang="Table which includes the target value."), -# -# 2.2. ==> Le nom du paramètre associé à la valeur cible dans cette table -# - NOM_PARA_CIBLE = SIMP(statut='o',typ='TXM', - fr="Nom du paramètre associé à la valeur cible.", - ang="Name of the parameter connected to the target value."), -# -# 3. Impressions des valeurs des éventuels gradients -# - GRADIENTS = FACT(statut='f',min=1,max='**', -# -# 3.1. ==> La table contenant la valeur à imprimer -# - TABLE = SIMP(statut='o',typ=table_sdaster, - fr="Table contenant le gradient.", - ang="Table which includes the gradient."), -# -# 3.2. ==> Le paramètre sensible -# - PARA_SENSI = SIMP(statut='o',typ=(para_sensi,theta_geom), - fr="Paramètre sensible associé au gradient.", - ang="Sensitivity parameter connected to the gradient."), -# -# 3.3. ==> Le nom du paramètre associé au gradient dans cette table -# - NOM_PARA = SIMP(statut='o',typ='TXM', - fr="Nom du paramètre associé au gradient.", - ang="Name of the parameter connected to the gradient."), -# - ), -# -); -#& MODIF COMMANDE DATE 04/10/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GNICOLAS G.NICOLAS - -from Macro.macr_fiabilite_ops import macr_fiabilite_ops - -# -#==== -# 1. Le retour : une liste de rééls. -#==== -# -def macr_fiabilite_prod ( self , **args ): - return listr8_sdaster -# -#==== -# 2. L'entete -#==== -# -MACR_FIABILITE = MACRO ( nom="MACR_FIABILITE",op=macr_fiabilite_ops, - docu="U7.03.31",UIinfo={"groupe":("Post traitements",)}, - sd_prod=macr_fiabilite_prod, - fr="Calcule les probabiltés de dépassement de seuil (mécanique de fiabilité).", - ang="Fiability mechanics.", -# -#==== -# 3. Le niveau d'information -#==== -# - INFO = SIMP(statut="f",typ="I",defaut=1,into=(1,2)), -# -#==== -# 4. Nom et Version du logiciel de fiabilité -#==== -# - LOGICIEL = SIMP(statut="f",typ="TXM",defaut="MEFISTO", - into=("MEFISTO",), - fr="Nom du logiciel de fiabilité.", - ang="Fiability software name."), -# - VERSION = SIMP(statut="f",typ="TXM",defaut="V3_2", - into=("V3_2", "V3_N"), - fr="Version du logiciel de fiabilité.", - ang="Fiability software release."), -# -#==== -# 5. Les entrees-sorties du calcul ASTER déterministe -#==== -# -# 5.1. ==> Le jeu de commandes déterministe -# - UNITE_ESCL = SIMP(statut="o",typ="I", - fr="Unité logique associée aux commandes du calcul ASTER déterministe.", - ang="Logical unit for the commands of the ASTER deterministic calculation."), -# -# 5.2. ==> Le destin des messages produits par ASTER -# - MESS_ASTER = SIMP(statut="f",typ="TXM",defaut="DERNIER", - into=("AUCUN", "DERNIER", "TOUS"), - fr="Quels messages ASTER récupérer.", - ang="Which ASTER messages must be kept."), -# -#==== -# 6. Options -#==== -# 6.1. ==> Générales -# -# 6.1.1. ==> La valeur du seuil -# - SEUIL = SIMP(statut="o",typ="R",max=1, - fr="Le seuil de défaillance.", - ang="Failure threshold."), -# -# 6.1.2. ==> Le type du seuil : on a deux cas de figure selon que -# la défaillance a lieu au dessus d'un seuil maximum ou -# en dessous d'un seuil minimum -# - SEUIL_TYPE = SIMP(statut="o",typ="TXM",max=1, - into=("MINIMUM","MAXIMUM"), - fr="Que faut-il ne pas dépasser : un maximum ou un minimum.", - ang="What is the failure threshold : maximum or minimum."), -# -# 6.2. ==> Pour MEFISTO -# -### en attente de résolution de AL 2004-006 (1/2) b_mefisto=BLOC( condition = "LOGICIEL=='MEFISTO'", -# -# 6.2.1. ==> Pilotage de la recherche du point de conception -# - RECH_PT_CONCEPT = SIMP(statut="f",typ="TXM",defaut="OUI", - into=("OUI","NON"), - fr="Pour trouver le point de conception.", - ang="To find the design point."), -# - b_rech_pt_concept=BLOC( condition = "RECH_PT_CONCEPT=='OUI'", -# - EPSILON_U = SIMP(statut="f",typ="R",defaut=1.0E-2, - fr="Précision du test d'arret sur les points itératifs dans l'espace standard.", - ang="Precision of stop test for iterative points in standard space."), -# - EPSILON_G = SIMP(statut="f",typ="R",defaut=1.0E-2, - fr="Précision du test d'arret sur la proximité de la surface d'état limite.", - ang="Precision of stop test for limit state surface."), -# - TAU = SIMP(statut="f",typ="R",defaut=5.0E-1, - fr="Paramètre de la méthode de minimisation.", - ang="Parameter for the minimization method."), -# - OMEGA = SIMP(statut="f",typ="R",defaut=1.0E-4, - fr="Paramètre de la méthode de minimisation.", - ang="Parameter for the minimization method."), -# - ITER_MAX = SIMP(statut="f",typ="I",defaut=50, - fr="Nombre maximum d'itérations.", - ang="Maximum number of iterations."), - ), -# -# 6.2.2. ==> Méthode(s) employée(s) pour la probabilité de défaillance -# - METHODE_FORM = SIMP(statut="f",typ="TXM",defaut="OUI", - into=("OUI","NON"), - fr="Recherche de la probabilité de défaillance avec la méthode FORM.", - ang="Research of failure probability with FORM method."), -# - METHODE_SORM = SIMP(statut="f",typ="TXM",defaut="NON", - into=("OUI","NON"), - fr="Recherche de la probabilité de défaillance avec la méthode SORM.", - ang="Research of failure probability with SORM method."), -# - TIRAGE_IMPORTANCE = SIMP(statut="f",typ="TXM",defaut="NON", - into=("OUI","NON"), - fr="Recherche de la probabilité de défaillance avec le tirage d'importance.", - ang="Research of failure probability with ."), -# - b_tirage_importance=BLOC( condition = "TIRAGE_IMPORTANCE=='OUI'", -# - NB_SIMULATION = SIMP(statut="f",typ="I",defaut=3, - fr="Nombre de simulations pour le tirage d'importance.", - ang="Number of simulation for."), -# - ), -# -# 6.2.3. ==> Création d'une surface de réponse polynomiale -# - POLYNOME_TAYLOR = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),), - HGRAD = SIMP(statut="f",typ="R",defaut=1.0E-2, - fr="Pas incrémental pour le calcul des gradients.", - ang="Step for calculation of gradients."), - HHESS = SIMP(statut="f",typ="R",defaut=1.0E-2, - fr="Pas incrémental pour le calcul des dérivées secondes.", - ang="Step for calculation of second derivatives."), -# -# 6.2.4. ==> Recherche d'un plan d'expérience -# - PLAN_EXPERIENCE = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"), - fr="Construction d'un plan d'expérience.", - ang="Construction of an experiment plan."), -# - b_plan_experience=BLOC( condition = "PLAN_EXPERIENCE=='OUI'", -# - ALPHA = SIMP(statut="f",typ="R",defaut=2.0E-1, - fr="Plan d'expérience : maille du plan de type composite centré.", - ang="Experiment plane : mesh centered composite."), -# - BETA = SIMP(statut="f",typ="R",defaut=4.0E-1, - fr="Plan d'expérience : maille du plan de type factoriel.", - ang="Experiment plane : mesh factor."), -# - ), -# -# 6.2.5. ==> Les tests -# 6.2.5.1. ==> Test de la sphere -# - T_SPHERE = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"), - fr="Test de la sphère.", - ang="Sphere test."), -# - b_test_de_la_sphere=BLOC( condition = "T_SPHERE=='OUI'", -# - METHODE_TEST = SIMP(statut="f",typ="TXM",defaut="GAUSSIENNE", - into=("GAUSSIENNE","PARAMETRIQUE","REJECTION"), - fr="Type de méthode.", - ang="Method."), -# - NB_POINT = SIMP(statut="f",typ="I",max=1,defaut=60, - fr="Nombre de points de la sphere.", - ang="Number of points over the sphere.") - ), -# -# 6.2.5.2. ==> Test du maximum fort -# - T_MAXIMUM_FORT = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"), - fr="Test du maximum fort.", - ang="Strong maximum test."), -# - b_test_du_maximum_fort=BLOC( condition = "T_MAXIMUM_FORT=='OUI'", -# - COS_LIM = SIMP(statut="f",typ="R",max=1,defaut=1.0, - fr="Cosinus de l'angle d'exclusion.", - ang="Cosine of angle of exclusion."), -# - DPROB = SIMP(statut="f",typ="R",max=1,defaut=4.3E-1, - fr="Fraction d'iso-densité de probabilité de défaillance.", - ang="Fraction.") -# - ), -# -# 6.2.5.3. ==> Test du hessien -# - T_HESSIEN = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"), - fr="Test du hessien.", - ang="Hessian test."), -# -# 6.2.6. ==> Les correlations entre les variables -# - MATRICE = SIMP(statut="f",typ="R",max="**", - fr="Matrice de corrélation entre les variables.", - ang="Correlation matrix."), -# -### en attente de résolution de AL 2004-006 (2/2) ), -# -#==== -# 7. Definition des paramètres -#==== -# - VARIABLE = FACT(statut="o",min=1,max="**", -# -# 7.1. ==> Nom de la variable -# - NOM = SIMP(statut="o",typ="TXM", - fr="Nom de la variable, identique au nom de concept PARA_SENSI.", - ang="Name of the variable, identical to the name of the PARA_SENSI conceipt."), -# -# 7.2. ==> Loi de distribution -# - LOI = SIMP(statut="o",typ="TXM", - into=("UNIFORME","NORMALE","LOGNORMALE","NORMALE_TRONQUEE"), - fr="Choix de la loi", - ang="Law."), -# -# 7.2.1. ==> Loi normale -# - b_normale=BLOC(condition="LOI=='NORMALE'", -# - VALE_MOY = SIMP(statut="o",typ="R",max=1, - fr="Valeur moyenne.", - ang="Mean value."), -# - ECART_TYPE = SIMP(statut="o",typ="R",max=1, - fr="Ecart type.", - ang="Standard deviation."), -# - ), -# -# 7.2.2. ==> Loi lognormale -# - b_lognormale=BLOC(condition="LOI=='LOGNORMALE'", -# - VALE_MIN = SIMP(statut="o",typ="R",max=1, - fr="Valeur minimale.", - ang="Minimal value."), -# - VALE_MOY = SIMP(statut="f",typ="R",max=1, - fr="Valeur moyenne dans l'espace de la loi normale.", - ang="Mean value in the space of the normal law."), -# - ECART_TYPE = SIMP(statut="f",typ="R",max=1, - fr="Ecart type dans l'espace de la loi normale.", - ang="Standard deviation in the space of the normal law."), -# - VALE_MOY_PHY = SIMP(statut="f",typ="R",max=1, - fr="Valeur moyenne dans l'espace physique.", - ang="Mean value in the physical space."), -# - ECART_TYPE_PHY = SIMP(statut="f",typ="R",max=1, - fr="Ecart type dans l'espace physique.", - ang="Standard deviation in the physical space."), -# - regles=(AU_MOINS_UN("VALE_MOY" ,"VALE_MOY_PHY"), - AU_MOINS_UN("ECART_TYPE","ECART_TYPE_PHY"), - EXCLUS ("VALE_MOY" ,"VALE_MOY_PHY"), - EXCLUS ("VALE_MOY" ,"ECART_TYPE_PHY"), - EXCLUS ("ECART_TYPE","VALE_MOY_PHY"), - EXCLUS ("ECART_TYPE","ECART_TYPE_PHY")), -# - ), -# -# 7.2.3. ==> Loi uniforme -# - b_uniforme=BLOC(condition="LOI=='UNIFORME'", -# - VALE_MIN = SIMP(statut="o",typ="R",max=1, - fr="Valeur minimale.", - ang="Minimal value."), -# - VALE_MAX = SIMP(statut="o",typ="R",max=1, - fr="Valeur maximale.", - ang="Maximal value."), -# - ), -# -# 7.2.4. ==> Loi normale tronquée -# - b_normale_tronquee=BLOC(condition="LOI=='NORMALE_TRONQUEE'", -# - VALE_MOY = SIMP(statut="o",typ="R",max=1, - fr="Valeur moyenne de la loi normale complète.", - ang="Mean value for the entire normal law."), -# - ECART_TYPE = SIMP(statut="o",typ="R",max=1, - fr="Ecart type de la loi normale complète.", - ang="Standard deviation for the entire normal law."), -# - VALE_MIN = SIMP(statut="o",typ="R",max=1, - fr="Valeur minimale.", - ang="Minimal value."), -# - VALE_MAX = SIMP(statut="o",typ="R.",max=1, - fr="Valeur maximale.", - ang="Maximal value."), -# - ), -# -# 7.3. ==> Paramètres de calcul -# 7.3.1. ==> Soit on cherche le point de conception, soit on le connait deja -# - regles=(EXCLUS("POINT_INI","POINT_CONCEPT"), - EXCLUS("POINT_REF","POINT_CONCEPT"),), -# -# 7.3.2. ==> Quand on cherche le point de conception, on peut préciser le départ de l'algorithme. -# Si on ne le fait pas, le programme prendra la valeur moyenne. -# - POINT_INI = SIMP(statut="f",typ="R",max=1, - fr="Point de démarrage de l'algorithme itératif.", - ang="Initial point for iterative process."), -# -# 7.3.3. ==> Quand on cherche le point de conception, on peut préciser un point de référence pour normaliser. -# Si on ne le fait pas, le programme prendra la valeur moyenne. -# - POINT_REF = SIMP(statut="f",typ="R",max=1, - fr="Point de référence de l'algorithme itératif.", - ang="Reference point for iterative process."), -# -# 7.3.4. ==> Quand on cherche uniquement la probabilité de défaillance, il faut donner le point de conception -# - POINT_CONCEPT = SIMP(statut="f",typ="R",max=1, - fr="Point de conception.", - ang="Design point."), -# -# 7.4. ==> Mode d'obtention du gradient par rapport à ce paramètre -# - GRADIENT = SIMP(statut="o",typ="TXM",max=1, - into=("OUI","NON"), - fr="ASTER calcule directement le gradient.", - ang="ASTER computes the gradient for this parameter."), - - b_gradient=BLOC(condition="GRADIENT=='NON'", - INCREMENT = SIMP(statut="o",typ="R",max=1, - fr="Incrément dans la direction.", - ang="Direction increment."), - ), - - ), -# -); -#& MODIF COMMANDE DATE 07/11/2005 AUTEUR GNICOLAS G.NICOLAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GNICOLAS G.NICOLAS - -from Macro.macr_adap_mail_ops import macr_adap_mail_ops - -MACR_INFO_MAIL=MACRO(nom="MACR_INFO_MAIL",op=macr_adap_mail_ops, - docu="U7.03.02-b",UIinfo={"groupe":("Maillage",)}, - fr="Donner des informations sur un maillage.", - ang="To give information about a mesh.", -# -# 1. Le niveau d'information -# - INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -# -# 2. Version de HOMARD -# - VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V7_7", - into=("V7_7", "V7_N", "V7_N_PERSO", "V8_N"), - 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. Gestion des éléments autres que des simplexes -# 0 : autres elements refusés -# 1 : analyse exclusivement sur les simplexes, mais autres éléments acceptés -# 2 : tous (defaut) -# - NON_SIMPLEXE = SIMP(statut='f',typ='I',defaut=2,into=(0,1,2), - fr="Acceptation d'éléments quad, hexa et penta", - ang="quad, hexa and penta elements allowed" ), -# -# 5. Le nom du maillage a analyser -# - MAILLAGE = SIMP(statut='o',typ=maillage_sdaster, - fr="Maillage à analyser.", - ang="Mesh to be checked." ), -# -# 6. Suivi d'une frontiere -# - MAILLAGE_FRONTIERE = SIMP(statut='f',typ=maillage_sdaster, - fr="Maillage de la frontiere à suivre", - ang="Boundary mesh" ), -# - b_frontiere =BLOC( condition = " MAILLAGE_FRONTIERE != None " , - fr="Groupes définissant la frontière", - ang="Groups which define the boundary", - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**' ), - ) , -# -# 7. Les options ; par defaut, on ne fait que les nombres -# 7.1. Nombre de noeuds et elements -# - NOMBRE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), - fr="Nombre de noeuds et éléments du maillage", - ang="Number of nodes and elements in the mesh" ), -# -# 7.2. Determination de la qualite des elements du maillage -# - QUALITE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), - fr="Qualité du maillage", - ang="Mesh quality" ), -# -# 7.3. Connexite du maillage -# - CONNEXITE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), - fr="Connexité du maillage.", - ang="Mesh connexity." ), -# -# 7.4. Taille des sous-domaines du maillage -# - TAILLE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), - fr="Tailles des sous-domaines du maillage.", - ang="Sizes of mesh sub-domains." ), -# -# 7.5. Controle de la non-interpenetration des elements -# - INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), - fr="Controle de la non interpénétration des éléments.", - ang="Overlapping checking." ), -# -) ; -#& MODIF COMMANDE DATE 04/07/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macr_lign_coupe_ops import macr_lign_coupe_ops - -MACR_LIGN_COUPE=MACRO(nom="MACR_LIGN_COUPE",op=macr_lign_coupe_ops,sd_prod=table_sdaster, - reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - fr="Extraction des valeurs d'un résultat dans une ou plusieurs tables sur des lignes de coupe définies" - +" par deux points et un intervalle", - RESULTAT =SIMP(statut='o',typ=(evol_elas,evol_noli,evol_ther) ), -# extraction des résultats - b_meca =BLOC(condition = "AsType(RESULTAT) in (evol_elas,evol_noli)",fr="résultat mécanique", - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut='SIGM_NOEU_DEPL' ), - ), - b_ther =BLOC(condition = "AsType(RESULTAT) in (evol_ther,)",fr="résultat thermique", - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut='TEMP' ), - ), - UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=25), - MODELE =SIMP(statut='f',typ=modele_sdaster ), - LIGN_COUPE =FACT(statut='o',max='**', - regles=(UN_PARMI('NB_POINTS','GROUP_NO'),), - INTITULE =SIMP(statut='f',typ='TXM',), - GROUP_NO =SIMP(statut='f',typ=grno), - NB_POINTS =SIMP(statut='f',typ='I'), - b_nbpts = BLOC(condition = "NB_POINTS != None", - COOR_ORIG =SIMP(statut='o',typ='R',min=2,max=3), - COOR_EXTR =SIMP(statut='o',typ='R',min=2,max=3), - VECT_Y =SIMP(statut='f',typ='R',min=2,max=3),), - ), -) ; - - -#& MODIF COMMANDE DATE 08/11/2005 AUTEUR ASSIRE A.ASSIRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macr_recal_ops import macr_recal_ops - -def macr_recal_prod(self,**args ): - return listr8_sdaster - -MACR_RECAL = MACRO(nom="MACR_RECAL",op=macr_recal_ops, - UIinfo={"groupes":("Résultats et champs",)}, - sd_prod=macr_recal_prod, - fr="Réalise le recalage des calculs Aster sur des résultats expérimentaux" - +" ou sur d'autres résultats de calculs", - UNITE_ESCL =SIMP(statut='o',typ='I'), - RESU_EXP =SIMP(statut='o',typ=assd,max='**'), - POIDS =SIMP(statut='f',typ=assd,max='**'), - RESU_CALC =SIMP(statut='o',typ=assd,max='**'), - LIST_PARA =SIMP(statut='o',typ=assd,max='**'), - 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', - UNITE =SIMP(statut='f',typ='I',defaut=90), - FORMAT =SIMP(statut='f',typ='TXM',defaut='XMGRACE',into=("XMGRACE","GNUPLOT")), - INTERACTIF =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON")),), - INFO =SIMP(statut='f',typ='I',defaut=1,into=( 1, 2 ) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES - -from Macro.macro_elas_mult_ops import macro_elas_mult_ops - -def macro_elas_mult_prod(self,NUME_DDL,CAS_CHARGE,**args ): - if isinstance(NUME_DDL,CO) : - self.type_sdprod(NUME_DDL,nume_ddl_sdaster) - else: - self.type_sdprod(NUME_DDL,NUME_DDL.__class__) - if CAS_CHARGE[0]['NOM_CAS'] != None : return mult_elas - if CAS_CHARGE[0]['MODE_FOURIER'] != None : return fourier_elas - raise AsException("type de concept resultat non prevu") - -MACRO_ELAS_MULT=MACRO(nom="MACRO_ELAS_MULT",op=macro_elas_mult_ops,sd_prod=macro_elas_mult_prod,reentrant='f', - UIinfo={"groupes":("Résolution",)}, - fr="Calculer les réponses statiques linéaires pour différents cas de charges ou modes de Fourier", - regles=(UN_PARMI('CHAR_MECA_GLOBAL','CHAR_CINE_GLOBAL','LIAISON_DISCRET', ),), - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - NUME_DDL =SIMP(statut='f',typ=(nume_ddl_sdaster,CO)), - CHAR_MECA_GLOBAL=SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), - CHAR_CINE_GLOBAL=SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), - LIAISON_DISCRET =SIMP(statut='f',typ='TXM',into=("OUI",)), - CAS_CHARGE =FACT(statut='o',max='**', - regles=(UN_PARMI('NOM_CAS','MODE_FOURIER'), - UN_PARMI('CHAR_MECA','CHAR_CINE','VECT_ASSE'),), - NOM_CAS =SIMP(statut='f',typ='TXM' ), - MODE_FOURIER =SIMP(statut='f',typ='I' ), - TYPE_MODE =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ), - CHAR_MECA =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), - CHAR_CINE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), - OPTION =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - into=("EFGE_ELNO_DEPL","EPOT_ELEM_DEPL","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL", - "SIGM_ELNO_CART","EFGE_ELNO_CART","DEGE_ELNO_DEPL","EPSI_ELNO_DEPL", - "EPSI_ELGA_DEPL","EPSG_ELNO_DEPL","EPSG_ELGA_DEPL","EPSP_ELNO","EPSP_ELGA", - "ECIN_ELEM_DEPL","FLUX_ELGA_TEMP","FLUX_ELNO_TEMP","SOUR_ELGA_ELEC", - "PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG","INTE_ELNO_ACTI", - "INTE_ELNO_REAC","SIGM_NOZ1_ELGA","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', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT") ), - b_mult_front = BLOC ( condition = "METHODE == 'MULT_FRONT' ", - fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macro_matr_ajou_ops import macro_matr_ajou_ops - -def macro_matr_ajou_prod(self,MATR_AMOR_AJOU,MATR_MASS_AJOU,MATR_RIGI_AJOU,FORC_AJOU,**args): - self.type_sdprod(MATR_AMOR_AJOU,matr_asse_gene_r) - self.type_sdprod(MATR_MASS_AJOU,matr_asse_gene_r) - self.type_sdprod(MATR_RIGI_AJOU,matr_asse_gene_r) - if FORC_AJOU != None: - for m in FORC_AJOU: - self.type_sdprod(m['VECTEUR'],vect_asse_gene_r) - - return None - -MACRO_MATR_AJOU=MACRO(nom="MACRO_MATR_AJOU",op=macro_matr_ajou_ops,sd_prod=macro_matr_ajou_prod, - UIinfo={"groupes":("Matrices/vecteurs",)}, - fr="Calculer de facon plus condensée qu'avec CALC_MATR_AJOU des matrices de masse, d'amortissement" - +" ou de rigidité ajoutés", - regles=(AU_MOINS_UN('MODE_MECA','DEPL_IMPO','MODELE_GENE'), - AU_MOINS_UN('MATR_MASS_AJOU','MATR_AMOR_AJOU','MATR_RIGI_AJOU'), - EXCLUS('MODE_MECA','DEPL_IMPO','MODELE_GENE'), - EXCLUS('MONO_APPUI','MODE_STAT',), - ), - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), - GROUP_MA_FLUIDE =SIMP(statut='o',typ=grma), - GROUP_MA_INTERF =SIMP(statut='o',typ=grma), - MODELISATION =SIMP(statut='o',typ='TXM',into=("PLAN","AXIS","3D")), - FLUIDE =FACT(statut='o',max='**', - RHO =SIMP(statut='o',typ='R'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)), - GROUP_MA =SIMP(statut='f',typ=grma), - MAILLE =SIMP(statut='f',typ=ma), - ), - DDL_IMPO =FACT(statut='o',max='**', - regles=(UN_PARMI('NOEUD','GROUP_NO'), - UN_PARMI('PRES_FLUIDE','PRES_SORTIE'),), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - PRES_FLUIDE =SIMP(statut='f',typ='R'), - PRES_SORTIE =SIMP(statut='f',typ='R'), - ), - ECOULEMENT =FACT(statut='f', - GROUP_MA_1 =SIMP(statut='o',typ=grma), - GROUP_MA_2 =SIMP(statut='o',typ=grma), - VNOR_1 =SIMP(statut='o',typ='R'), - VNOR_2 =SIMP(statut='f',typ='R'), - POTENTIEL =SIMP(statut='f',typ=evol_ther), - ), - MODE_MECA =SIMP(statut='f',typ=mode_meca), - DEPL_IMPO =SIMP(statut='f',typ=cham_no_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_RIGI_AJOU =SIMP(statut='f',typ=CO,), - MATR_AMOR_AJOU =SIMP(statut='f',typ=CO,), - MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",),), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,),), - FORC_AJOU =FACT(statut='f',max='**', - DIRECTION =SIMP(statut='o',typ='R',max=3), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VECTEUR =SIMP(statut='o',typ=CO), - ), - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non iversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - NOEUD_DOUBLE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - AVEC_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), -) -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macro_matr_asse_ops import macro_matr_asse_ops - -def macro_matr_asse_prod(self,NUME_DDL,MATR_ASSE,**args): - if not MATR_ASSE: raise AsException("Impossible de typer les concepts resultats") - if not NUME_DDL : raise AsException("Impossible de typer les concepts resultats") - if isinstance(NUME_DDL,CO) : - self.type_sdprod(NUME_DDL,nume_ddl_sdaster) - else: - self.type_sdprod(NUME_DDL,NUME_DDL.__class__) - for m in MATR_ASSE: - opti=m['OPTION'] - - if opti in ( "RIGI_MECA","RIGI_FLUI_STRU","RIGI_MECA_LAGR" , - "MASS_MECA" , "MASS_FLUI_STRU" ,"RIGI_GEOM" ,"RIGI_ROTA", - "AMOR_MECA","IMPE_MECA","MASS_ID_MDEP_R","MASS_ID_MDNS_R", - "ONDE_FLUI","MASS_MECA_DIAG" ) : t=matr_asse_depl_r - - if opti in ( "RIGI_ACOU","MASS_ACOU","AMOR_ACOU",) : t=matr_asse_pres_c - - if opti in ( "RIGI_THER","MASS_THER","RIGI_THER_CONV" , - "RIGI_THER_CONV_D","MASS_ID_MTEM_R","MASS_ID_MTNS_R",) : t=matr_asse_temp_r - - if opti == "RIGI_MECA_HYST" : t= matr_asse_depl_c - - self.type_sdprod(m['MATRICE'],t) - return None - -MACRO_MATR_ASSE=MACRO(nom="MACRO_MATR_ASSE",op=macro_matr_asse_ops, - UIinfo={"groupes":("Matrices/vecteurs",)}, - sd_prod=macro_matr_asse_prod, - fr="Calcul des matrices assemblées (rigidité, masse, amortissement,...) ", - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - INST =SIMP(statut='f',typ='R',defaut=0.), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - CHARGE =SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**'), - NUME_DDL =SIMP(statut='o',typ=(nume_ddl_sdaster,CO)), - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT", - into=("LDLT","MULT_FRONT","GCPC","MUMPS")), - RENUM =SIMP(statut='f',typ='TXM',into=("SANS","RCMK","MD","MDA","METIS")), - ), - - MATR_ASSE =FACT(statut='o',max='**', - MATRICE =SIMP(statut='o',typ=CO), - OPTION =SIMP(statut='o',typ='TXM', - into=("RIGI_MECA","MASS_MECA","MASS_MECA_DIAG", - "AMOR_MECA","RIGI_MECA_HYST","IMPE_MECA", - "ONDE_FLUI","RIGI_FLUI_STRU","MASS_FLUI_STRU", - "RIGI_ROTA","RIGI_GEOM","RIGI_MECA_LAGR", - "RIGI_THER","MASS_THER", - "RIGI_ACOU","MASS_ACOU","AMOR_ACOU", - "MASS_ID_MTEM_R","MASS_ID_MTNS_R","MASS_ID_MDEP_R","MASS_ID_MDNS_R",) - ), - - b_rigi_meca = BLOC( condition = "OPTION=='RIGI_MECA'", - MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0), - ), - - b_rigi_geom = BLOC( condition = "OPTION=='RIGI_GEOM'", - SIEF_ELGA =SIMP(statut='o',typ=cham_elem_sief_r), - MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0), - ), - - b_rigi_meca_lagr = BLOC( condition = "OPTION=='RIGI_MECA_LAGR'", - THETA =SIMP(statut='o',typ=theta_geom), - PROPAGATION =SIMP(statut='f',typ='R'), - ), - - b_rigi_ther = BLOC( condition = "OPTION=='RIGI_THER'", - MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0), - ), - - ), # fin MATR_ASSE - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macro_miss_3d_ops import macro_miss_3d_ops - -MACRO_MISS_3D=MACRO(nom="MACRO_MISS_3D",op=macro_miss_3d_ops, - fr="Préparation des données puis exécution du logiciel MISS3D", - UIinfo={"groupes":("Matrices/vecteurs",)}, - OPTION =FACT(statut='o', - regles=(UN_PARMI('TOUT','MODULE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)), - MODULE =SIMP(statut='f',typ='TXM',into=("PRE_MISS","MISS_EVOL","MISS_IMPE")), - ), - PROJET =SIMP(statut='o',typ='TXM'), - REPERTOIRE =SIMP(statut='f',typ='TXM'), - VERSION =SIMP(statut='f',typ='TXM',into=("V1_2","V1_3",),defaut="V1_2"), - UNITE_IMPR_ASTER=SIMP(statut='f',typ='I',defaut=25), - UNITE_OPTI_MISS =SIMP(statut='f',typ='I',defaut=26), - UNITE_MODELE_SOL=SIMP(statut='f',typ='I',defaut=27), - UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macro_mode_meca_ops import macro_mode_meca_ops - -MACRO_MODE_MECA=MACRO(nom="MACRO_MODE_MECA",op=macro_mode_meca_ops,sd_prod=mode_meca, - reentrant='n',fr="Lancer une succession de calculs de modes propres réels", - UIinfo={"groupes":("Résolution",)}, - MATR_A =SIMP(statut='o',typ=matr_asse_depl_r ), - MATR_B =SIMP(statut='o',typ=matr_asse_depl_r ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -# ce mot cle ne devrait il pas etre dans calc_freq - METHODE =SIMP(statut='f',typ='TXM',defaut="SORENSEN", - into=("TRI_DIAG","JACOBI","SORENSEN",) ), - b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'", - PREC_ORTHO =SIMP(statut='f',typ='R',defaut= 1.E-12,val_min=0.E+0 ), - NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), - PREC_LANCZOS =SIMP(statut='f',typ='R',defaut= 1.E-8,val_min=0.E+0 ), - NMAX_ITER_QR =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ), - ), - b_jacobi =BLOC(condition = "METHODE == 'JACOBI'", - PREC_BATHE =SIMP(statut='f',typ='R',defaut= 1.E-10,val_min=0.E+0 ), - NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40,val_min=0 ), - PREC_JACOBI =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ), - NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12,val_min=0 ), - ), - b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'", - PREC_SOREN =SIMP(statut='f',typ='R',defaut= 0.E+0,val_min=0.E+0 ), - NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20,val_min=0 ), - PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717,val_min=0.E+0 ), - ), - OPTION =SIMP(statut='f',typ='TXM',defaut="SANS", - into=("MODE_RIGIDE","SANS") ), - CALC_FREQ =FACT(statut='d',min=0, - regles=(UN_PARMI('FREQ','FREQ_MAX'), - PRESENT_PRESENT('FREQ_MIN','FREQ_MAX'), - PRESENT_PRESENT('FREQ_MAX','NB_BLOC_FREQ'), - EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),), - FREQ =SIMP(statut='f',typ='R',min=2,validators=NoRepeat(),max='**',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, - STOP_ERREUR =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-3 ), - STURM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - NORM_MODE =FACT(statut='o',max='**', - MASS_INER =SIMP(statut='o',typ=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', - CRIT_EXTR =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN", - into=("MASS_EFFE_UN","MASS_GENE") ), - SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - IMPRESSION =FACT(statut='d', - TOUT_PARA =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - CUMUL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - CRIT_EXTR =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN", - into=("MASS_EFFE_UN","MASS_GENE",) ), - ), -) ; -#& MODIF COMMANDE DATE 20/06/2005 AUTEUR BOYERE E.BOYERE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macro_proj_base_ops import macro_proj_base_ops - -def macro_proj_base_prod(self,MATR_ASSE_GENE,VECT_ASSE_GENE,PROFIL,**args ): - if MATR_ASSE_GENE != None: - for m in MATR_ASSE_GENE: - self.type_sdprod(m['MATRICE'],matr_asse_gene_r) - if VECT_ASSE_GENE != None: - for v in VECT_ASSE_GENE: - self.type_sdprod(v['VECTEUR'],vect_asse_gene_r) - return None - -MACRO_PROJ_BASE=MACRO(nom="MACRO_PROJ_BASE",op=macro_proj_base_ops, - regles=(AU_MOINS_UN('MATR_ASSE_GENE','VECT_ASSE_GENE')), - UIinfo={"groupes":("Matrices/vecteurs",)}, - sd_prod=macro_proj_base_prod, - fr="Projection des matrices et/ou vecteurs assemblés sur une base (modale ou de RITZ)", - BASE =SIMP(statut='o',typ=(mode_meca,mode_stat,base_modale,mode_gene) ), - NB_VECT =SIMP(statut='f',typ='I',defaut= 9999), - PROFIL =SIMP(statut='f',typ='TXM',defaut="DIAG",into=("PLEIN","DIAG") ), - MATR_ASSE_GENE =FACT(statut='f',max='**', - MATRICE =SIMP(statut='o',typ=CO,), - regles=(UN_PARMI('MATR_ASSE','MATR_ASSE_GENE',),), - MATR_ASSE =SIMP(statut='f',typ=matr_asse_depl_r), - MATR_ASSE_GENE =SIMP(statut='f',typ=matr_asse_gene_r), - ), - VECT_ASSE_GENE =FACT(statut='f',max='**', - VECTEUR =SIMP(statut='o',typ=CO,), - regles=(UN_PARMI('VECT_ASSE','VECT_ASSE_GENE',),), - TYPE_VECT =SIMP(statut='f',typ='TXM',defaut="FORC"), - VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r), - VECT_ASSE_GENE =SIMP(statut='f',typ=vect_asse_gene_r), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -MAJ_CATA=PROC(nom="MAJ_CATA",op=20, - UIinfo={"groupes":("Gestion du travail",)}, - fr="Compilation des catalogues de commandes et d'éléments", - - ELEMENT =FACT(statut='f',), - -) ; -#& MODIF COMMANDE DATE 10/10/2005 AUTEUR BOITEAU O.BOITEAU -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -MECA_STATIQUE=OPER(nom="MECA_STATIQUE",op=46,sd_prod=evol_elas, - fr="Résoudre un problème de mécanique statique linéaire",reentrant='f', - UIinfo={"groupes":("Résolution",)}, - regles=(EXCLUS("INST","LIST_INST"), - AU_MOINS_UN('CHAM_MATER','CARA_ELEM',), ), - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='f',typ=cham_mater, - fr="le CHAM_MATER est nécessaire, sauf si le modèle ne contient que des éléments discrets (modélisations DIS_XXX)", - ang="CHAM_MATER is compulsory, except if the model contains only discret elements (modelizations DIS_XXX)"), - CARA_ELEM =SIMP(statut='f',typ=cara_elem, - fr="le CARA_ELEM est nécessaire dès que le modèle contient des éléments de structure : coques, poutres, ...", - ang="CARA_ELEM is compulsory as soon as the model contains structural elements : plates, beams, ..."), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - EXCIT =FACT(statut='o',max='**', - CHARGE =SIMP(statut='o',typ=(char_meca,char_cine_meca)), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), - ), - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - INST_FIN =SIMP(statut='f',typ='R'), - OPTION =SIMP(statut='f',typ='TXM',into=("SIEF_ELGA_DEPL","SANS"),defaut="SIEF_ELGA_DEPL",max=1, - fr="seule option : contraintes aux points de Gauss. Utiliser CALC_ELEM pour les autres.", - ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"), - - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","FETI","MUMPS") ), - - b_feti =BLOC(condition = "METHODE == 'FETI' ",fr="Paramètres de la méthode FETI 1", - PARTITION =SIMP(statut='o',typ=sd_feti_sdaster), - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut=1.E-6,val_min=0.), - NMAX_ITER =SIMP(statut='f',typ='I',defaut=0,val_min=0), - TYPE_REORTHO_DD =SIMP(statut='f',typ='TXM',defaut="GSM",into=("SANS","GS","GSM","IGSM") ), - NB_REORTHO_DD =SIMP(statut='f',typ='I',defaut=0,val_min=0), - NB_REORTHO_INST =SIMP(statut='f',typ='I',defaut=0,val_min=0), - PRE_COND =SIMP(statut='f',typ='TXM',defaut="LUMPE",into=("LUMPE","SANS") ), - SCALING =SIMP(statut='f',typ='TXM',defaut="MULT",into=("SANS","MULT") ), - VERIF_SDFETI =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - TEST_CONTINU =SIMP(statut='f',typ='R',defaut=1.E-8,val_min=0.), - INFO_FETI =SIMP(statut='f',typ='TXM',defaut='FFFFFFFFFF'), - STOCKAGE_GI =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","CAL") ), - NB_SD_PROC0 =SIMP(statut='f',typ='I',defaut=0,val_min=0), - ACCELERATION_SM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' or METHODE == 'FETI' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut=8), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut=1.E-6), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - - b_mumps =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS", - TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=20,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=1.E-6), - ), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GNICOLAS G.NICOLAS -MEMO_NOM_SENSI=PROC(nom="MEMO_NOM_SENSI",op=129, - UIinfo={"groupes":("Fonction",)}, - fr="Mémorisation des noms des concepts dérivés.", - ang="Memorisation of the names of the sensitive concepts.", - - regles=(AU_MOINS_UN('NOM','NOM_ZERO','NOM_UN'),), - - NOM=FACT(statut='f',max='**', - regles=(PRESENT_PRESENT('MOT_CLE','VALEUR','MOT_FACT' ),), - - NOM_SD=SIMP(statut='o',typ='TXM', - fr="Nom de la structure de base", - ang="Name of the basic structure"), - - PARA_SENSI=SIMP(statut='o',typ=(para_sensi,theta_geom), - fr="Nom du paramètre sensible", - ang="Name of the sensitive parameter"), - - NOM_COMPOSE=SIMP(statut='f',typ='TXM',defaut=" ", - fr="Nom de la structure composée", - ang="Name of the built structure"), - - MOT_FACT=SIMP(statut='f',typ='TXM',max='**', - fr="Liste des mots clés facteurs concernés par la dérivation", - ang="Factor keyword list involved in derivation"), - - MOT_CLE=SIMP(statut='f',typ='TXM',max='**', - fr="Liste des mots clés concernés par la dérivation", - ang="Keyword list involved in derivation"), - - VALEUR=SIMP(statut='f',typ='TXM',max='**', - fr="Liste des objets concernés par la dérivation", - ang="Object list involved in derivation"), - - ), - - NOM_ZERO=SIMP(statut='f',typ=fonction_sdaster, - fr="Nom de la fonction nulle", - ang="Name of the zero fonction"), - - NOM_UN =SIMP(statut='f',typ=fonction_sdaster, - fr="Nom de la fonction unité", - ang="Name of the one fonction"), - -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -MODE_ITER_CYCL=OPER(nom="MODE_ITER_CYCL",op= 80,sd_prod=mode_cycl, - fr="Calcul des modes propres d'une structure à répétitivité cyclique à partir" - +" d'une base de modes propres réels", - reentrant='n', - UIinfo={"groupes":("Résolution",)}, - BASE_MODALE =SIMP(statut='o',typ=base_modale ), - NB_MODE =SIMP(statut='f',typ='I',defaut= 999 ), - NB_SECTEUR =SIMP(statut='o',typ='I' ), - LIAISON =FACT(statut='o', - DROITE =SIMP(statut='o',typ='TXM' ), - GAUCHE =SIMP(statut='o',typ='TXM' ), - AXE =SIMP(statut='f',typ='TXM' ), - ), - VERI_CYCL =FACT(statut='f', - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF",) ), - DIST_REFE =SIMP(statut='f',typ='R' ), - ), - CALCUL =FACT(statut='o', - TOUT_DIAM =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NB_DIAM =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE" - ,into=("PLUS_PETITE","CENTRE","BANDE") ), - b_centre =BLOC(condition = "OPTION == 'CENTRE'", - FREQ =SIMP(statut='o',typ='R',), - ), - b_bande =BLOC(condition = "OPTION == 'BANDE'", - FREQ =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max=2), - ), -# NMAX_FREQ n a-t-il pas un sens qu avec OPTION CENTRE - NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10 ), - PREC_SEPARE =SIMP(statut='f',typ='R',defaut= 100. ), - PREC_AJUSTE =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 50 ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def mode_iter_inv_prod(MATR_A,MATR_C,TYPE_RESU,**args ): - if TYPE_RESU == "MODE_FLAMB" : return mode_flamb - if AsType(MATR_C) == matr_asse_depl_r : return mode_meca_c - if AsType(MATR_A) == matr_asse_depl_r : return mode_meca - if AsType(MATR_A) == matr_asse_pres_r : return mode_acou - if AsType(MATR_A) == matr_asse_gene_r : return mode_gene - raise AsException("type de concept resultat non prevu") - -MODE_ITER_INV=OPER(nom="MODE_ITER_INV",op= 44,sd_prod=mode_iter_inv_prod - ,fr="Calcul des modes propres par itérations inverses ; valeurs propres et modes réels ou complexes", - reentrant='n', - UIinfo={"groupes":("Résolution",)}, - MATR_A =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ), - MATR_B =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ), - MATR_C =SIMP(statut='f',typ=matr_asse_depl_r ), - TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE", - into=("MODE_FLAMB","DYNAMIQUE"),fr="Type d analyse" ), - b_dynam =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'", - CALC_FREQ =FACT(statut='o',fr="Choix des paramètres pour le calcul des valeurs propres", - - OPTION =SIMP(statut='f',typ='TXM',defaut="AJUSTE",into=("SEPARE","AJUSTE","PROCHE"), - fr="Choix de l option pour estimer les valeurs propres" ), - FREQ =SIMP(statut='o',typ='R',max='**'), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 0,val_min=0 ), - NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30,val_min=0 ), - PREC_SEPARE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0 ), - NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15,val_min=0 ), - PREC_AJUSTE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0 ), - - NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0, ), - SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, ), - ), - ), - b_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'", - CALC_FREQ =FACT(statut='o',fr="Choix des paramètres pour le calcul des valeurs propres", - - OPTION =SIMP(statut='f',typ='TXM',defaut="AJUSTE",into=("SEPARE","AJUSTE","PROCHE"), - fr="Choix de l option pour estimer les valeurs propres" ), - CHAR_CRIT =SIMP(statut='o',typ='R',validators=NoRepeat(),max='**' ), - NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 0,val_min=0 ), - NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30,val_min=0 ), - PREC_SEPARE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0, ), - NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15 ), - PREC_AJUSTE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0, ), - - NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0, ), - SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, ), - ), - ), - CALC_MODE =FACT(statut='d',min=0,fr="Choix des paramètres pour le calcul des vecteurs propres", - OPTION =SIMP(statut='f',typ='TXM',defaut="DIRECT",into=("DIRECT","RAYLEIGH") ), - PREC =SIMP(statut='f',typ='R',defaut= 1.E-5,val_min=0.E+0,fr="Précision de convergence" ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ), - ), - VERI_MODE =FACT(statut='d',min=0, - STOP_ERREUR =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, - fr="Valeur limite admise pour l ereur a posteriori des modes" ), - ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des param\350tres de sensibilit\351.", - ang="List of sensitivity parameters", - ), - b_sensibilite =BLOC(condition = "SENSIBILITE != None", - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - EXCIT =FACT(statut='f',max='**',), # que pour NMDOME - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - TITRE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def mode_iter_simult_prod(MATR_A,MATR_C,TYPE_RESU,**args ): - if TYPE_RESU == "MODE_FLAMB" : return mode_flamb - if AsType(MATR_C) == matr_asse_depl_r : return mode_meca_c - if AsType(MATR_A) == matr_asse_depl_r : return mode_meca - if AsType(MATR_A) == matr_asse_depl_c : return mode_meca_c - if AsType(MATR_A) == matr_asse_pres_r : return mode_acou - if AsType(MATR_A) == matr_asse_gene_r : return mode_gene - raise AsException("type de concept resultat non prevu") - -MODE_ITER_SIMULT=OPER(nom="MODE_ITER_SIMULT",op= 45,sd_prod=mode_iter_simult_prod, - fr="Calcul des modes propres par itérations simultanées ; valeurs propres et" - +" modes propres réels ou complexes", - reentrant='n', - UIinfo={"groupes":("Résolution",)}, - MATR_A =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,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,matr_asse_gene_r) ), - METHODE =SIMP(statut='f',typ='TXM',defaut="SORENSEN", - into=("TRI_DIAG","JACOBI","SORENSEN") ), - b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'", - PREC_ORTHO =SIMP(statut='f',typ='R',defaut= 1.E-12,val_min=0.E+0 ), - NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), - PREC_LANCZOS =SIMP(statut='f',typ='R',defaut= 1.E-8,val_min=0.E+0 ), - NMAX_ITER_QR =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ), - ), - b_jacobi =BLOC(condition = "METHODE == 'JACOBI'", - PREC_BATHE =SIMP(statut='f',typ='R',defaut= 1.E-10,val_min=0.E+0 ), - NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40,val_min=0 ), - PREC_JACOBI =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ), - NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12,val_min=0 ), - ), - b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'", - PREC_SOREN =SIMP(statut='f',typ='R',defaut= 0.E+0,val_min=0.E+0 ), - NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20,val_min=0 ), - PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717,val_min=0.E+0 ), - ), - TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE", - into=("MODE_FLAMB","DYNAMIQUE"), - fr="Type d analyse" ), - OPTION =SIMP(statut='f',typ='TXM',defaut="SANS",into=("MODE_RIGIDE","SANS"), - fr="Calcul des modes de corps rigide, uniquement pour la méthode TRI_DIAG" ), - - b_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'", - CALC_FREQ =FACT(statut='d',min=0, - OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE"), - fr="Choix de l option et par conséquent du shift du problème modal" ), - b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres", - NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ), - ), - b_centre =BLOC(condition = "OPTION == 'CENTRE'", - fr="Recherche des valeurs propres les plus proches d une valeur donnée", - CHAR_CRIT =SIMP(statut='o',typ='R', - fr="Charge critique autour de laquelle on cherche les charges critiques propres"), - NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ), - ), - b_bande =BLOC(condition = "(OPTION == 'BANDE')", - fr="Recherche des valeurs propres dans une bande donnée", - CHAR_CRIT =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max=2, - fr="Valeur des deux charges critiques délimitant la bande de recherche"), - ), - APPROCHE =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG"), - fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ), - regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),), - DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ), - COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ), - NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0 ), - SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ), - ), - ), - - b_dynam =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'", - CALC_FREQ =FACT(statut='d',min=0, - OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE"), - fr="Choix de l option et par conséquent du shift du problème modal" ), - b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres", - NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ), - ), - b_centre =BLOC(condition = "OPTION == 'CENTRE'", - fr="Recherche des valeurs propres les plus proches d une valeur donnée", - FREQ =SIMP(statut='o',typ='R', - fr="Fréquence autour de laquelle on cherche les fréquences propres"), - AMOR_REDUIT =SIMP(statut='f',typ='R',), - NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ), - ), - b_bande =BLOC(condition = "(OPTION == 'BANDE')", - fr="Recherche des valeurs propres dans une bande donnée", - FREQ =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max=2, - fr="Valeur des deux fréquences délimitant la bande de recherche"), - ), - APPROCHE =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG","COMPLEXE"), - fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ), - regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),), - DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ), - COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ), - NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0 ), - SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ), - ), - ), - - VERI_MODE =FACT(statut='d',min=0, - STOP_ERREUR =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-3,val_min=0.E+0 ), - SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-6,val_min=0.E+0, - fr="Valeur limite admise pour l ereur a posteriori des modes" ), - STURM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des param\350tres de sensibilit\351.", - ang="List of sensitivity parameters", - ), - b_sensibilite =BLOC(condition = "SENSIBILITE != None", - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - EXCIT =FACT(statut='f',max='**',), # que pour NMDOME - ), - STOP_FREQ_VIDE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def mode_stat_prod(MODE_STAT,FORCE_NODALE,PSEUDO_MODE,**args): - if (MODE_STAT != None) : return mode_stat_depl - if (PSEUDO_MODE !=None) : return mode_stat_acce - if (FORCE_NODALE != None) : return mode_stat_forc - raise AsException("type de concept resultat non prevu") -MODE_STATIQUE=OPER(nom="MODE_STATIQUE",op= 93,sd_prod=mode_stat_prod, - fr="Calcul de modes statiques pour un déplacement, une force ou une accélération unitaire imposé", - reentrant='n', - UIinfo={"groupes":("Résolution",)}, - MATR_RIGI =SIMP(statut='o',typ=matr_asse_depl_r ), - MATR_MASS =SIMP(statut='f',typ=matr_asse_depl_r ), - regles=(UN_PARMI('MODE_STAT','FORCE_NODALE','PSEUDO_MODE'),), - MODE_STAT =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'), - UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ,), - NOEUD =SIMP(statut='f',typ=no ,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno ,max='**'), - TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ,), - AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'), - SANS_CMP =SIMP(statut='f',typ='TXM',max='**'), - ), - FORCE_NODALE =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'), - UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",), ), - NOEUD =SIMP(statut='f',typ=no ,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno ,max='**'), - TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",), ), - AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'), - SANS_CMP =SIMP(statut='f',typ='TXM',max='**'), - ), - PSEUDO_MODE =FACT(statut='f',max='**', - regles=(UN_PARMI('AXE','DIRECTION','TOUT','NOEUD','GROUP_NO' ),), - AXE =SIMP(statut='f',typ='TXM',into=("X","Y","Z"),max=3), - DIRECTION =SIMP(statut='f',typ='R',min=3,max=3), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)), - NOEUD =SIMP(statut='f',typ=no ,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno ,max='**'), - b_dir =BLOC(condition = "DIRECTION != None", - NOM_DIR =SIMP(statut='f',typ='TXM' ),), - b_cmp =BLOC(condition="TOUT!= None or NOEUD!=None or GROUP_NO!=None", - regles=(UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),), - TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ), - AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'), - SANS_CMP =SIMP(statut='f',typ='TXM',max='**'), - ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -MODI_BASE_MODALE=OPER(nom="MODI_BASE_MODALE",op= 149,sd_prod=mode_meca, - reentrant='f', - fr="Définir la base modale d'une structure sous écoulement", - UIinfo={"groupes":("Matrices/vecteurs",)}, -# la commande modi_base _modale : reentrant = f ou o - regles=(EXCLUS('AMOR_UNIF','AMOR_REDUIT', ),), - BASE =SIMP(statut='o',typ=mode_meca ), - BASE_ELAS_FLUI =SIMP(statut='o',typ=melasflu_sdaster ), - NUME_VITE_FLUI =SIMP(statut='o',typ='I' ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - AMOR_UNIF =SIMP(statut='f',typ='R' ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -MODI_MAILLAGE=OPER(nom="MODI_MAILLAGE",op= 154,sd_prod=maillage_sdaster, - fr="Effectuer des modifications sur un maillage existant: réorienter des mailles servant," - +" à l'application d'une pression, à la modélisation du contact,...", - reentrant='o', - UIinfo={"groupes":("Maillage",)}, - regles=(AU_MOINS_UN('ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE', - 'TRANSLATION','ROTATION','MODI_BASE','ECHELLE','ORIE_SHB8','SYMETRIE', - ), - PRESENT_ABSENT('ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',), - PRESENT_ABSENT('DEFORME','ORIE_FISSURE','EQUE_PIQUA','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',), - PRESENT_ABSENT('EQUE_PIQUA','ORIE_FISSURE','DEFORME','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',), - PRESENT_ABSENT('ORIE_PEAU_2D','ORIE_FISSURE','DEFORME','EQUE_PIQUA', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',), - PRESENT_ABSENT('ORIE_PEAU_3D','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', - 'PLAQ_TUBE','MODI_MAILLE',), - PRESENT_ABSENT('ORIE_NORM_COQUE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', - 'PLAQ_TUBE','MODI_MAILLE',), - PRESENT_ABSENT('PLAQ_TUBE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','MODI_MAILLE',), - PRESENT_ABSENT('MODI_MAILLE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE',), - EXCLUS('EQUE_PIQUA','PLAQ_TUBE'), - EXCLUS('EQUE_PIQUA','TUBE_COUDE'), - EXCLUS('ROTATION','MODI_BASE'), - EXCLUS('SYMETRIE','ROTATION'), - EXCLUS('SYMETRIE','TRANSLATION'), - EXCLUS('SYMETRIE','MODI_BASE'), - EXCLUS('SYMETRIE','ECHELLE'), - ), - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), - - ORIE_FISSURE =FACT(statut='f', - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - ), - - DEFORME =FACT(statut='f', - OPTION =SIMP(statut='o',typ='TXM',into=("TRAN","TRAN_APPUI") ), - DEPL =SIMP(statut='o',typ=cham_no_depl_r ), - b_deform =BLOC(condition = "OPTION=='TRAN_APPUI'", - GROUP_NO_APPUI = SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**' ), - GROUP_NO_STRU = SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**' ),), - ), - - EQUE_PIQUA =FACT(statut='f', - GROUP_NO =SIMP(statut='o',typ=grno), - E_BASE =SIMP(statut='o',typ='R' ), - DEXT_BASE =SIMP(statut='o',typ='R' ), - L_BASE =SIMP(statut='o',typ='R' ), - L_CHANF =SIMP(statut='o',typ='R' ), - TYPE =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2")), - H_SOUD =SIMP(statut='o',typ='R' ), - ANGL_SOUD =SIMP(statut='o',typ='R' ), - JEU_SOUD =SIMP(statut='o',typ='R' ), - E_CORP =SIMP(statut='o',typ='R' ), - DEXT_CORP =SIMP(statut='o',typ='R' ), - AZIMUT =SIMP(statut='o',typ='R' ), - RAFF_MAIL =SIMP(statut='o',typ='TXM' ), - X_MAX =SIMP(statut='o',typ='R' ), - ), - ORIE_PEAU_2D =FACT(statut='f',max='**', - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - ), - ORIE_PEAU_3D =FACT(statut='f',max='**', - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - ), - ORIE_SHB8 =FACT(statut='f',max=1, - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - ), - ORIE_NORM_COQUE =FACT(statut='f',max='**', - regles=(EXCLUS('NOEUD','GROUP_NO'), - PRESENT_PRESENT('NOEUD','VECT_NORM'), - PRESENT_PRESENT('GROUP_NO','VECT_NORM'),), - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - VECT_NORM =SIMP(statut='f',typ='R',max=3), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - ), - b_modele =BLOC(condition = "(ORIE_PEAU_2D != None) or (ORIE_PEAU_3D != None) or(ORIE_NORM_COQUE != None)", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - ), - PLAQ_TUBE =FACT(statut='f', - DEXT =SIMP(statut='o',typ='R' ), - EPAIS =SIMP(statut='o',typ='R' ), - L_TUBE_P1 =SIMP(statut='o',typ='R' ), - AZIMUT =SIMP(statut='f',typ='R',defaut= 90. ), - COUTURE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ), - ), - TUBE_COUDE =FACT(statut='f', - ANGLE =SIMP(statut='o',typ='R' ), - R_CINTR =SIMP(statut='o',typ='R' ), - L_TUBE_P1 =SIMP(statut='o',typ='R' ), - ), - MODI_MAILLE =FACT(statut='f',max=1, - regles=(AU_MOINS_UN('GROUP_MA_FOND','MAILLE_FOND','GROUP_NO_FOND','NOEUD_FOND'),), - OPTION =SIMP(statut='o',typ='TXM',into=("NOEUD_QUART",) ), - GROUP_MA_FOND =SIMP(statut='f',typ=grma,validators=NoRepeat(),max=1), - MAILLE_FOND =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max=1), - GROUP_NO_FOND =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1), - NOEUD_FOND =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=1), - ), - MODI_BASE =FACT(statut='f', - VECT_X =SIMP(statut='o',typ='R',min=2,max=3), - VECT_Y =SIMP(statut='f',typ='R',min=2,max=3), - ), - ECHELLE =SIMP(statut='f',typ='R',), - TRANSLATION =SIMP(statut='f',typ='R',min=2,max=3), - ROTATION =FACT(statut='f',max='**', - POIN_1 =SIMP(statut='o',typ='R',min=2,max=3), - ANGL =SIMP(statut='o',typ='R',defaut= 0.E+0 ), - regles=(EXCLUS('DIR','POIN_2'),), - POIN_2 =SIMP(statut='f',typ='R',min=2,max=3), - DIR =SIMP(statut='f',typ='R',min=2,max=3), - ), - SYMETRIE =FACT(statut='f',max='**', - fr = "Symétrie du maillage par rapport à un plan en 3D ou à une droite en 2D.", - POINT =SIMP(statut='o',typ='R',min=2,max=3, - fr="Point appartenant à la droite ou au plan."), - AXE_1 =SIMP(statut='o',typ='R',min=2,max=3, - fr="Vecteur directeur de la droite ou 1er vecteur appartenant au plan."), - AXE_2 =SIMP(statut='f',typ='R',min=3,max=3, - fr="2nd vecteur appartenant du plan."), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 06/07/2005 AUTEUR GENIAUT S.GENIAUT -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -MODI_MODELE_XFEM=OPER(nom="MODI_MODELE_XFEM",op= 113,sd_prod=modele_sdaster,docu="U4.44.12-e",reentrant='f', - UIinfo={"groupes":("Modélisation",)}, - fr="Engendrer ou enrichir une structure de donnees en affectant les cham_gd associes", - - MODELE_IN =SIMP(statut='o',typ=modele_sdaster,min=01,max=01,), - FISSURE =SIMP(statut='o',typ=fiss_xfem,min=01,max=01,), - CRITERE =SIMP(statut='f',typ='R',defaut=1.1E-4), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,)), - -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -MODI_OBSTACLE=OPER(nom="MODI_OBSTACLE",op=182,sd_prod=obstacle_sdaster, - fr="Calculer les obstacles dans les systèmes guidage-tube après usure",reentrant='f', - UIinfo={"groupes":("Modélisation",)}, - regles=(PRESENT_ABSENT('R_MOBILE','CRAYON'), - PRESENT_PRESENT('V_USUR_TUBE','V_USUR_OBST'),), - 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_sdaster), - GUIDE =SIMP(statut='o',typ=obstacle_sdaster), - CRAYON =SIMP(statut='f',typ=obstacle_sdaster), - 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 12/09/2005 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE JMBHH01 J.M.PROIX -def modi_repere_prod(RESULTAT,**args): - if AsType(RESULTAT) == evol_elas : return evol_elas - if AsType(RESULTAT) == evol_noli : return evol_noli - if AsType(RESULTAT) == evol_ther : return evol_ther - if AsType(RESULTAT) == dyna_trans : return dyna_trans - if AsType(RESULTAT) == dyna_harmo : return dyna_harmo - if AsType(RESULTAT) == mode_meca : return mode_meca - if AsType(RESULTAT) == mode_flamb : return mode_flamb - if AsType(RESULTAT) == mult_elas : return mult_elas - if AsType(RESULTAT) == base_modale : return base_modale - raise AsException("type de concept resultat non prevu") - -MODI_REPERE=OPER(nom="MODI_REPERE",op=191,sd_prod=modi_repere_prod,reentrant='n', - UIinfo={"groupes":("Résultats et champs",)}, - fr="Calcule des résultats dans le repère cylindrique", - RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,mode_meca, - evol_noli,mult_elas, - evol_ther,base_modale,mode_flamb) ), - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'NOEUD_CMP','LIST_INST','LIST_FREQ','NOM_CAS'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM' ), - - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), - - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - - MODI_CHAM =FACT(statut='o',max='**', - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - TYPE_CHAM =SIMP(statut='o',typ='TXM', - into=("VECT_2D","VECT_3D","TORS_3D","TENS_2D","TENS_3D"),), - NOM_CHAM =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()), - b_vect_2d =BLOC(condition = "TYPE_CHAM=='VECT_2D'", - NOM_CMP =SIMP(statut='o',typ='TXM',min=2,max=2 ),), - b_vect_3d =BLOC(condition = "TYPE_CHAM=='VECT_3D'", - NOM_CMP =SIMP(statut='o',typ='TXM',min=3,max=3 ),), - b_tors_3d =BLOC(condition = "TYPE_CHAM=='TORS_3D'", - NOM_CMP =SIMP(statut='o',typ='TXM',min=6,max=6 ),), - b_tens_2d =BLOC(condition = "TYPE_CHAM=='TENS_2D'", - NOM_CMP =SIMP(statut='o',typ='TXM',min=4,max=4 ),), - b_tens_3d =BLOC(condition = "TYPE_CHAM=='TENS_3D'", - NOM_CMP =SIMP(statut='o',typ='TXM',min=6,max=6 ),), - ), - DEFI_REPERE =FACT(statut='o', - regles=(UN_PARMI('ANGL_NAUT','ORIGINE'),), - REPERE =SIMP(statut='f',typ='TXM',defaut="UTILISATEUR", - into=("UTILISATEUR","CYLINDRIQUE"),), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - ORIGINE =SIMP(statut='f',typ='R',min=2,max=3), - AXE_Z =SIMP(statut='f',typ='R',min=3,max=3), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def 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="Normer des modes propres en fonction d'un critère choisi par l'utilisateur", - reentrant='f', - UIinfo={"groupes":("Résolution",)}, - regles=(UN_PARMI('NORME','NOEUD','AVEC_CMP','SANS_CMP'),), - 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',validators=NoRepeat(),max='**'), - SANS_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - MASS_INER =SIMP(statut='f',typ=tabl_mass_iner ), - MODE_SIGNE =FACT(statut='f',fr="Imposer un signe sur une des composantes des modes", - NOEUD =SIMP(statut='o',typ=no,fr="Noeud ou sera imposé le signe"), - NOM_CMP =SIMP(statut='o',typ='TXM',fr="Composante du noeud ou sera imposé le signe" ), - SIGNE =SIMP(statut='f',typ='TXM',defaut="POSITIF",into=("NEGATIF","POSITIF"), - fr="Choix du signe" ), - ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des param\350tres de sensibilit\351.", - ang="List of sensitivity parameters", - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 01/04/2005 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 -NUME_DDL=OPER(nom="NUME_DDL",op=11,sd_prod=nume_ddl_sdaster,reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - fr="Etablissement de la numérotation des ddl avec ou sans renumérotation et du stockage de la matrice", - regles=(UN_PARMI('MATR_RIGI','MODELE'),), - MATR_RIGI =SIMP(statut='f',validators=NoRepeat(),max=100, - typ=(matr_elem_depl_r ,matr_elem_depl_c,matr_elem_temp_r ,matr_elem_pres_c) ), - MODELE =SIMP(statut='f',typ=modele_sdaster ), - b_modele =BLOC(condition = "MODELE != None", - CHARGE =SIMP(statut='f',validators=NoRepeat(),max='**',typ=(char_meca,char_ther,char_acou, ),), - ), - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ), - b_mult_front =BLOC(condition="METHODE=='MULT_FRONT'",fr="paramètres associés à la méthode multifrontale", - RENUM =SIMP(statut='f',typ='TXM',into=("MD","MDA","METIS"),defaut="METIS" ), - ), - b_ldlt =BLOC(condition="METHODE=='LDLT'",fr="paramètres associés à la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK" ), - ), - b_mumps =BLOC(condition="METHODE=='MUMPS'",fr="paramètres associés à la méthode MUMPS", - RENUM =SIMP(statut='f',typ='TXM',into=("SANS",),defaut="SANS" ), - ), - b_gcpc =BLOC(condition="METHODE=='GCPC'",fr="paramètres associés à la méthode gradient conjugué", - RENUM =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK" ), - ), - INFO =SIMP(statut='f',typ='I',into=(1,2)), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -NUME_DDL_GENE=OPER(nom="NUME_DDL_GENE",op= 127,sd_prod=nume_ddl_gene, - fr="Etablissement de la numérotation des ddl d'un modèle établi en coordonnées généralisées", - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=UN_PARMI('MODELE_GENE','BASE'), - MODELE_GENE =SIMP(statut='f',typ=modele_gene ), - b_modele_gene =BLOC(condition = "MODELE_GENE != None", - STOCKAGE =SIMP(statut='f',typ='TXM',defaut="LIGN_CIEL",into=("LIGN_CIEL","PLEIN") ), - METHODE =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("INITIAL","CLASSIQUE") ), - ), - BASE =SIMP(statut='f',typ=(mode_meca,mode_stat,base_modale,mode_gene ) ), - b_base =BLOC(condition = "BASE != None", - STOCKAGE =SIMP(statut='f',typ='TXM',defaut="DIAG",into=("DIAG","PLEIN") ), - NB_VECT =SIMP(statut='f',typ='I',defaut= 9999 ), - ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POST_CHAM_XFEM=OPER(nom="POST_CHAM_XFEM",op= 196,sd_prod=resultat_sdaster, - reentrant='n',UIinfo={"groupes":("Post traitements",)}, - fr="Calcul des champs DEPL et SIEF_ELGA sur le maillage fissuré", - MAILLAGE = SIMP(statut='o',typ=maillage_sdaster), - MODELE = SIMP(statut='o',typ=modele_sdaster,), - RESULTAT = SIMP(statut='o',typ=resultat_sdaster), - NOM_CHAM = SIMP(statut='o',typ='TXM',into=("DEPL","SIEF_ELGA"),) -); -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -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", - 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',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',max='**', - fr="Densité de probabilité de pic positif, loi adaptée à des signaux à bande étroite", - regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),), - VALE_MIN =SIMP(statut='f',typ='R' ), - VALE_MAX =SIMP(statut='f',typ='R' ), - PAS =SIMP(statut='f',typ='R' ), - ), - GAUSS =FACT(statut='f',max='**', - fr="Densité de probabilité de pic positif, loi normale adaptée à des signaux large bande", - regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),), - VALE_MIN =SIMP(statut='f',typ='R' ), - VALE_MAX =SIMP(statut='f',typ='R' ), - PAS =SIMP(statut='f',typ='R' ), - ), - VANMARCKE =FACT(statut='f',max='**', - 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 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POST_DYNA_MODA_T=OPER(nom="POST_DYNA_MODA_T",op= 130,sd_prod=tabl_post_dyna, - fr="Post-traiter les résultats en coordonnées généralisées produit par DYNA_TRAN_MODAL", - reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - regles=(UN_PARMI('CHOC','RELA_EFFO_DEPL', ),), - RESU_GENE =SIMP(statut='o',typ=tran_gene ), - CHOC =FACT(statut='f',max='**', - fr="Analyse des non linéarités de choc", - INST_INIT =SIMP(statut='f',typ='R',defaut= -1. ), - INST_FIN =SIMP(statut='f',typ='R',defaut= 999. ), - NB_BLOC =SIMP(statut='f',typ='I',defaut= 1 ), - SEUIL_FORCE =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - DUREE_REPOS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - OPTION =SIMP(statut='f',typ='TXM',defaut="USURE",into=("IMPACT","USURE") ), - NB_CLASSE =SIMP(statut='f',typ='I',defaut= 10 ), - ), - RELA_EFFO_DEPL =FACT(statut='f', - fr="Analyse des relationsnon linéaires effort-déplacement", - NOEUD =SIMP(statut='o',typ=no), - NOM_CMP =SIMP(statut='o',typ='TXM' ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE 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_sdaster non prevu") - -POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=post_elem_prod,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',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ORIG_INER = SIMP(statut='f',typ='R',min=3,max=3 ), - ), - b_mass_iner = BLOC(condition = "( MASS_INER != None )", - fr="calcul de la masse, les inerties et le centre de gravité", - regles=(EXCLUS('CHAM_GD','RESULTAT'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),), - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - GEOMETRIE = SIMP(statut='f',typ='TXM',defaut="INITIALE",into=("INITIALE","DEFORMEE")), - CHAM_GD = SIMP(statut='f',typ=(cham_no_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',), - LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), - INST = SIMP(statut='f',typ='R',), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - FREQ = SIMP(statut='f',typ='R',), - LIST_FREQ = SIMP(statut='f',typ=listr8_sdaster), - NUME_MODE = SIMP(statut='f',typ='I',), - NOEUD_CMP = SIMP(statut='f',typ='TXM',min=2,validators=NoRepeat(),max=2), - NOM_CAS = SIMP(statut='f',typ='TXM',), - ), - - ENER_POT = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), - b_ener_pot = BLOC(condition = "( ENER_POT != None )", - fr="calcul de l'énergie potentielle de déformation", - regles=(UN_PARMI('CHAM_GD','RESULTAT'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),), - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), - ANGLE = SIMP(statut='f',typ='I',defaut=0), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - CHAM_GD = SIMP(statut='f',typ=(cham_no_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,mult_elas) ), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - FREQ = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ = SIMP(statut='f',typ=listr8_sdaster), - NUME_MODE = SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'), - NOEUD_CMP = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - NOM_CAS = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - ), - - ENER_CIN = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - OPTION = SIMP(statut='f',typ='TXM', - into=("MASS_MECA","MASS_MECA_DIAG"), - defaut="MASS_MECA" ), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), - b_ener_cin = BLOC(condition = "( ENER_CIN != None )", - fr="calcul de l'énergie cinétique", - regles=(UN_PARMI('CHAM_GD','RESULTAT'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),), - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), - ANGLE = SIMP(statut='f',typ='I',defaut=0), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - CHAM_GD = SIMP(statut='f',typ=(cham_no_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',validators=NoRepeat(),max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - FREQ = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ = SIMP(statut='f',typ=listr8_sdaster), - NUME_MODE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NOEUD_CMP = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - NOM_CAS = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - ), - - ENER_ELAS = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), - b_ener_elas = BLOC(condition = "( ENER_ELAS != None )", - fr="calcul de l'énergie de déformation élastique", - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - RESULTAT = SIMP(statut='o',typ=(evol_noli) ), - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - ), - - ENER_TOTALE = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), - b_ener_totale = BLOC(condition = "( ENER_TOTALE != None )", - fr="calcul de l'énergie de déformation totale", - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - RESULTAT = SIMP(statut='o',typ=(evol_noli) ), - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - ), - - WEIBULL = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - OPTION = SIMP(statut='f',typ='TXM', - into=("SIGM_ELGA","SIGM_ELMOY"), - defaut="SIGM_ELGA"), - CORR_PLAST = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - COEF_MULT = SIMP(statut='f',typ='R',defaut=1.), - ), - b_weibull = BLOC(condition = "( WEIBULL != None )", - fr="calcul du champ élémentaire de la puissance m-ième de la contrainte de Weibull", - regles=(UN_PARMI('CHAM_GD','RESULTAT'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - CHAM_GD = SIMP(statut='f',typ=(cham_no_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',validators=NoRepeat(),max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - ), - - RICE_TRACEY = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - OPTION = SIMP(statut='f',typ='TXM', - into=("SIGM_ELGA","SIGM_ELMOY"), - defaut="SIGM_ELGA"), - LOCAL = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - ), - b_rice_tracey = BLOC(condition = "( RICE_TRACEY != None )", - fr="calcul du taux de croissance d'une cavité sphérique par rapport à un domaine", - regles=(UN_PARMI('CHAM_GD','RESULTAT'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - CHAM_GD = SIMP(statut='f',typ=(cham_no_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',validators=NoRepeat(),max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - ), - - INDIC_ENER = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), - b_indic_ener = BLOC(condition = "( INDIC_ENER != None )", - fr="calcul un indicateur global de perte de proportionnalité du chargement", - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - RESULTAT = SIMP(statut='o',typ=(evol_noli) ), - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - ), - - INDIC_SEUIL = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), - b_indic_seuil = BLOC(condition = "( INDIC_SEUIL != None )", - fr="calcul un indicateur global de perte de proportionnalité du chargement", - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - RESULTAT = SIMP(statut='o',typ=(evol_noli) ), - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - ), - - CHAR_LIMITE = FACT(statut='f',min=0, - CHAR_CSTE = SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON") - ), - b_char_limite = BLOC(condition = "( CHAR_LIMITE != None )", - fr="post-traitement du calcul de la charge limite", - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - RESULTAT = SIMP(statut='o',typ=(evol_noli) ), - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - ), - - CARA_GEOM = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - SYME_X = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - SYME_Y = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ORIG_INER = SIMP(statut='f',typ='R',min=2,max=2), - ), - b_cara_geom = BLOC(condition = "( CARA_GEOM != None )", - fr="calcul des caractéristiques géométriques d'un section de poutre", - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - ), - - CARA_POUTRE = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA'), - ENSEMBLE('LONGUEUR','LIAISON','MATERIAU'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_MA_INTE = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - CARA_GEOM = SIMP(statut='f',typ=tabl_cara_geom), - RT = SIMP(statut='f',typ='R'), - LAPL_PHI = SIMP(statut='f',typ=evol_ther), - LAPL_PHI_Y = SIMP(statut='f',typ=evol_ther), - LAPL_PHI_Z = SIMP(statut='f',typ=evol_ther), - LIAISON = SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT")), - LONGUEUR = SIMP(statut='f',typ='R'), - MATERIAU = SIMP(statut='f',typ=mater_sdaster), - OPTION = SIMP(statut='f',typ='TXM', - into=("CARA_TORSION","CARA_CISAILLEMENT","CARA_GAUCHI") ), - ), - b_cara_poutre = BLOC(condition = "( CARA_POUTRE != None )", - fr="calcul des caractéristiques mécaniques d'un section de poutre", - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - ), - - AIRE_INTERNE = FACT(statut='f',max='**', - GROUP_MA_BORD = SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - ), - b_aire_interne = BLOC(condition = "( AIRE_INTERNE != None )", - fr="calcul de l'aire d'un trou dans un maillage 2D", - MODELE = SIMP(statut='f',typ=modele_sdaster), - ), - - TRAV_EXT = FACT(statut='f',), - b_trav_ext = BLOC(condition = "( TRAV_EXT != None )", - fr="calcul du travail des efforts extérieurs", - RESULTAT = SIMP(statut='o',typ=(evol_elas,evol_noli,dyna_trans) ), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - ), - - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - - ) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POST_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=tabl_post_f_alea,reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - fr="Calculer le dommage de fatigue subi par une structure soumise à une sollicitation de type aléatoire", - regles=(ENSEMBLE('MOMENT_SPEC_0','MOMENT_SPEC_2'), - PRESENT_PRESENT( 'MOMENT_SPEC_4','MOMENT_SPEC_0'), - UN_PARMI('TABL_POST_ALEA','MOMENT_SPEC_0'), ), - MOMENT_SPEC_0 =SIMP(statut='f',typ='R'), - MOMENT_SPEC_2 =SIMP(statut='f',typ='R'), - MOMENT_SPEC_4 =SIMP(statut='f',typ='R'), - TABL_POST_ALEA =SIMP(statut='f',typ=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_sdaster), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=tabl_post_fatig,reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - fr="Calculer en un point, le dommage de fatigue subi par une structure soumise à une histoire de chargement", - - CHARGEMENT = SIMP(statut='o',typ='TXM',into=("UNIAXIAL","PERIODIQUE","QUELCONQUE")), - - b_uniaxial = BLOC( condition = "CHARGEMENT=='UNIAXIAL'", - regles=(PRESENT_PRESENT('CORR_KE','MATER'), - PRESENT_PRESENT('CORR_SIGM_MOYE','MATER'), - PRESENT_PRESENT('DOMMAGE','MATER'),), - HISTOIRE = FACT(statut='o', - regles=(UN_PARMI('SIGM','EPSI'),), - SIGM = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - EPSI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),), - COMPTAGE = SIMP(statut='o',typ='TXM',into=("RAINFLOW","RCCM","NATUREL")), - DELTA_OSCI = SIMP(statut='f',typ='R',defaut= 0.0E+0), - COEF_MULT = FACT(statut='f', - KT = SIMP(statut='o',typ='R'),), - CORR_KE = SIMP(statut='f',typ='TXM',into=("RCCM",)), - DOMMAGE = SIMP(statut='f',typ='TXM',into=("WOHLER","MANSON_COFFIN", - "TAHERI_MANSON","TAHERI_MIXTE")), - MATER = SIMP(statut='f',typ=mater_sdaster), - CORR_SIGM_MOYE = SIMP(statut='f',typ='TXM',into=("GOODMAN","GERBER")), - TAHERI_NAPPE = SIMP(statut='f',typ=(nappe_sdaster,formule)), - TAHERI_FONC = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CUMUL = SIMP(statut='f',typ='TXM',into=("LINEAIRE",)), - ), - - b_periodique = BLOC( condition = "CHARGEMENT=='PERIODIQUE'", - HISTOIRE = FACT(statut='o', - SIGM_XX = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_YY = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_ZZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_XY = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_XZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_YZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),), - CRITERE = SIMP(statut='o',typ='TXM',into=("CROSSLAND","PAPADOPOULOS")), - DOMMAGE = SIMP(statut='f',typ='TXM',into=("WOHLER",)), - MATER = SIMP(statut='o',typ=mater_sdaster), - COEF_CORR = SIMP(statut='f',typ='R'), - ), - - b_quelconque = BLOC( condition = "CHARGEMENT=='QUELCONQUE'", - HISTOIRE = FACT(statut='o', - SIGM_XX = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_YY = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_ZZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_XY = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_XZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_YZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - EPSP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),), - DOMMAGE = SIMP(statut='f',typ='TXM',into=("LEMAITRE",),), - MATER = SIMP(statut='o',typ=mater_sdaster), - CUMUL = SIMP(statut='f',typ='TXM',into=("LINEAIRE",)), - ), - - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GALENNE E.GALENNE - -POST_K1_K2_K3=OPER(nom="POST_K1_K2_K3",op=188,sd_prod=tabl_post_k, - fr="Calcul des facteurs d'intensité de contraintes en 2D et en 3D par extrapolation des sauts de déplacements" - +" sur les lèvres de la fissure", - reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - - regles=(UN_PARMI('RESULTAT','TABL_DEPL_SUP'), - PRESENT_PRESENT('RESULTAT','FOND_FISS'),), - - MODELISATION =SIMP(statut='o',typ='TXM', - into=("3D","AXIS","D_PLAN","C_PLAN"), - fr="Modélisation cohérente avec celle utilisée pour le calcul des déplacements"), - FOND_FISS =SIMP(statut='f',typ=fond_fiss), - b_fond_fiss =BLOC (condition="(FOND_FISS!= None)", - MAILLAGE = SIMP(statut='o',typ=maillage_sdaster), - NOEUD = SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - SANS_NOEUD = SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ) - ), - MATER =SIMP(statut='o',typ=mater_sdaster, - fr="Matériau homogène et isotrope cohérent avec celui utilisé pour le calcul des déplacements"), - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli), - fr="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',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - SYME_CHAR =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","SANS") ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - VECT_K1 =SIMP(statut='o',typ='R',max=3, - fr="Vecteur normal au plan de fissure, orienté de la lèvre inférieure vers la lèvre supérieure"), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# -# -# ====================================================================== -# -POST_K_BETA=OPER(nom="POST_K_BETA",op=198,sd_prod=tabl_post_beta, - fr="Calcul des facteurs d'intensité de contraintes par la méthode K_BETA", - reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - MAILLAGE = SIMP(statut='o',typ=maillage_sdaster), - MATER_REV = SIMP(statut='o',typ=mater_sdaster), - EPAIS_REV = SIMP(statut='o',typ='R'), - FISSURE = FACT(statut='o', - DECALAGE = SIMP(statut='f',typ='R',defaut=-2.e-04), - PROFONDEUR = SIMP(statut='o',typ='R'), - LONGUEUR = SIMP(statut='o',typ='R'), - ORIENTATION = SIMP(statut='o',typ='TXM', - into=("CIRC","LONGI"),), - ), - K1D = FACT(statut='o',max='**', - TABL_MECA_REV = SIMP(statut='o',typ=(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' ), - ), - TITRE = SIMP(statut='f',typ='TXM',max='**'), -); -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POST_MAIL_XFEM=OPER(nom="POST_MAIL_XFEM",op= 187,sd_prod=maillage_sdaster, - reentrant='n',UIinfo={"groupes":("Maillage",)}, - fr="Crée un maillage se conformant à la fissure pour le post-traitement des éléments XFEM", - MODELE = SIMP(statut='o',typ=modele_sdaster), - TITRE = SIMP(statut='f',typ='TXM',max='**'), -); -#& MODIF COMMANDE DATE 21/03/2005 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A 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)", - reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="VALE_MAX",into=("VALE_MAX","DETAILS") ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - TYPE_RESU_MECA =SIMP(statut='o',typ='TXM',into=("EVOLUTION","UNITAIRE","TUYAUTERIE") ), - -# ====================================================================== - b_evolution =BLOC(condition="(TYPE_RESU_MECA == 'EVOLUTION')", - - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("PM_PB","SN","FATIGUE_ZH210") ), - MATER =SIMP(statut='o',typ=mater_sdaster ), - - TRANSITOIRE =FACT(statut='o',max='**',fr="transitoire à dépouiller", - regles=(EXCLUS('TOUT_ORDRE','INST','LIST_INST'),), - NB_OCCUR =SIMP(statut='f',typ='I',defaut= 1, - fr="nombre d occurences réelles de ce transitoire" ), - TABL_RESU_MECA =SIMP(statut='o',typ=table_sdaster, - fr="relevé des contraintes sur le chemin"), - TABL_SIGM_THER =SIMP(statut='f',typ=table_sdaster, - fr="résultat sous chargement thermique seul" ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), - b_inst =BLOC(condition = "(INST != None) or (LIST_INST != None)" , - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ), - ), - ), - ), - -# ====================================================================== - b_unitaire =BLOC(condition="(TYPE_RESU_MECA == 'UNITAIRE')", - - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("PM_PB","SN","FATIGUE") ), - MATER =SIMP(statut='o',typ=mater_sdaster ), - TYPE_KE =SIMP(statut='f',typ='TXM',defaut="KE_MECA",into=("KE_MECA","KE_MIXTE"), - fr="Ke meca seul ou partition mecanique + thermique" ), - CHAR_MECA =FACT(statut='o',max='**',fr="Chargements mécaniques", - NUME_CHAR =SIMP(statut='o',typ='I',fr="numéro du chargement" ), - NOM_CHAR =SIMP(statut='f',typ='TXM',fr="nom du chargement" ), - TYPE_CHAR =SIMP(statut='f',typ='TXM',fr="nature du chargement",into=( "SEISME","AUTRE"),defaut="AUTRE",), - FX =SIMP(statut='f',typ='R',fr="effort suivant x", ), - FY =SIMP(statut='f',typ='R',fr="effort suivant y", ), - FZ =SIMP(statut='f',typ='R',fr="effort suivant z", ), - MX =SIMP(statut='o',typ='R',fr="moment suivant x", ), - MY =SIMP(statut='o',typ='R',fr="moment suivant y", ), - MZ =SIMP(statut='o',typ='R',fr="moment suivant z", ), - ), - RESU_MECA_UNIT =FACT(statut='o',fr="resultats mécaniques unitaires", - TABL_FX =SIMP(statut='f',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire FX"), - TABL_FY =SIMP(statut='f',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire FY"), - TABL_FZ =SIMP(statut='f',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire FZ"), - TABL_MX =SIMP(statut='o',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire MX"), - TABL_MY =SIMP(statut='o',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire MY"), - TABL_MZ =SIMP(statut='o',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire MZ"), - TABL_PRES =SIMP(statut='o',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire de pression"), - ), - RESU_THER =FACT(statut='f',max='**',fr="resultats thermiques", - NUME_RESU_THER =SIMP(statut='o',typ='I',fr="numéro de la table de résultat thermique" ), - TABL_RESU_THER =SIMP(statut='o',typ=table_sdaster, - fr="table relevé des contraintes sous chargement thermique seul" ), - ), - SITUATION =FACT(statut='o',max='**',fr="Situation",ang="situation_ang", - NB_OCCUR =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ), - NB_CYCL_SEISME =SIMP(statut='f',typ='I',fr="nombre de cycles associé au séisme" ), - NUME_SITU =SIMP(statut='o',typ='I',fr="numéro de la situation" ), - NOM_SITU =SIMP(statut='f',typ='TXM',fr="nom de la situation" ), - COMBINABLE =SIMP(statut='f',typ='TXM',defaut= "OUI",into=("OUI","NON"),fr="non = sous-cycle" ), - NUME_GROUPE =SIMP(statut='o',typ='I',fr="numéro du groupe de la situation" ), - NUME_PASSAGE =SIMP(statut='f',typ='I',max=2,fr="numéro des deux groupes en relation" ), - NUME_RESU_THER =SIMP(statut='f',typ='I',max='**',fr="numeros de transitoires thermiques" ), - CHAR_ETAT_A =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ), - CHAR_ETAT_B =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat B" ), - PRES_A =SIMP(statut='o',typ='R',fr="pression etat A"), - PRES_B =SIMP(statut='o',typ='R',fr="pression etat B"), - TEMP_REF_A =SIMP(statut='f',typ='R',fr="temperature référence etat A"), - TEMP_REF_B =SIMP(statut='f',typ='R',fr="temperature référence etat B"), - ), - ), -# ====================================================================== - b_tuyauterie =BLOC(condition="(TYPE_RESU_MECA == 'TUYAUTERIE')", - - OPTION =SIMP(statut='o',typ='TXM',into=("FATIGUE",) ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - TYPE_KE =SIMP(statut='f',typ='TXM',defaut="KE_MECA",into=("KE_MECA","KE_MIXTE"), - fr="Ke meca seul ou partition mecanique + thermique" ), - MODELE =SIMP(statut='o',typ=modele_sdaster), - CARA_ELEM =SIMP(statut='o',typ=cara_elem), - ZONE_ANALYSE =FACT(statut='o',fr="liste des mailles ou des noeuds analysés", - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - ), - RESU_MECA =FACT(statut='o',max='**',fr="Chargements mécaniques", - regles=(UN_PARMI('CHAM_GD','RESULTAT'),), - NUME_CHAR =SIMP(statut='o',typ='I',fr="numéro du chargement" ), - NOM_CHAR =SIMP(statut='f',typ='TXM',fr="nom du chargement" ), - TYPE_CHAR =SIMP(statut='f',typ='TXM',fr="nature du chargement",into=( "SEISME","AUTRE"),defaut="AUTRE",), - CHAM_GD =SIMP(statut='f',typ=cham_gd_sdaster), - RESULTAT =SIMP(statut='f',typ=resultat_sdaster), - b_extrac =BLOC(condition="RESULTAT != None", - fr="extraction d un champ de grandeur", - regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','INST','NOEUD_CMP'),), - NOM_CHAM =SIMP(statut='o',typ='TXM',into=("EFGE_ELNO_DEPL","SIEF_ELNO_ELGA"),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',), - INST =SIMP(statut='f',typ='R',), - NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - b_acce_reel =BLOC(condition="(INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), ), - ), - ), - ), - INDI_SIGM =FACT(statut='o',max='**',fr="indices de contraintes", - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - C1 =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes C1 du RCCM"), - K1 =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes K1 du RCCM"), - C2 =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes C2 du RCCM"), - K2 =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes K2 du RCCM"), - C3 =SIMP(statut='f',typ='R',defaut=0.5,fr="indice de contraintes C3 du RCCM"), - K3 =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes K3 du RCCM"), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', - fr="groupe(s) de mailles ou sont affectés les indices de contraintes"), - MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**', - fr="liste des mailles ou sont affectés les indices de contraintes"), - b_grma =BLOC(condition="(GROUP_MA != None)or(MAILLE != None)", - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - ), - TYPE_ELEM_STANDARD =SIMP(statut='f',typ='TXM',into=("DRO","COU","TRN","TEE"), - fr="type d'élément de tuyauterie ou sont affectés les indices de contraintes"), - ), - RESU_THER =FACT(statut='f',max='**',fr="resultats thermiques", - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - NUME_RESU_THER =SIMP(statut='o',typ='I',fr="numéro de la table de résultat thermique" ), - TABL_RESU_THER =SIMP(statut='o',typ=table_sdaster, - fr="table relevé des températures sur la section"), - TABL_MOYE_THER =SIMP(statut='o',typ=table_sdaster, - fr="table relevé des moyennes sur la section"), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - b_grma =BLOC(condition="(GROUP_MA != None)or(MAILLE != None)", - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - ), - ), - SITUATION =FACT(statut='o',max='**',fr="Situation",ang="situation_ang", - NB_OCCUR =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ), - NB_CYCL_SEISME =SIMP(statut='f',typ='I',fr="nombre de cycles associé au séisme" ), - NUME_SITU =SIMP(statut='o',typ='I',fr="numéro de la situation" ), - NOM_SITU =SIMP(statut='f',typ='TXM',fr="nom de la situation" ), - COMBINABLE =SIMP(statut='f',typ='TXM',defaut= "OUI",into=("OUI","NON"),fr="non = sous-cycle" ), - NUME_GROUPE =SIMP(statut='o',typ='I',fr="numéro du groupe de la situation" ), - NUME_PASSAGE =SIMP(statut='f',typ='I',max=2,fr="numéro des deux groupes en relation" ), - NUME_RESU_THER =SIMP(statut='f',typ='I',max='**',fr="numeros de transitoires thermiques" ), - CHAR_ETAT_A =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ), - CHAR_ETAT_B =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat B" ), - PRES_A =SIMP(statut='o',typ='R',fr="pression etat A"), - PRES_B =SIMP(statut='o',typ='R',fr="pression etat B"), - TEMP_REF_A =SIMP(statut='f',typ='R',fr="temperature référence etat A"), - TEMP_REF_B =SIMP(statut='f',typ='R',fr="temperature référence etat B"), - ), - ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# ====================================================================== -# CONFIGURATION MANAGEMENT OF EDF VERSION -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -POST_RELEVE_T=OPER(nom="POST_RELEVE_T",op=51,sd_prod=tabl_post_rele,reentrant='f', - fr="Extraire des valeurs de composantes de champs de grandeurs pour y effectuer des calculs (moyenne,invariants,..)" - +" ou pour les exprimer dans d'autres repères", - UIinfo={"groupes":("Post traitements",)}, - ACTION =FACT(statut='o',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'), - ENSEMBLE('MOMENT','POINT'), - PRESENT_PRESENT('MOMENT','RESULTANTE'), - PRESENT_ABSENT('TOUT_CMP','TRAC_DIR','TRAC_NOR'), - EXCLUS('TRAC_DIR','TRAC_NOR'), - PRESENT_PRESENT('ORIGINE','AXE_Z'),), - INTITULE =SIMP(statut='o',typ='TXM'), - CHEMIN =SIMP(statut='f',typ=(courbe_sdaster,surface_sdaster) ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - 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,cham_no_facy_r)), - 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),validators=NoRepeat(),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',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_MODE =SIMP(statut='f',typ=listis_sdaster), - NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - ), - TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",)), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - INVARIANT =SIMP(statut='f',typ='TXM',into=("OUI",)), - ELEM_PRINCIPAUX =SIMP(statut='f',typ='TXM',into=("OUI",) ), - RESULTANTE =SIMP(statut='f',typ='TXM',max='**'), - MOMENT =SIMP(statut='f',typ='TXM',max='**'), - POINT =SIMP(statut='f',typ='R',max='**'), - - REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL", - into=("GLOBAL","LOCAL","POLAIRE","UTILISATEUR","CYLINDRIQUE"),), - ANGL_NAUT =SIMP(statut='f',typ='R',min=3,max=3), - ORIGINE =SIMP(statut='f',typ='R',min=3,max=3), - AXE_Z =SIMP(statut='f',typ='R',min=3,max=3), - - TRAC_NOR =SIMP(statut='f',typ='TXM',into=("OUI",)), - TRAC_DIR =SIMP(statut='f',typ='TXM',into=("OUI",)), - DIRECTION =SIMP(statut='f',typ='R',max='**'), - - VECT_Y =SIMP(statut='f',typ='R',max='**'), - MOYE_NOEUD =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - OPERATION =SIMP(statut='o',typ='TXM',into=("EXTRACTION","MOYENNE"),validators=NoRepeat(),max=2), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POST_SIMPLIFIE=OPER(nom="POST_SIMPLIFIE",op=185,sd_prod=tabl_post_simpli, - fr="Permet d'utiliser des méthodes simplifiées autres que celles du RCCM", - UIinfo={"groupes":("Outils métier",)},reentrant='n', - MATER =SIMP(statut='o',typ=(mater_sdaster) ), - DEF_EQUI =FACT(statut='f', - METHODE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),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 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POST_USURE=OPER(nom="POST_USURE",op=153,sd_prod=tabl_post_usur,reentrant='f', - UIinfo={"groupes":("Post traitements",)}, - fr="Calcul des volumes d'usure et des profondeurs d'usure d'après la puissance d'usure", - regles=(UN_PARMI('TUBE_NEUF','RESU_GENE','PUIS_USURE'), - PRESENT_PRESENT('RESU_GENE','NOEUD','LOI_USURE'), - PRESENT_PRESENT('PUIS_USURE','LOI_USURE'),), - TUBE_NEUF =SIMP(statut='f',typ='TXM',into=("OUI",) ), - ETAT_INIT =FACT(statut='f', - TABL_USURE =SIMP(statut='f',typ=tabl_post_usur), - INST_INIT =SIMP(statut='f',typ='R'), - ), - RESU_GENE =SIMP(statut='f',typ=tran_gene), - NOEUD =SIMP(statut='f',typ=no,), - INST_INIT =SIMP(statut='f',typ='R',defaut=-1.0E+0), - INST_FIN =SIMP(statut='f',typ='R'), - NB_BLOC =SIMP(statut='f',typ='I',defaut= 1 ), - PUIS_USURE =SIMP(statut='f',typ='R'), - LOI_USURE =SIMP(statut='f',typ='TXM',into=("ARCHARD","KWU_EPRI","EDF_MZ")), - b_archard =BLOC(condition = "LOI_USURE == 'ARCHARD'", - regles=(UN_PARMI('MOBILE','MATER_USURE','SECTEUR'), - EXCLUS('MATER_USURE','OBSTACLE'), - EXCLUS('MOBILE','USURE_OBST'),), - MOBILE =FACT(statut='f', - COEF_USURE =SIMP(statut='o',typ='R'), - ), - OBSTACLE =FACT(statut='f', - COEF_USURE =SIMP(statut='o',typ='R'), - ), - SECTEUR =FACT(statut='f',max='**', - CONTACT =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO", - "GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE", - "GRAPPE_1_ENCO","GRAPPE_2_ENCO")), - COEF_USUR_MOBILE=SIMP(statut='f',typ='R'), - COEF_USUR_OBST =SIMP(statut='f',typ='R'), - ANGL_INIT =SIMP(statut='f',typ='R'), - ANGL_FIN =SIMP(statut='f',typ='R'), - ), - MATER_USURE =SIMP(statut='f',typ='TXM'), - USURE_OBST =SIMP(statut='f',typ='TXM',into=("OUI",)), - ), - b_kwu_epri =BLOC(condition = "LOI_USURE == 'KWU_EPRI'", - regles=(UN_PARMI('MOBILE','MATER_USURE'), - EXCLUS('MATER_USURE','OBSTACLE'), - EXCLUS('MOBILE','USURE_OBST'),), - MOBILE =FACT(statut='f', - COEF_FNOR =SIMP(statut='f',typ='R'), - COEF_VTAN =SIMP(statut='f',typ='R'), - COEF_USURE =SIMP(statut='f',typ='R'), - COEF_K =SIMP(statut='f',typ='R',defaut=5.0E+0), - COEF_C =SIMP(statut='f',typ='R',defaut=10.0E+0), - ), - OBSTACLE =FACT(statut='f', - COEF_FNOR =SIMP(statut='f',typ='R' ), - COEF_VTAN =SIMP(statut='f',typ='R' ), - COEF_USURE =SIMP(statut='o',typ='R'), - COEF_K =SIMP(statut='f',typ='R',defaut=5.0E+0), - COEF_C =SIMP(statut='f',typ='R',defaut=10.0E+0), - ), - MATER_USURE =SIMP(statut='f',typ='TXM'), - USURE_OBST =SIMP(statut='f',typ='TXM',into=("OUI",)), - FNOR_MAXI =SIMP(statut='f',typ='R' ), - VTAN_MAXI =SIMP(statut='f',typ='R' ), - ), - b_edf_mz =BLOC(condition = "LOI_USURE == 'EDF_MZ'", - regles=(UN_PARMI('MOBILE','MATER_USURE'), - EXCLUS('MATER_USURE','OBSTACLE'), - EXCLUS('MOBILE','USURE_OBST'),), - MOBILE =FACT(statut='f', - COEF_USURE =SIMP(statut='f',typ='R',defaut=1.0E-13), - COEF_B =SIMP(statut='f',typ='R',defaut=1.2E+0), - COEF_N =SIMP(statut='f',typ='R',defaut=2.44E-8), - COEF_S =SIMP(statut='f',typ='R',defaut=1.14E-16), - ), - OBSTACLE =FACT(statut='f', - COEF_USURE =SIMP(statut='o',typ='R',defaut=1.0E-13), - COEF_B =SIMP(statut='f',typ='R',defaut=1.2E+0), - COEF_N =SIMP(statut='f',typ='R',defaut=2.44E-8), - COEF_S =SIMP(statut='f',typ='R',defaut=1.14E-16), - ), - MATER_USURE =SIMP(statut='f',typ='TXM'), - USURE_OBST =SIMP(statut='f',typ='TXM',into=("OUI",)), - ), - b_tube_neuf =BLOC(condition = "TUBE_NEUF == 'OUI'", - TABL_USURE =SIMP(statut='o',typ=tabl_post_usur), - INST =SIMP(statut='f',typ='R'), - ), - CONTACT =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO", - "GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE", - "GRAPPE_1_ENCO","GRAPPE_2_ENCO")), - RAYON_MOBILE =SIMP(statut='f',typ='R'), - RAYON_OBST =SIMP(statut='f',typ='R'), - LARGEUR_OBST =SIMP(statut='f',typ='R'), - ANGL_INCLI =SIMP(statut='f',typ='R'), - ANGL_ISTHME =SIMP(statut='f',typ='R'), - ANGL_IMPACT =SIMP(statut='f',typ='R'), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - COEF_INST =SIMP(statut='f',typ='R',defaut=1.0E+0), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POST_ZAC=OPER(nom="POST_ZAC",op= 175,sd_prod=mult_elas,reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - fr="Déterminer l'état adapté ou accommodé par la méthode de Zarka-Casier d'une structure sous" - +" chargement cyclique élastique affine ou non", - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - EXCIT =FACT(statut='o',max='**', - CHARGE =SIMP(statut='o',typ=char_meca), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",into=("FIXE_CSTE",)), - ), - EVOL_ELAS =SIMP(statut='o',typ=evol_elas), - b_evol_elas =BLOC(condition="EVOL_ELAS != None", - regles=(UN_PARMI('NUME_ORDRE','LIST_INST','INST'),), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - ), - TEMP_ZAC =SIMP(statut='f',typ='R',defaut=0.0E+0), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - b_evol_noli =BLOC(condition="EVOL_NOLI != None", - INST_MAX =SIMP(statut='o',typ='R'), - ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - -) ; -#& MODIF COMMANDE DATE 17/10/2005 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. -# ====================================================================== -POURSUITE=MACRO(nom="POURSUITE",op=ops.build_poursuite,repetable='n', - fr="Poursuite d'une étude à partir de la sauvegarde au format JEVEUX ou HDF de sa base globale", - sd_prod = ops.POURSUITE, - UIinfo={"groupes":("Gestion du travail",)}, - op_init = ops.POURSUITE_context,fichier_ini = 1, - FORMAT_HDF =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f', - typ='TXM',defaut="NON",into=("OUI","NON",) ), - PAR_LOT =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM', - into=("OUI","NON"),defaut="OUI"), - IMPR_MACRO =SIMP(fr="affichage des sous-commandes produites par les macros dans le fichier mess", - statut='f',typ='TXM',into=("OUI","NON"),defaut="NON"), - BASE =FACT(fr="définition des 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'), - ), - ERREUR =FACT(fr="comportement en cas d'erreur",statut='f',min=1,max=1, - ERREUR_F =SIMP(statut='f',typ='TXM',into=('ABORT','EXCEPTION'),defaut='ABORT'), - ), - DEBUG =FACT(fr="option de déboggage reservée aux développeurs", - statut='f',min=1,max=1, - JXVERI =SIMP(fr="vérifie l intégrité de la segmentation mémoire", - statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'), - 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' ), - ), - RESERVE_CPU =FACT(fr="reserve de temps pour terminer une execution",statut='f',max=1, - regles=(EXCLUS('VALE','POURCENTAGE'),), - VALE =SIMP(statut='f',typ='I',val_min=0), - POURCENTAGE =SIMP(statut='f',typ='R',val_min=0.,val_max=1.0), -# valeur en pourcentage du temps maximum bornée à 180 secondes - BORNE =SIMP(statut='f',typ='I',val_min=0,defaut=180) - ), - CODE =FACT("définition d un nom pour l'esemble d'une étude", - statut='f',min=1,max=1, - NOM =SIMP(statut='o',typ='TXM'), - UNITE =SIMP(statut='f',typ='I',defaut=15), - ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -PRE_GIBI=PROC(nom="PRE_GIBI",op=49, - UIinfo={"groupes":("Gestion du travail",)}, - fr="Conversion d'un fichier de maillage GIBI au format Aster", - UNITE_GIBI =SIMP(statut='f',typ='I',defaut=19), - UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=20), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -PRE_GMSH=PROC(nom="PRE_GMSH",op=47, - UIinfo={"groupes":("Gestion du travail",)}, - fr="Conversion d'un fichier de maillage GMSH au format Aster", - UNITE_GMSH =SIMP(statut='f',typ='I',defaut=19), - UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=20), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -PRE_IDEAS=PROC(nom="PRE_IDEAS",op=47, - UIinfo={"groupes":("Gestion du travail",)}, - fr="Conversion d'un fichier universel IDEAS-SUPERTAB au format Aster", - UNITE_IDEAS =SIMP(statut='f',typ='I',defaut=19), - UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=20), - CREA_GROUP_COUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def 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", - 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 11/10/2005 AUTEUR VABHHTS J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def proj_champ_prod(RESULTAT=None,CHAM_NO_REFE=None,**args ): - if AsType(RESULTAT) == evol_ther : return evol_ther - if AsType(RESULTAT) == evol_elas : return evol_elas - if AsType(RESULTAT) == evol_noli : return evol_noli - if AsType(RESULTAT) == evol_char : return evol_char - if AsType(RESULTAT) == mode_meca : return mode_meca - if AsType(RESULTAT) == mode_stat_depl : return mode_stat_depl - if AsType(RESULTAT) == base_modale : return base_modale - 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,reentrant='f', - UIinfo={"groupes":("Résultats et champs",)}, - fr="Projeter les champs aux noeuds d'une SD résultat de type evol_xxx sur un autre maillage", -# - METHODE =SIMP(statut='f',typ='TXM',defaut="ELEM", - into=("NUAGE_DEG_0","NUAGE_DEG_1","ELEM",) ), - b_nuage =BLOC(condition="(METHODE=='NUAGE_DEG_1') or (METHODE=='NUAGE_DEG_0')", - fr="Lissage d'un nuage de points", - CHAM_NO =SIMP(statut='o',typ=(cham_no_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,mode_meca,mode_stat_depl,base_modale) ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters",), - MODELE_1 =SIMP(statut='o',typ=modele_sdaster), - MODELE_2 =SIMP(statut='o',typ=modele_sdaster), - - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ), - NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - - CAS_FIGURE =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",) ), - DISTANCE_MAX =SIMP(statut='f',typ='R', - fr="Distance maximale entre le noeud et l'élément le plus proche, lorsque le noeud n'est dans aucun élément."), - ALARME =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - - TYPE_CHAM =SIMP(statut='f',typ='TXM',into=("NOEU",), - fr="Pour forcer le type des champs projetés. NOEU -> cham_no"), - - PROL_ZERO =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON", - fr="Si le résultat est un mode_xxx ou une base_xxx, on peut prolonger" - +" les champs par zéro la ou la projection ne donne pas de valeurs."), - - b_modele_gene =BLOC(condition = "AsType(RESULTAT) == mode_meca", - RIGI_MECA =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_gene_r,matr_asse_pres_r ) ), - MASS_MECA =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ), - AMOR_MECA =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ), - ), - ), - - VIS_A_VIS =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT_1','GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), - AU_MOINS_UN('TOUT_2','GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),), - TOUT_1 =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - TOUT_2 =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - CAS_FIGURE =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",) ), - ), - - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def matr_asse_gene_prod(MATR_ASSE,MATR_ASSE_GENE,**args): - if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_gene_r - if AsType(MATR_ASSE_GENE) == matr_asse_gene_r : return matr_asse_gene_r - if AsType(MATR_ASSE) == matr_asse_depl_c : return matr_asse_gene_c - if AsType(MATR_ASSE_GENE) == matr_asse_gene_c : return matr_asse_gene_c - raise AsException("type de concept resultat non prevu") - -PROJ_MATR_BASE=OPER(nom="PROJ_MATR_BASE",op= 71,sd_prod=matr_asse_gene_prod, - fr="Projection d'une matrice assemblée sur une base (modale ou de RITZ)", - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(UN_PARMI('MATR_ASSE','MATR_ASSE_GENE'),), - BASE =SIMP(statut='o',typ=(mode_meca,base_modale,mode_gene,mode_stat ) ), - NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), - MATR_ASSE =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c) ), - MATR_ASSE_GENE =SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_gene_c) ), -) ; - -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def proj_mesu_modal_prod(MODELE_MESURE,**args): - vale=MODELE_MESURE['MESURE'] - if AsType(vale) == dyna_trans : return tran_gene - if AsType(vale) == dyna_harmo : return harm_gene - if AsType(vale) == mode_meca : return mode_gene -# if AsType(vale) == mode_meca_c : return mode_gene_c - if AsType(vale) == base_modale : return mode_gene - raise AsException("type de concept resultat non prevu") - -PROJ_MESU_MODAL=OPER(nom="PROJ_MESU_MODAL",op= 193, - sd_prod=proj_mesu_modal_prod, - reentrant='n', - UIinfo={"groupes":("Résultats et champs",)}, - fr="Calcul des coordonnees généralisees de mesure experimentale relatives a une base de projection", - - MODELE_CALCUL =FACT(statut='o', - MODELE =SIMP(statut='o',typ=(modele_sdaster) ), - BASE =SIMP(statut='o',typ=(mode_meca,base_modale,) ), - ), - MODELE_MESURE =FACT(statut='o', - MODELE =SIMP(statut='o',typ=(modele_sdaster) ), - MESURE =SIMP(statut='o',typ=(dyna_trans,dyna_harmo,base_modale,mode_meca,mode_meca_c,) ), - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE","SIEF_NOEU","EPSI_NOEU_DEPL",) ), - ), - CORR_MANU =FACT(statut='f',max='**', - regles=(PRESENT_PRESENT('NOEU_CALCUL','NOEU_MESURE'),), - NOEU_CALCUL =SIMP(statut='f',typ=no), - NOEU_MESURE =SIMP(statut='f',typ=no), - ), - RESOLUTION =FACT(statut='f', - METHODE =SIMP(statut='f',typ='TXM',defaut="LU",into=("LU","SVD",) ), - b_svd =BLOC(condition="METHODE=='SVD'", - EPS=SIMP(statut='f',typ='R',defaut=0. ), - ), - REGUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","NORM_MIN","TIK_RELA",) ), - b_regul =BLOC(condition="REGUL!='NON'", - regles=(PRESENT_ABSENT('COEF_PONDER','COEF_PONDER_F', ),), - COEF_PONDER =SIMP(statut='f',typ='R',defaut=0. ,max='**' ), - COEF_PONDER_F =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ), - ), - ), - - ); -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=tabl_intsp,reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - fr="Projecter un ou plusieurs spectres de turbulence sur une (ou plusieurs) base(s) modale(s) ", - regles=(UN_PARMI('BASE_ELAS_FLUI','MODE_MECA','CHAM_NO'), - ENSEMBLE('FREQ_INIT','FREQ_FIN','NB_POIN'),), - SPEC_TURB =SIMP(statut='o',typ=spectre_sdaster,validators=NoRepeat(),max='**' ), - BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu_sdaster ), - MODE_MECA =SIMP(statut='f',typ=mode_meca ), - CHAM_NO =SIMP(statut='f',typ=cham_no_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_sdaster), - VECT_X =SIMP(statut='f',typ='R',min=3,max=3 ), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3 ), - ORIG_AXE =SIMP(statut='f',typ='R',min=3,max=3 ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def vect_asse_gene_prod(VECT_ASSE,VECT_ASSE_GENE,**args): - if AsType(VECT_ASSE) == cham_no_depl_r : return vect_asse_gene_r - if AsType(VECT_ASSE_GENE) == vect_asse_gene_r : return vect_asse_gene_r - if AsType(VECT_ASSE) == cham_no_depl_c : return vect_asse_gene_c - if AsType(VECT_ASSE_GENE) == vect_asse_gene_c : return vect_asse_gene_c - raise AsException("type de concept resultat non prevu") - -PROJ_VECT_BASE=OPER(nom="PROJ_VECT_BASE",op= 72,sd_prod=vect_asse_gene_prod, - fr="Projection d'un vecteur assemblé sur une base (modale ou de RITZ)", - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(UN_PARMI('VECT_ASSE','VECT_ASSE_GENE'),), - BASE =SIMP(statut='o',typ=(mode_meca,base_modale,mode_gene,mode_stat ) ), - NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), - TYPE_VECT =SIMP(statut='f',typ='TXM',defaut="FORC"), - VECT_ASSE =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_depl_c) ), - VECT_ASSE_GENE =SIMP(statut='f',typ=(vect_asse_gene_r,vect_asse_gene_c) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -RECA_WEIBULL=OPER(nom="RECA_WEIBULL",op= 197,sd_prod=tabl_reca_weib, - fr="Recaler les paramètres du modèle de WEIBULL sur des données expérimentales",reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - LIST_PARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=2,into=("SIGM_REFE","M",) ), - RESU =FACT(statut='o',max='**', - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST',), - AU_MOINS_UN('TOUT','GROUP_MA','MAILLE', ),), - EVOL_NOLI =SIMP(statut='o',typ=(evol_noli) ), - MODELE =SIMP(statut='o',typ=(modele_sdaster) ), - CHAM_MATER =SIMP(statut='o',typ=(cham_mater) ), - TEMPE =SIMP(statut='f',typ='R' ), - LIST_INST_RUPT =SIMP(statut='o',typ='R',validators=NoRepeat(),max='**' ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - COEF_MULT =SIMP(statut='f',typ='R',defaut= 1.E0 ), - ), - OPTION =SIMP(statut='f',typ='TXM',defaut="SIGM_ELGA",into=("SIGM_ELGA","SIGM_ELMOY",) ), - CORR_PLAST =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - METHODE =SIMP(statut='f',typ='TXM',defaut="MAXI_VRAI",into=("MAXI_VRAI","REGR_LINE",) ), - INCO_GLOB_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ), - ) ; -#& MODIF COMMANDE DATE 04/07/2005 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE 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 - if AsType(RESU_GENE) == harm_gene : 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_sdaster - else: - return fonction_sdaster - if RESU_GENE != None : return fonction_sdaster - if BASE_ELAS_FLUI != None : return fonction_sdaster - if RESULTAT != None : return fonction_sdaster - if CHAM_GD != None : return fonction_sdaster - if OBSTACLE != None : return fonction_sdaster - 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 d'une grandeur en fonction d'une autre", - 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,) ), - RESULTAT =SIMP(statut='f',typ=(evol_elas,dyna_trans,evol_noli,evol_ther,dyna_harmo ) ), - RESU_GENE =SIMP(statut='f',typ=(tran_gene, mode_gene, harm_gene)), - TABLE =SIMP(statut='f',typ=table_sdaster), - BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu_sdaster), - OBSTACLE =SIMP(statut='f',typ=obstacle_sdaster), - -# ======= ACCES A LA SD RESULTAT ================================================= - b_acces = BLOC ( condition = "(RESULTAT != None) or (RESU_GENE != None)", - fr="acces a une SD résultat", -# on ne peut pas mettre de regles, le défaut TOUT_ORDRE est pris en compte dans le fortran - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster ), - TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - b_prec = BLOC ( condition = "(INST != None) or (LIST_INST != None) or (FREQ != None) or (LIST_FREQ != None)", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - INTERP_NUME =SIMP(statut='f',typ='TXM',into=("NON","LIN") ), - ), - ), -# ======= BASE_ELAS_FLUI ================================================= - b_base_elas_flui = BLOC ( condition = "BASE_ELAS_FLUI != None", - fr="Récupération de la fonction à partir d un concept melasflu", - regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NUME_MODE =SIMP(statut='o',typ='I' ), - PARA_X =SIMP(statut='o',typ='TXM',into=("VITE_FLU",) ), - PARA_Y =SIMP(statut='o',typ='TXM',into=("FREQ","AMOR") ), - ), - -# ======= TABLE ================================================= - b_table = BLOC ( condition = "TABLE != None", - fr="Récupération de la fonction à partir d un concept table", - regles=(UN_PARMI('PARA_X','NOM_PARA_TABL'), - PRESENT_PRESENT('PARA_X','PARA_Y'),), - PARA_X =SIMP(statut='f',typ='TXM', - fr="1ère colonne de la table qui définit la fonction à récupérer", ), - PARA_Y =SIMP(statut='f',typ='TXM', - fr="2ème colonne de la table qui définit la fonction à récupérer", ), - 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',max='**', - NOM_PARA =SIMP(statut='o',typ='TXM' ), - CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ", - into=("EQ","LT","GT","NE","LE","GE","VIDE", - "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ), - b_vale =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))", - regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),), - VALE =SIMP(statut='f',typ='R' ), - VALE_I =SIMP(statut='f',typ='I' ), - VALE_C =SIMP(statut='f',typ='C' ), - VALE_K =SIMP(statut='f',typ='TXM' ),), - - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - ), - -# ======= RESULTAT ================================================= - b_resu = BLOC ( condition = "RESULTAT != None", fr="Opérandes en cas de RESULTAT", - regles=(UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),), - NOM_CHAM =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()), - NOM_PARA_RESU =SIMP(statut='f',typ='TXM' ), - b_cham = BLOC ( condition = "NOM_CHAM != None", - regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD'), - PRESENT_ABSENT('POINT','NOEUD','GROUP_NO'), - PRESENT_ABSENT('SOUS_POINT','NOEUD','GROUP_NO'), - EXCLUS('GROUP_MA','MAILLE'), - EXCLUS('GROUP_NO','NOEUD'),), - NOM_CMP =SIMP(statut='o',typ='TXM' ), - MAILLE =SIMP(statut='f',typ=ma), - GROUP_MA =SIMP(statut='f',typ=grma), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - POINT =SIMP(statut='f',typ='I' ), - SOUS_POINT =SIMP(statut='f',typ='I' ), - ), - ), - -# ======= RESU_GENE ================================================= - b_tran_gene = BLOC ( condition = "AsType(RESU_GENE) == tran_gene", - fr="Récupération d'une fonction à partir d un concept TRAN_GENE", - regles=(UN_PARMI('NOM_CHAM','NOEUD_CHOC','GROUP_NO_CHOC'),), - NOM_CHAM =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE","PTEM") ), - NOEUD_CHOC =SIMP(statut='f',typ=no), - GROUP_NO_CHOC =SIMP(statut='f',typ=grno), - b_cham = BLOC ( condition = "(NOM_CHAM=='DEPL') or (NOM_CHAM=='VITE') or (NOM_CHAM=='ACCE')", - regles=(UN_PARMI('GROUP_NO','NOEUD'), - EXCLUS('MULT_APPUI','CORR_STAT'),), - NOM_CMP =SIMP(statut='o',typ='TXM' ), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - MULT_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), - CORR_STAT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - ACCE_MONO_APPUI =SIMP(statut='f',typ=(fonction_sdaster,formule)), - ), - b_choc = BLOC ( condition = "(NOEUD_CHOC != None) or (GROUP_NO_CHOC != None)", - regles=(PRESENT_PRESENT('SOUS_STRUC','INTITULE'),), - PARA_X =SIMP(statut='o',typ='TXM', - into=("INST","FN","FT1","FT2","VN","VT1","VT2","DXLOC","DYLOC","DZLOC") ), - PARA_Y =SIMP(statut='o',typ='TXM', - into=("INST","FN","FT1","FT2","VN","VT1","VT2","DXLOC","DYLOC","DZLOC") ), - LIST_PARA =SIMP(statut='f',typ=listr8_sdaster ), - INTITULE =SIMP(statut='f',typ='TXM' ), - SOUS_STRUC =SIMP(statut='f',typ='TXM' ), - ), - ), - b_harm_gene = BLOC ( condition = "AsType(RESU_GENE)==harm_gene", - fr="Récupération d'une fonction à partir d un concept HARM_GENE", - regles=(UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),), - NOM_CHAM =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()), - NOM_PARA_RESU =SIMP(statut='f',typ='TXM' ), - b_cham = BLOC ( condition = "NOM_CHAM != None", - regles=(UN_PARMI('NUME_CMP_GENE','NOM_CMP'),), - NUME_CMP_GENE =SIMP(statut='f',typ='I' ), - NOM_CMP =SIMP(statut='f',typ='TXM' ), - b_cmp = BLOC ( condition = "NOM_CMP != None", - regles=(UN_PARMI('NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - ), - ), - ), - b_mode_gene = BLOC ( condition = "AsType(RESU_GENE)==mode_gene", - fr="Récupération d'une fonction à partir d un concept MODE_GENE", - regles=(UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),), - NOM_CHAM =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()), - NOM_PARA_RESU =SIMP(statut='f',typ='TXM' ), - b_cham = BLOC ( condition = "NOM_CHAM != None", - regles=(UN_PARMI('NUME_CMP_GENE','NOM_CMP'),), - NUME_CMP_GENE =SIMP(statut='f',typ='I' ), - NOM_CMP =SIMP(statut='f',typ='TXM' ), - b_cmp = BLOC ( condition = "NOM_CMP != None", - regles=(UN_PARMI('NOEUD','GROUP_NO'), - UN_PARMI('SQUELETTE','SOUS_STRUC'),), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - SQUELETTE =SIMP(statut='f',typ=squelette ), - SOUS_STRUC =SIMP(statut='f',typ='TXM' ), - ), - ), - ), - -# ======= CHAM_GD ================================================= - b_cham_gd = BLOC ( condition = "(CHAM_GD != None)", fr="Opérandes en cas de CHAM_GD", - regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD'), - PRESENT_ABSENT('POINT','NOEUD','GROUP_NO'), - PRESENT_ABSENT('SOUS_POINT','NOEUD','GROUP_NO'), - EXCLUS('GROUP_MA','MAILLE'), - EXCLUS('GROUP_NO','NOEUD'),), - NOM_CMP =SIMP(statut='o',typ='TXM' ), - MAILLE =SIMP(statut='f',typ=ma), - GROUP_MA =SIMP(statut='f',typ=grma), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - POINT =SIMP(statut='f',typ='I' ), - SOUS_POINT =SIMP(statut='f',typ='I' ), - ), - -# ======= OBSTACLE ================================================= - b_obstacle = BLOC ( condition = "OBSTACLE != None", - fr="Choix du repère", - REPERE =SIMP(statut='f',typ='TXM',into=("POLAIRE","GLOBAL") ), - ), - -# ======= SURCHARGE DES ATTRIBUTS ================================================= - NOM_PARA =SIMP(statut='f',typ='TXM', into=C_PARA_FONCTION() ), - NOM_RESU =SIMP(statut='f',typ='TXM' ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -RECU_GENE=OPER(nom="RECU_GENE",op= 76,sd_prod=vect_asse_gene_r,reentrant='n', - UIinfo={"groupes":("Résultats et champs",)}, - fr="Extraire d'un champ de grandeur (déplacements, vitesses ou accélérations) à partir de résultats" - +" en coordonnées généralisées", - RESU_GENE =SIMP(statut='o',typ=tran_gene ), - INST =SIMP(statut='o',typ='R' ), - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE") ), - INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF" ,into=("ABSOLU","RELATIF") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -RECU_TABLE=OPER(nom="RECU_TABLE",op= 174,sd_prod=table_sdaster, - fr="Récupérer dans une table les valeurs d'un paramètre d'une SD Résultat ou d'extraire une table contenue" - +" dans une autre SD pour celles qui le permettent", - UIinfo={"groupes":("Résultats et champs",)},reentrant='n', - CO =SIMP(statut='o',typ=assd), - regles=(UN_PARMI('NOM_TABLE','NOM_PARA')), - NOM_TABLE =SIMP(statut='f',typ='TXM' ), - NOM_PARA =SIMP(statut='f',typ='TXM',max='**'), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def 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 d'un système linéaire par la méthode du gradient conjugué préconditionné", - reentrant='f', - UIinfo={"groupes":("Résolution",)}, - MATR_ASSE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ), - CHAM_NO =SIMP(statut='o',typ=(cham_no_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 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def 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ésoudre par méthode directe un système d'équations linéaires préalablement factorisé par FACT_LDLT", - UIinfo={"groupes":("Résolution",)}, - MATR_FACT =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r, - matr_asse_temp_c,matr_asse_pres_r,matr_asse_pres_c) ), - CHAM_NO =SIMP(statut='o',typ=(cham_no_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) ), - # RESI_RELA : précision utilisée si SOLVEUR=MUMPS - RESI_RELA =SIMP(statut='f',typ='R',defaut=1.e-6), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 30/06/2004 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 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", - 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',validators=NoRepeat(),max='**' ), - TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ), - MULT_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), - CORR_STAT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=8,defaut="ACCE", - into=("DEPL","VITE","ACCE","ACCE_ABSOLU","EFGE_ELNO_DEPL","SIPO_ELNO_DEPL", - "SIGM_ELNO_DEPL","FORC_NODA",) ), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - - ACCE_MONO_APPUI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - DIRECTION =SIMP(statut='f',typ='R',min=3,max=3 ), - - 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 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -REST_SPEC_PHYS=OPER(nom="REST_SPEC_PHYS",op= 148,sd_prod=tabl_intsp, - reentrant='n', - fr="Calculer la réponse d'une structure dans la base physique", - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(AU_MOINS_UN('BASE_ELAS_FLUI','MODE_MECA'),), - BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu_sdaster ), - MODE_MECA =SIMP(statut='f',typ=mode_meca ), - BANDE =SIMP(statut='f',typ='R',min=2,validators=NoRepeat(),max=2 ), - NUME_ORDRE =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**' ), - INTE_SPEC_GENE =SIMP(statut='o',typ=tabl_intsp ), - NOEUD =SIMP(statut='o',typ=no ,max='**'), - MAILLE =SIMP(statut='f',typ=ma ,max='**'), - NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), - NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=7, - into=("DEPL","VITE","ACCE","EFGE_ELNO_DEPL", - "SIPO_ELNO_DEPL","SIGM_ELNO_DEPL","FORC_NODA") ), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc), ), - EXCIT =FACT(statut='f', - NOEUD =SIMP(statut='o',typ=no ,max='**'), - NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), - ), - MOUVEMENT =SIMP(statut='f',typ='TXM',defaut="ABSOLU",into=("RELATIF","ABSOLU","DIFFERENTIEL") ), - OPTION =SIMP(statut='f',typ='TXM',defaut="DIAG_DIAG", - into=("DIAG_TOUT","DIAG_DIAG","TOUT_TOUT","TOUT_DIAG") ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 08/11/2005 AUTEUR ASSIRE A.ASSIRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.stanley_ops import stanley_ops - -STANLEY=MACRO(nom="STANLEY",op=stanley_ops,sd_prod=None, - reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - fr="Outil de post-traitement interactif Stanley ", - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther,mode_meca,mode_stat,dyna_harmo,dyna_trans) ), - MODELE =SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - DISPLAY =SIMP(statut='f',typ='TXM'), -) ; -#& MODIF COMMANDE DATE 07/10/2005 AUTEUR CIBHHPD L.SALMONA -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 PBADEL P.BADEL -STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli, - fr="Calcul de l'évolution mécanique ou thermo-hydro-mécanique couplée, en quasi-statique," - +" d'une structure en non linéaire", - reentrant='f', - UIinfo={"groupes":("Résolution",)}, - regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS'),), - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - EXCIT =FACT(statut='o',max='**', - CHARGE =SIMP(statut='o',typ=(char_meca,char_cine_meca)), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE", - into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")), - ), - SOUS_STRUC =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','MAILLE'),), - CAS_CHARGE =SIMP(statut='o',typ='TXM' ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',), - ), - COMP_INCR =C_COMP_INCR(), - COMP_ELAS =FACT(statut='f',max='**', - RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", - into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), - RELATION =SIMP(statut='o',typ='TXM',defaut="ELAS", - into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC", - "ELAS_POUTRE_GR","CABLE")), - ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_VMIS_LINE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_POUTRE_GR =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - CABLE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - ), - b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : ETAT_INIT obligatoire", - ETAT_INIT =FACT(statut='o', - regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), - EXCLUS('NUME_ORDRE','INST'), ), - DEPL =SIMP(statut='f',typ=cham_no_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'), - ),), - b_not_reuse =BLOC(condition = "not reuse",fr="en mode concept non reentrant : ETAT_INIT facultatif", - ETAT_INIT =FACT(statut='f', - regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), - EXCLUS('NUME_ORDRE','INST'), ), - DEPL =SIMP(statut='f',typ=cham_no_depl_r), - SIGM =SIMP(statut='f',typ=(cham_elem_sief_r,carte_sief_r)), - VARI =SIMP(statut='f',typ=cham_elem_vari_r), - VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_vanl_r), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - NUME_DIDI =SIMP(statut='f',typ='I'), - INST_ETAT_INIT =SIMP(statut='f',typ='R'), - ),), - INCREMENT =FACT(statut='o', - regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), - EXCLUS('NUME_INST_FIN','INST_FIN'),), - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE", - into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ), - NUME_INST_INIT =SIMP(statut='f',typ='I'), - INST_INIT =SIMP(statut='f',typ='R'), - NUME_INST_FIN =SIMP(statut='f',typ='I'), - INST_FIN =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - SUBD_PAS =SIMP(statut='f',typ='I',defaut=1), - SUBD_PAS_MINI =SIMP(statut='f',typ='R'), - COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0), - OPTI_LIST_INST =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),), - NOM_CHAM =SIMP(statut='f',typ='TXM',), - NOM_CMP =SIMP(statut='f',typ='TXM',), - VALE =SIMP(statut='f',typ='R'), - ), - NEWTON =FACT(statut='d', - REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), - PREDICTION =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ), - MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ), - PAS_MINI_ELAS =SIMP(statut='f',typ='R',defaut=0.0E+0), - REAC_ITER =SIMP(statut='f',typ='I',defaut=0), - REAC_ITER_ELAS =SIMP(statut='f',typ='I',defaut=0), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - ), - RECH_LINEAIRE =FACT(statut='f', - RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-1 ), - ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3), - ITER_LINE_CRIT =SIMP(statut='f',typ='I',defaut= 20), - PAS_MINI_CRIT =SIMP(statut='f',typ='R',defaut=0.0E+0), - RHO_MIN =SIMP(statut='f',typ='R',defaut=1.0E-2), - RHO_MAX =SIMP(statut='f',typ='R',defaut=1.0E+1), - RHO_EXCL =SIMP(statut='f',typ='R',defaut=0.9E-2), - ), - PILOTAGE =FACT(statut='f', - regles=(EXCLUS('NOEUD','GROUP_NO'),PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TYPE =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS","PRED_ELAS_INCR","DEFORMATION","ANA_LIM") ), - COEF_MULT =SIMP(statut='f',typ='R',defaut= 1.0E+0), - ETA_PILO_MAX =SIMP(statut='f',typ='R'), - ETA_PILO_MIN =SIMP(statut='f',typ='R'), - ETA_PILO_R_MAX =SIMP(statut='f',typ='R'), - ETA_PILO_R_MIN =SIMP(statut='f',typ='R'), - PROJ_BORNES =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - SELECTION =SIMP(statut='f',typ='TXM',defaut="NORM_INCR_DEPL", into=("RESIDU","ANGL_INCR_DEPL","NORM_INCR_DEPL") ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - ), - CONVERGENCE =FACT(statut='d', - regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),), - SIGM_REFE =SIMP(statut='f',typ='R'), - EPSI_REFE =SIMP(statut='f',typ='R'), - FLUX_THER_REFE =SIMP(statut='f',typ='R'), - FLUX_HYD1_REFE =SIMP(statut='f',typ='R'), - FLUX_HYD2_REFE =SIMP(statut='f',typ='R'), - RESI_REFE_RELA =SIMP(statut='f',typ='R'), - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), - ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25), - ARRET =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - ), - PARM_THETA =SIMP(statut='f',typ='R',defaut= 1. ), - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - b_mumps =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS", - TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=20,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.,), - ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - ARCHIVAGE =FACT(statut='f', - regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'), - EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ), - LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - PAS_ARCH =SIMP(statut='f',typ='I' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - ARCH_ETAT_INIT =SIMP(statut='f',typ='TXM',into=("OUI",)), - NUME_INIT =SIMP(statut='f',typ='I'), - DETR_NUME_SUIV =SIMP(statut='f',typ='TXM',into=("OUI",)), - CHAM_EXCLU =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","SIEF_ELGA","VARI_ELGA", - "VARI_NON_LOCAL","LANL_ELGA")), - ), - OBSERVATION =FACT(statut='f',max='**', - regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'), - PRESENT_PRESENT('MAILLE','POINT'),), - NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","VITE","ACCE","SIEF_ELGA", - "VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU","VALE_CONT")), - NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ), - LIST_ARCH =SIMP(statut='f',typ=listis_sdaster), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PAS_OBSE =SIMP(statut='f',typ='I'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - POINT =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'), - ), - - SUIVI_DDL = FACT(statut='f',max=4, - regles=(UN_PARMI('NOEUD','MAILLE'), - PRESENT_PRESENT('MAILLE','POINT'),), - NUME_SUIVI =SIMP(statut='o',typ='I' ,min=1,max=4), - NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1, - into=("DEPL","VITE","ACCE","SIEF_ELGA", - "VARI_ELGA","FORC_NODA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU",)), - NOM_CMP =SIMP(statut='o',typ='TXM',max=1 ), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=1), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max=1), - POINT =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max=1), - ), - - AFFICHAGE = FACT(statut='f',max=16, - - UNITE = SIMP(statut='f',typ='I',val_min=1), - - LONG_R = SIMP(statut='f',typ='I',defaut=12,val_min=1,val_max=12), - PREC_R = SIMP(statut='f',typ='I',defaut=5, val_min=1,val_max=8), - LONG_I = SIMP(statut='f',typ='I',defaut=6, val_min=1,val_max=12), - - NOM_COLONNE = SIMP(statut='o',typ='TXM',defaut="STANDARD", - into=("STANDARD","MINIMUM", - "ITER_NEWT", - "INCR_TPS", - "RESI_RELA","RELA_NOEU", - "RESI_MAXI","MAXI_NOEU", - "RESI_REFE","REFE_NOEU", - "RELI_ITER","RELI_COEF", - "PILO_PARA", - "LAGR_ECAR","LAGR_INCR","LAGR_ITER", - "MATR_ASSE", - "ITER_DEBO", - "CTCD_ITER","CTCD_INFO","CTCD_GEOM","CTCD_NOEU", - "CTCC_GEOM","CTCC_FROT","CTCC_CONT", - "SUIV_1","SUIV_2","SUIV_3","SUIV_4", - ), - ), - b_residu = BLOC(condition = " NOM_COLONNE == 'RESI_RELA' or \ - NOM_COLONNE == 'RESI_MAXI' or\ - NOM_COLONNE == 'RESI_REFE' or\ - NOM_COLONNE == 'CTCD_GEOM' or\ - NOM_COLONNE == 'STANDARD' ", - INFO_RESIDU = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - ), - - - - CRIT_FLAMB =FACT(statut='f',min=1,max=1, - NB_FREQ =SIMP(statut='f',typ='I',max=1,defaut=3), - CHAR_CRIT =SIMP(statut='f',typ='R',min=2,max=2,defaut=(-10.0,10), - fr="Valeur des deux charges critiques délimitant la bande de recherche en HPP"), - ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité", - ang="List of sensitivity parameters"), - SOLV_NON_LOCAL =FACT(statut='f', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_mumps =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS", - TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=20,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=1.E-6,), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - LAGR_NON_LOCAL =FACT(statut='f', - ITER_DUAL_MAXI =SIMP(statut='f',typ='I',defaut= 50), - RESI_DUAL_ABSO =SIMP(statut='o',typ='R'), - RESI_PRIM_ABSO =SIMP(statut='o',typ='R'), - R =SIMP(statut='f',typ='R',defaut= 1000.), - ITER_PRIM_MAXI =SIMP(statut='f',typ='I',defaut= 10), - ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - ) - -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -# RESPONSABLE MCOURTOI M.COURTOIS - -from Macro.test_fichier_ops import test_fichier_ops - -TEST_FICHIER=MACRO(nom="TEST_FICHIER", op=test_fichier_ops, - UIinfo={"groupes":("Impression",)}, - fr="Tester la non régression de fichiers produits par des commandes aster", - UNITE =SIMP(statut='f',typ='I',defaut=8), - FICHIER =SIMP(statut='o',typ='TXM',validators=LongStr(1,255)), - NB_CHIFFRE =SIMP(statut='f',typ='I',defaut=6), - EPSILON =SIMP(statut='f',typ='R',defaut=1.E-14), - EXPR_IGNORE =SIMP(statut='f',typ='TXM',max='**', - fr="Liste d'expressions régulières permettant d'ignorer certaines lignes"), - VALE_K =SIMP(statut='o',typ='TXM' ), - REFERENCE =SIMP(statut='f',typ='TXM', - into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ), - - b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", - VERSION =SIMP(statut='f',typ='TXM' ), - ), - - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE MCOURTOI M.COURTOIS -TEST_FONCTION=PROC(nom="TEST_FONCTION",op= 135, - fr="Extraction d'une valeur numérique ou d'un attribut de fonction pour comparaison à une valeur de référence", - UIinfo={"groupes":("Impression",)}, - UNITE =SIMP(statut='f',typ='I',defaut=8), - TEST_NOOK =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - VALEUR =FACT(statut='f',max='**', - fr="Tester la valeur d une fonction ou d une nappe", - regles=(UN_PARMI('VALE_REFE','VALE_REFE_C', ),), - FONCTION =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster,formule) ), - NOM_PARA =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2), - VALE_PARA =SIMP(statut='o',typ='R' ,validators=NoRepeat(),max=2), - VALE_REFE =SIMP(statut='f',typ='R' ), - VALE_REFE_C =SIMP(statut='f',typ='C' ), - VALE_ABS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - CRITERE =SIMP(statut='f',typ='TXM',fr="Critère de comparaison avec la solution de référence", - defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence", - defaut= 1.E-3 ), - REFERENCE =SIMP(statut='f',typ='TXM', - into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ), - b_version = BLOC (condition = "REFERENCE == 'NON_REGRESSION'", - VERSION =SIMP(statut='f',typ='TXM' ), - ), - ), - ATTRIBUT =FACT(statut='f',max='**', - fr="Tester la valeur d un attribut d une fonction ou d''une nappe", - FONCTION =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster,formule) ), - PARA =SIMP(statut='f',typ='R' ), - CRIT_PARA =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PREC_PARA =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ATTR =SIMP(statut='o',typ='TXM', - into=("NOM_PARA","NOM_RESU","PROL_DROITE","PROL_GAUCHE","INTERPOL", - "PROL_GAUCHE_FONC","PROL_DROITE_FONC","INTERPOL_FONC","NOM_PARA_FONC") ), - ATTR_REFE =SIMP(statut='o',typ='TXM' ), - REFERENCE =SIMP(statut='f',typ='TXM', - into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ), - b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", - VERSION =SIMP(statut='f',typ='TXM' ), - ), - ), - TABL_INTSP =FACT(statut='f',max='**', - fr="Tester la valeur d une fonction contenue dans une table interspectrale", - regles=(UN_PARMI('NUME_ORDRE_I','NOEUD_I'),), - INTE_SPEC =SIMP(statut='o',typ=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/06/2005 AUTEUR REZETTE C.REZETTE -# RESPONSABLE VABHHTS J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# -# -# ====================================================================== -TEST_RESU=PROC(nom="TEST_RESU",op=23, - UIinfo={"groupes":("Impression",)}, - fr="Extraction d'une valeur d'une structure de donnée et comparaison à une valeur de référence", - regles=(AU_MOINS_UN('CHAM_NO','CHAM_ELEM','RESU','GENE','OBJET')), - UNITE =SIMP(statut='f',typ='I',defaut=8), - - CHAM_NO =FACT(statut='f',max='**', - regles=(UN_PARMI('NOEUD','GROUP_NO','TYPE_TEST'), - EXCLUS('NOEUD','GROUP_NO'), - PRESENT_PRESENT('NOEUD','NOM_CMP'), - PRESENT_PRESENT( 'GROUP_NO','NOM_CMP'), - UN_PARMI('VALE','VALE_I','VALE_C'),), - CHAM_GD =SIMP(statut='o',typ=cham_no_sdaster), - NOEUD =SIMP(statut='f',typ=no ), - GROUP_NO =SIMP(statut='f',typ=grno ), - NOM_CMP =SIMP(statut='f',typ='TXM'), - TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN")), - VALE =SIMP(statut='f',typ='R'), - VALE_I =SIMP(statut='f',typ='I'), - VALE_C =SIMP(statut='f',typ='C'), - VALE_ABS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", - "NON_REGRESSION","AUTRE_ASTER")), - VERSION =SIMP(statut='f',typ='TXM'), - ), - - CHAM_ELEM =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','TYPE_TEST',), - EXCLUS('NOEUD','GROUP_NO','POINT'), - PRESENT_PRESENT('NOEUD','NOM_CMP'), - PRESENT_PRESENT('GROUP_NO','NOM_CMP'), - PRESENT_PRESENT('POINT','NOM_CMP'), - UN_PARMI('VALE','VALE_I','VALE_C'), ), - CHAM_GD =SIMP(statut='o',typ=cham_elem_sdaster), - MAILLE =SIMP(statut='f',typ=ma), - POINT =SIMP(statut='f',typ='I' ), - SOUS_POINT =SIMP(statut='f',typ='I'), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ), - VALE =SIMP(statut='f',typ='R' ), - VALE_I =SIMP(statut='f',typ='I' ), - VALE_C =SIMP(statut='f',typ='C' ), - VALE_ABS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", - "NON_REGRESSION","AUTRE_ASTER") ), - VERSION =SIMP(statut='f',typ='TXM' ), - ), - - RESU =FACT(statut='f',max='**', - regles=(UN_PARMI('NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'), - UN_PARMI('NOM_CHAM','PARA'), - PRESENT_ABSENT('PARA','NOEUD','GROUP_NO','POINT','NOM_CMP','TYPE_TEST'), - PRESENT_PRESENT('NOM_CMP','NOM_CHAM'), - EXCLUS('NOEUD','GROUP_NO','POINT','TYPE_TEST'), - PRESENT_PRESENT('NOEUD','NOM_CMP'), - PRESENT_PRESENT('GROUP_NO','NOM_CMP'), - PRESENT_PRESENT('POINT','NOM_CMP'), - UN_PARMI('VALE','VALE_I','VALE_C') ,), - RESULTAT =SIMP(statut='o',typ=resultat_sdaster), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom), - fr="Paramètre de sensibilité.", - ang="Sensitivity parameter"), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - FREQ =SIMP(statut='f',typ='R'), - NUME_MODE =SIMP(statut='f',typ='I'), - NOEUD_CMP =SIMP(statut='f',typ='TXM',min=2,max=2), - NOM_CAS =SIMP(statut='f',typ='TXM'), - ANGL =SIMP(statut='f',typ='R'), - PARA =SIMP(statut='f',typ='TXM'), - NOM_CHAM =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - MAILLE =SIMP(statut='f',typ=ma ,max='**'), - NOEUD =SIMP(statut='f',typ=no ,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno ,max='**'), - POINT =SIMP(statut='f',typ='I'), - SOUS_POINT =SIMP(statut='f',typ='I'), - TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN")), - VALE =SIMP(statut='f',typ='R'), - VALE_I =SIMP(statut='f',typ='I'), - VALE_C =SIMP(statut='f',typ='C'), - VALE_ABS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - CRITERE =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),max=2), - PRECISION =SIMP(statut='f',typ='R',max=2), - REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", - "NON_REGRESSION","AUTRE_ASTER",) ), - VERSION =SIMP(statut='f',typ='TXM' ), - ), - - GENE =FACT(statut='f',max='**', - regles=(UN_PARMI('VALE','VALE_I','VALE_C') ,), - RESU_GENE =SIMP(statut='o',typ=(vect_asse_gene_r, tran_gene, mode_gene, harm_gene)), - b_vect_asse =BLOC(condition = "AsType(RESU_GENE) == vect_asse_gene_r", - NUME_CMP_GENE =SIMP(statut='o',typ='I'), - ), - b_mode =BLOC(condition = "(AsType(RESU_GENE) == harm_gene) or (AsType(RESU_GENE) == mode_gene)", - regles=(UN_PARMI('NUME_ORDRE','FREQ','NUME_MODE'), - UN_PARMI('NOM_CHAM','PARA'), - PRESENT_PRESENT('NOM_CHAM','NUME_CMP_GENE'),), - NOM_CHAM =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()), - NUME_CMP_GENE =SIMP(statut='f',typ='I'), - PARA =SIMP(statut='f',typ='TXM'), - NUME_ORDRE =SIMP(statut='f',typ='I'), - NUME_MODE =SIMP(statut='f',typ='I'), - FREQ =SIMP(statut='f',typ='R'), - ), - b_tran =BLOC(condition = "AsType(RESU_GENE) == tran_gene", - regles=(UN_PARMI('NUME_ORDRE','INST') ,), - NOM_CHAM =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()), - NUME_CMP_GENE =SIMP(statut='o',typ='I'), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - ), - VALE =SIMP(statut='f',typ='R'), - VALE_I =SIMP(statut='f',typ='I'), - VALE_C =SIMP(statut='f',typ='C'), - VALE_ABS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - CRITERE =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),max=2), - PRECISION =SIMP(statut='f',typ='R',max=2), - REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", - "NON_REGRESSION","AUTRE_ASTER",) ), - VERSION =SIMP(statut='f',typ='TXM' ), - ), - - OBJET =FACT(statut='f',max='**', - regles=(UN_PARMI('S_I','S_R','RESUME',), - UN_PARMI('VALE','VALE_I','VALE_C','RESUME','S_R','S_I'),), - NOM =SIMP(statut='o',typ='TXM'), - S_R =SIMP(statut='f',typ='R'), - S_I =SIMP(statut='f',typ='I'), - RESUME =SIMP(statut='f',typ='I'), - VALE =SIMP(statut='f',typ='R'), - VALE_I =SIMP(statut='f',typ='I'), - VALE_C =SIMP(statut='f',typ='C'), - VALE_ABS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", - "NON_REGRESSION","AUTRE_ASTER",) ), - VERSION =SIMP(statut='f',typ='TXM' ), - ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -TEST_TABLE=PROC(nom="TEST_TABLE",op= 177, - UIinfo={"groupes":("Impression",)}, - fr="Tester une cellule ou une colonne d'une table", - regles=(UN_PARMI('VALE','VALE_I','VALE_C', ),), - UNITE =SIMP(statut='f',typ='I',defaut=8), -# concept table_sdaster à tester - TABLE =SIMP(statut='o',typ=table_sdaster), - - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom), - fr="Paramètre de sensibilité.", - ang="Sensitivity parameter"), - FILTRE =FACT(statut='f',max='**', - NOM_PARA =SIMP(statut='o',typ='TXM' ), - CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ", - into=("EQ","LT","GT","NE","LE","GE","VIDE", - "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ), - b_vale =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))", - regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),), - VALE =SIMP(statut='f',typ='R' ), - VALE_I =SIMP(statut='f',typ='I' ), - VALE_C =SIMP(statut='f',typ='C' ), - VALE_K =SIMP(statut='f',typ='TXM' ),), - - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ), - NOM_PARA =SIMP(statut='o',typ='TXM' ), - VALE =SIMP(statut='f',typ='R' ), - VALE_I =SIMP(statut='f',typ='I' ), - VALE_C =SIMP(statut='f',typ='C' ), - VALE_ABS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.2E-3 ), - REFERENCE =SIMP(statut='f',typ='TXM', - into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ), - b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", - VERSION =SIMP(statut='f',typ='TXM' ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), - ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -THER_LINEAIRE=OPER(nom="THER_LINEAIRE",op=25,sd_prod=evol_ther,reentrant='f', - UIinfo={"groupes":("Résolution",)}, - fr="Résoudre un problème thermique linéaire stationnaire ou transitoire", - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - EXCIT =FACT(statut='o',max='**', - CHARGE =SIMP(statut='o',typ=(char_ther,char_cine_ther)), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - INCREMENT =FACT(statut='f', - LIST_INST =SIMP(statut='o',typ=listr8_sdaster ), - NUME_INIT =SIMP(statut='f',typ='I'), - NUME_FIN =SIMP(statut='f',typ='I'), - ), - TEMP_INIT =FACT(statut='f', - regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),), - STATIONNAIRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - EVOL_THER =SIMP(statut='f',typ=evol_ther), - CHAM_NO =SIMP(statut='f',typ=cham_no_temp_r), - VALE =SIMP(statut='f',typ='R'), - NUME_INIT =SIMP(statut='f',typ='I'), - ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters", - ), - SENS_INIT =FACT(statut='f', - regles=(EXCLUS('STATIONNAIRE','EVOL_THER', ),), - STATIONNAIRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - EVOL_THER =SIMP(statut='f',typ=evol_ther), - NUME_INIT =SIMP(statut='f',typ='I'), - ), - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - b_mumps =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS", - TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=20,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=1.E-6,), - ), - ), - PARM_THETA =SIMP(statut='f',typ='R',defaut= 0.57), - ARCHIVAGE =FACT(statut='f', - regles=(UN_PARMI('LIST_ARCH','PAS_ARCH','LIST_INST','INST'),), - LIST_ARCH =SIMP(statut='f',typ=listis_sdaster), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", - into=("RELATIF","ABSOLU")), - PAS_ARCH =SIMP(statut='f',typ='I'), - CHAM_EXCLU =SIMP(statut='f',typ='TXM',into=("VARI",)), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',into=(1,2)), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,reentrant='f', - UIinfo={"groupes":("Résolution",)}, - fr="Résoudre un problème thermique non linéaire (conditions limites ou comportement matériau)" - +" stationnaire ou transitoire" , - MODELE =SIMP(statut='o',typ=(modele_sdaster) ), - CHAM_MATER =SIMP(statut='o',typ=(cham_mater) ), - CARA_ELEM =SIMP(statut='c',typ=(cara_elem) ), - COMP_THER_NL =FACT(statut='d',max='**', - RELATION =SIMP(statut='f',typ='TXM',defaut="THER_NL", - into=("THER_NL", - "THER_HYDR", - "SECH_GRANGER", - "SECH_MENSI", - "SECH_BAZANT", - "SECH_NAPPE" - ) ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - ), - EVOL_THER_SECH =SIMP(statut='f',typ=evol_ther), - EXCIT =FACT(statut='o',max='**', - CHARGE =SIMP(statut='o',typ=char_ther), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - INCREMENT =FACT(statut='f', - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - NUME_INIT =SIMP(statut='f',typ='I'), - NUME_FIN =SIMP(statut='f',typ='I'), - ), - TEMP_INIT =FACT(statut='f', - regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),), - STATIONNAIRE =SIMP(statut='f',typ='TXM',into=("OUI",)), - EVOL_THER =SIMP(statut='f',typ=evol_ther), - CHAM_NO =SIMP(statut='f',typ=cham_no_temp_r), - VALE =SIMP(statut='f',typ='R'), - NUME_INIT =SIMP(statut='f',typ='I'), - ), - NEWTON =FACT(statut='d', - REAC_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 0 ), - ), - CONVERGENCE =FACT(statut='d', - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters", - ), - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Parametres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Parametres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Parametres relatifs a la non inversibilité de la matrice a factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Parametres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I' ,defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R' ,defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I' ,defaut= 0 ), - ), - b_mumps =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS", - TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=20,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.,), - ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - ), - PARM_THETA =SIMP(statut='f',typ='R',defaut= 0.57 ), - ARCHIVAGE =FACT(statut='f', - regles=(UN_PARMI('LIST_ARCH','PAS_ARCH','LIST_INST','INST', ),), - LIST_ARCH =SIMP(statut='f',typ=(listis_sdaster) ), - LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - PAS_ARCH =SIMP(statut='f',typ='I'), - CHAM_EXCLU =SIMP(statut='f',typ='TXM',into=("VARI",)), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - OPTION =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2, - into=("FLUX_ELGA_TEMP","FLUX_ELNO_TEMP") ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), - -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -THER_NON_LINE_MO=OPER(nom="THER_NON_LINE_MO",op= 171,sd_prod=evol_ther, - fr="Résoudre un problème thermique non linéaire (conditions limites ou comportement matériau)" - +" stationnaire avec chargement mobile", - reentrant='n', - UIinfo={"groupes":("Résolution",)}, - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CARA_ELEM =SIMP(statut='c',typ=cara_elem ), - EXCIT =FACT(statut='o',max='**', - CHARGE =SIMP(statut='o',typ=char_ther ), - FONC_MULT =SIMP(statut='c',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - TEMP_INIT =FACT(statut='f', - EVOL_THER =SIMP(statut='f',typ=evol_ther ), - NUME_INIT =SIMP(statut='f',typ='I',defaut= 0 ), - ), - CONVERGENCE =FACT(statut='d', - CRIT_TEMP_RELA =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRIT_ENTH_RELA =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ARRET =SIMP(statut='c',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; - - - diff --git a/Aster/Cata/cataSTA8c_clefs_docu b/Aster/Cata/cataSTA8c_clefs_docu new file mode 100644 index 00000000..1967bad1 --- /dev/null +++ b/Aster/Cata/cataSTA8c_clefs_docu @@ -0,0 +1,204 @@ +AFFE_CARA_ELEM:U4.42.01-h +AFFE_CHAR_ACOU:U4.44.04-g +AFFE_CHAR_CINE_F:U4.44.03-g +AFFE_CHAR_CINE:U4.44.03-g +AFFE_CHAR_MECA:U4.44.01-h +AFFE_CHAR_MECA_F:U4.44.01-h +AFFE_CHAR_MECA_C:U4.44.05-e +AFFE_CHAR_THER_F:U4.44.02-h +AFFE_CHAR_THER:U4.44.02-h +AFFE_MATERIAU:U4.43.03-h +AFFE_MODELE:U4.41.01-h +AIDE:U4.02.01-h +ASSE_MAILLAGE:U4.23.03-g +ASSE_MATRICE:U4.61.22-h +ASSE_MATR_GENE:U4.65.04-f +ASSE_VECTEUR:U4.61.23-h +ASSE_VECT_GENE:U4.65.05-f +CALC_AMOR_MODAL:U4.52.13-f +CALC_CHAM_ELEM:U4.81.03-h +CALC_CHAR_CINE:U4.61.03-g +CALC_CHAR_SEISME:U4.63.01-g +CALC_ELEM:U4.81.01-h +CALC_FATIGUE:U4.83.02-e +CALC_FLUI_STRU:U4.66.02-f +CALC_FONCTION:U4.32.04-h +CALC_FONC_INTERP:U4.32.01-f +CALC_FORC_AJOU:U4.66.03-b +CALC_G_LOCAL_T:U4.82.04-g +CALC_G_THETA_T:U4.82.03-g +CALC_INTE_SPEC:U4.36.03-g +CALC_MATR_AJOU:U4.66.01-e +CALC_MATR_ELEM:U4.61.01-h +CALC_META:U4.85.01-c +CALC_NO:U4.81.02-g +CALC_PRECONT:U4.42.05-a +CALC_THETA:U4.82.02-f +CALC_VECT_ELEM:U4.61.02-h +COMB_CHAM_ELEM:U4.72.03-g +COMB_CHAM_NO:U4.72.02-h +COMB_FOURIER:U4.83.31-e +COMB_MATR_ASSE:U4.72.01-h +COMB_SISM_MODAL:U4.84.01-f +COMP_INCR:U4.51.11-a +CREA_CHAMP:U4.72.04-c +CREA_MAILLAGE:U4.23.02-e +CREA_RESU:U4.44.12-f +CREA_TABLE:U4.33.02-a +DEBUT:U4.11.01-h +DEFI_BASE_MODALE:U4.64.02-g +DEFI_CABLE_BP:U4.42.04-c +DEFI_COMPOR:U4.43.06-a +DEFI_CONSTANTE:U4.31.01-h +DEFI_COQU_MULT:U4.42.03-g +DEFI_FICHIER:U4.12.03-a +DEFI_FISS_XFEM:U4.82.08-a +DEFI_FLUI_STRU:U4.25.01-f +DEFI_FONCTION:U4.31.02-h +DEFI_FONC_ELEC:U4.mk.10-g +DEFI_FONC_FLUI:U4.35.01-e +DEFI_FOND_FISS:U4.82.01-g +DEFI_GROUP:U4.22.01-g +DEFI_INTERF_DYNA:U4.64.01-g +DEFI_INTE_SPEC:U4.36.02-g +DEFI_LIST_ENTI:U4.34.02-h +DEFI_LIST_REEL:U4.34.01-h +DEFI_MAILLAGE:U4.23.01-g +DEFI_MATERIAU:U4.43.01-h +DEFI_MODELE_GENE:U4.65.02-f +DEFI_NAPPE:U4.31.03-h +DEFI_OBSTACLE:U4.44.21-g +DEFI_PARA_SENSI:U4.31.06-b +DEFI_SPEC_TURB:U4.44.31-e +DEFI_SQUELETTE:U4.24.01-h +DEFI_TEXTURE:U4.43.05-c +DEFI_THER_JOULE:U4.mk.20-f +DEFI_TRC:U4.43.04-g +DEPL_INTERNE:U4.62.02-g +DETRUIRE:U4.14.01-f +DIST_LIGN_3D:U4.mk.30-f +DYNA_ALEA_MODAL:U4.53.22-g +DYNA_LINE_HARM:U4.53.11-g +DYNA_LINE_TRAN:U4.53.02-h +DYNA_NON_LINE:U4.53.01-g +DYNA_SPEC_MODAL:U4.53.23-e +DYNA_TRAN_EXPLI:U4.53.03-a +DYNA_TRAN_MODAL:U4.53.21-g +ENGENDRE_TEST:U4.92.11-d +EXEC_LOGICIEL:U7.00.01-c +EXTR_MODE:U4.52.12-e +EXTR_RESU:U4.71.04-d +EXTR_TABLE:U4.71.05-a +FACT_GRAD:U4.55.03-g +FACT_LDLT:U4.55.01-h +FIN:U4.11.02-h +FONC_FLUI_STRU:U4.35.02-e +FORMULE:U4.31.05-f +GENE_FONC_ALEA:U4.36.05-g +GENE_MATR_ALEA:U4.36.06-b +GENE_VARI_ALEA:U4.36.07-b +IMPR_CLASSI:U7.04.21-c +IMPR_CO:U4.91.11-h +IMPR_COURBE:U4.33.01-e +IMPR_FICO_HOMA:U7.04.01-c +IMPR_FONCTION:U4.33.01-f +IMPR_GENE:U4.91.02-e +IMPR_JEVEUX:U4.91.21-h +IMPR_MACR_ELEM:U7.04.33-e +IMPR_MATRICE:U7.04.32-e +IMPR_MISS_3D:U7.04.11-e +IMPR_OAR:U7.04.51-a +IMPR_RESU:U4.91.01-h +IMPR_STURM:U4.52.01-h +IMPR_TABLE:U4.91.03-e +INCLUDE:U4.13.01-g +INCLUDE_MATERIAU:U4.43.02-c +INFO_EXEC_ASTER:U4.13.04-a +INTE_MAIL_2D:U4.81.11-g +INTE_MAIL_3D:U4.81.12-g +LIRE_CHAMP:U7.02.02-c +LIRE_FONCTION:U4.32.02-g +LIRE_INTE_SPEC:U4.36.01-g +LIRE_MAILLAGE:U4.21.01-h +LIRE_MISS_3D:U7.02.31-e +LIRE_PLEXUS:U7.02.11-c +LIRE_RESU:U7.02.01-e +LIRE_TABLE:U7.02.03-b +MACRO_CARA_POUTRE:U4.42.02-d +MACRO_ELAS_MULT:U4.51.02-e +MACRO_MATR_AJOU:U4.66.11-d +MACRO_MATR_ASSE:U4.61.21-e +MACRO_MISS_3D:U7.03.11-c +MACRO_MODE_MECA:U4.52.02-e +MACRO_PROJ_BASE:U4.63.11-e +MACR_ADAP_MAIL:U7.03.01-c +MACR_ASCOUF_CALC:U4.cf.20-c +MACR_ASCOUF_MAIL:U4.cf.10-c +MACR_ASPIC_CALC:U4.pc.20-c +MACR_ASPIC_MAIL:U4.pc.10-c +MACR_CABRI_CALC:U4.cb.20-a +MACR_CABRI_MAIL:U4.cb.10-a +MACR_CARA_POUTRE:U4.42.02-e +MACR_ECLA_PG:U4.44.14-a +MACR_ELEM_DYNA:U4.65.01-f +MACR_ELEM_STAT:U4.62.01-g +MACR_FIABILITE:U7.03.31-a +MACR_FIAB_IMPR:U7.04.41-a +MACR_INFO_MAIL:U7.03.02-c +MACR_LIGN_COUPE:U4.81.13-b +MACR_RECAL:U4.73.02-b +MAJ_CATA:U4.15.01-f +MECA_STATIQUE:U4.51.01-h +MEMO_NOM_SENSI:U4.31.07-b +MODE_ITER_CYCL:U4.52.05-g +MODE_ITER_INV:U4.52.04-h +MODE_ITER_SIMULT:U4.52.03-g +MODE_STATIQUE:U4.52.14-g +MODI_BASE_MODALE:U4.66.21-e +MODI_MAILLAGE:U4.23.04-e +MODI_MODELE_XFEM:U4.41.11-a +MODI_OBSTACLE:U4.44.22-c +MODI_REPERE:U4.74.01-b +NORM_MODE:U4.52.11-g +NUME_DDL:U4.61.11-h +NUME_DDL_GENE:U4.65.03-f +POST_DYNA_ALEA:U4.84.04-f +POST_DYNA_MODA_T:U4.84.02-f +POST_ELEM:U4.81.22-f +POST_FATIGUE:U4.83.01-e +POST_FATI_ALEA:U4.84.03-e +POST_K1_K2_K3:U4.82.05-c +POST_K_BETA:U4.82.07-b +POST_RCCM:U4.83.11-e +POST_RELEVE_T:U4.81.21-f +POST_USURE:U4.84.05-f +POST_ZAC:U4.83.21-d +POURSUITE:U4.11.03-h +PRE_GIBI:U7.01.11-h +PRE_GMSH:U7.01.31-b +PRE_IDEAS:U7.01.01-h +PROD_MATR_CHAM:U4.72.06-d +PROJ_CHAMP:U4.72.05-e +PROJ_MATR_BASE:U4.63.12-g +PROJ_MESU_MODAL:U4.73.01-c +PROJ_SPEC_BASE:U4.63.14-e +PROJ_VECT_BASE:U4.63.13-g +RECA_WEIBULL:U4.82.06-c +RECU_FONCTION:U4.32.03-g +RECU_GENE:U4.71.03-g +RECU_TABLE:U4.71.02-c +RESO_GRAD:U4.55.04-g +RESO_LDLT:U4.55.02-h +REST_BASE_PHYS:U4.63.21-g +REST_SPEC_PHYS:U4.63.22-e +SENSIBILITE:U4.50.02-b +SOLVEUR:U4.50.01-e +STANLEY:U4.81.31-b +STAT_NON_LINE:U4.51.03-g +TEST_FICHIER:U4.92.04-a +TEST_FONCTION:U4.92.02-g +TEST_RESU:U4.92.01-h +TEST_TABLE:U4.92.03-d +THER_LINEAIRE:U4.54.01-h +THER_NON_LINE:U4.54.02-f +THER_NON_LINE_MO:U4.54.03-d diff --git a/Aster/Cata/petitcata/__init__.py b/Aster/Cata/petitcata/__init__.py index 25b7c107..ad959055 100644 --- a/Aster/Cata/petitcata/__init__.py +++ b/Aster/Cata/petitcata/__init__.py @@ -1,2 +1,2 @@ -import pre74 +#import pre74 from cata import * diff --git a/Aster/Cata/petitcata/cata.py b/Aster/Cata/petitcata/cata.py index a46adfed..98992a12 100755 --- a/Aster/Cata/petitcata/cata.py +++ b/Aster/Cata/petitcata/cata.py @@ -31,7 +31,7 @@ except: # __version__="$Name: $" -__Id__="$Id: cata.py,v 1.1 2004/11/19 09:06:23 eficas Exp $" +__Id__="$Id: cata.py,v 1.2.6.1 2006/05/24 16:44:25 cchris Exp $" # JdC = JDC_CATA(code='ASTER', execmodul=None, @@ -397,7 +397,6 @@ class vect_elem_temp_r(vect_elem):pass DEBUT=MACRO(nom="DEBUT",op=ops.build_debut ,docu="U4.11.01-g",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"), @@ -506,6 +505,10 @@ TESTS_VALID=OPER(nom="TESTS_VALID",op=19,sd_prod=cara_elem, OrdList=SIMP(statut='o',typ='I',max='**',validators=OrdList("croissant")), OrdList2=SIMP(statut='o',typ='I',into=(1,2,3,4,5,6),max='**',validators=OrdList("croissant")), TypeVal=SIMP(statut='o',typ='I',validators=TypeVal(1)), + Compul=SIMP(statut='o',typ='I',max=5,validators=Compulsory((1,2))), + CompulInto=SIMP(statut='o',typ='I',max=5,into=(1,2,3,4,5),validators=Compulsory((1,2))), + Norep=SIMP(statut='o',typ='I',max=5,validators=NoRepeat()), + NorepInto=SIMP(statut='o',typ='I',max=5,into=(1,2,3,4,5),validators=NoRepeat()), ) ; PLS_BASE_NOREPEAT=OPER(nom="PLS_BASE_NOREPEAT",op=19,sd_prod=cara_pout, diff --git a/Aster/Cata/pre74/FORM.py b/Aster/Cata/pre74/FORM.py index 3506757c..9d4b0b73 100644 --- a/Aster/Cata/pre74/FORM.py +++ b/Aster/Cata/pre74/FORM.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG @@ -131,8 +132,8 @@ class FORM_ETAPE(MACRO_ETAPE): """ if not corps : corps = self.corps - if not arguments : - arguments = self.arguments + 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 @@ -258,11 +259,11 @@ class FORM_ETAPE(MACRO_ETAPE): 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 + 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() @@ -272,8 +273,8 @@ class FORM_ETAPE(MACRO_ETAPE): - 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 + Les objets FORM_ETAPE devraient vérifier que le concept remplacé n'est pas + utilisé dans le corps de la fonction """ self.init_modif() diff --git a/Aster/Cata/pre74/compoformule.py b/Aster/Cata/pre74/compoformule.py index d685b9d5..7d6b778a 100644 --- a/Aster/Cata/pre74/compoformule.py +++ b/Aster/Cata/pre74/compoformule.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG @@ -145,7 +146,7 @@ valeurs seront effectivement prises en compte.""" """ Lance la vérification du corps de formule présent dans entry_exp """ - new_nom = self.entry_nom.get() + 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() @@ -215,7 +216,7 @@ class FORMULETreeItem(compoformule.FORMULETreeItem): """ Lance la vérification de FORMULE passée en argument """ - return self.object.verif_formule(formule=formule) + return self.object.verif_formule(formule=formule) import Accas treeitem =FORMULETreeItem diff --git a/Aster/Cata/pre74/ongletpanel.py b/Aster/Cata/pre74/ongletpanel.py index 64a68c22..7b373641 100644 --- a/Aster/Cata/pre74/ongletpanel.py +++ b/Aster/Cata/pre74/ongletpanel.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG diff --git a/Aster/INSTALL b/Aster/INSTALL index f3452509..493c4676 100644 --- a/Aster/INSTALL +++ b/Aster/INSTALL @@ -4,7 +4,7 @@ Pour installer EFICAS a partir de la distribution : .tgz faire : - tar xzvf .tgz + tar xzvf .tgz ce qui a pour effet de créer un répertoire de nom . @@ -23,7 +23,7 @@ les fichiers et catalogues compil 2- Utilisation d'Eficas Pour utiliser Eficas, aller dans le répertoire Aster et faire : - python eficas_aster.py + python eficas_aster.py diff --git a/Aster/NEWS b/Aster/NEWS index a26545ff..1c80a9f9 100644 --- a/Aster/NEWS +++ b/Aster/NEWS @@ -1,6 +1,17 @@ +Version 1.10 (6/2006): + Mise en synchronisation avec la version 8.3 de Code_Aster de juin 2006. + +Version 1.9 (12/2005): + Mise en synchronisation avec la version 8.2 de Code_Aster de decembre 2005. + +Version 1.8 (6/2005): + Mise en synchronisation avec la version 8.1 de Code_Aster de mai 2005. + Les includes et poursuites peuvent etre édités. Introduction de la notation + scientifique pour les flottants. + Version 1.7 : (12/2004) - Mise en synchronisation avec la version STA7 de Code_Aster (7.4) et avec les nouvelles formules - (plus proches de python). + Mise en synchronisation avec la version STA7 de Code_Aster (7.4). + Les formules changent et deviennent des formules au sens python. Disparition des PARAMETRE-EVAL Les touches raccourcis (CtrlC par exple) sont activées et paramétrables dans prefs.py. diff --git a/Aster/Tests/Recette/az.comm b/Aster/Tests/Recette/az.comm index 4241dc5b..b38eaaa9 100644 --- a/Aster/Tests/Recette/az.comm +++ b/Aster/Tests/Recette/az.comm @@ -1,7 +1,7 @@ DEBUT(); -#Pas trouve shellpanel +#Pas trouve shellpanel MAIL=LIRE_MAILLAGE(); diff --git a/Aster/Tests/Recette/efica01a.11 b/Aster/Tests/Recette/efica01a.11 index cda7b74f..c140f8b1 100755 --- a/Aster/Tests/Recette/efica01a.11 +++ b/Aster/Tests/Recette/efica01a.11 @@ -1,7 +1,7 @@ DEPL2 = FORMULE(NOM_PARA='INST',VALE='sin(OMEGAA*INST)/(OMEGAA**xx)') DEPLACE2=CALC_FONC_INTERP( FONCTION=DEPL2, LIST_PARA=L_INST, - NOM_PARA='INST', + NOM_PARA='INST', PROL_DROITE='LINEAIRE', PROL_GAUCHE='LINEAIRE', NOM_RESU='DEPL' ) diff --git a/Aster/alphasdist.py b/Aster/alphasdist.py index b43c62a3..af05afb8 100644 --- a/Aster/alphasdist.py +++ b/Aster/alphasdist.py @@ -59,8 +59,8 @@ def main(): copyfiles('Cata/cataSTA76',os.path.join(path_distrib,'Aster','Cata','cataSTA76'),['*.py']) copyfiles('Cata/cataSTA76/Macro',os.path.join(path_distrib,'Aster','Cata','cataSTA76','Macro'),['*.py']) #version 8 - copyfiles('Cata/cataSTA81',os.path.join(path_distrib,'Aster','Cata','cataSTA81'),['*.py']) - copyfiles('Cata/cataSTA81/Macro',os.path.join(path_distrib,'Aster','Cata','cataSTA81,'Macro'),['*.py']) + copyfiles('Cata/cataSTA8',os.path.join(path_distrib,'Aster','Cata','cataSTA8'),['*.py']) + copyfiles('Cata/cataSTA8/Macro',os.path.join(path_distrib,'Aster','Cata','cataSTA8,'Macro'),['*.py']) copyfiles('../AIDE',os.path.join(path_distrib,'AIDE'),['*.py']) copyfiles('../AIDE/fichiers',os.path.join(path_distrib,'AIDE','fichiers'),['*']) @@ -68,6 +68,7 @@ def main(): 'editeur.ini', 'properties.py', 'eficas_aster.py', + 'style.py', ]) copyfiles('../Aster/Cata',os.path.join(path_distrib,'Aster'),['aster.py',]) copyfiles('../convert',os.path.join(path_distrib,'convert'),['*.py']) diff --git a/Aster/az.comm b/Aster/az.comm index 2c823977..4aba373f 100644 --- a/Aster/az.comm +++ b/Aster/az.comm @@ -5,22 +5,22 @@ P1 = 9.8; P2 = 8.8; -P3 = 7; +P9 = (7, 8, 9, 10); -P5 = P3*P1; +P5 = (P9 * P1); -_param_6 = P1-3; +_param_6 = (P1 - 3); -P4 = [2,3,4]; +P5 = 3; -#Pas trouve shellpanel +#Pas trouve shellpanel -MAILLA2=LIRE_MAILLAGE(UNITE=P4[1],); +MAILLA2=LIRE_MAILLAGE(UNITE=P9[1],); aaa = FORMULE(VALE='a+z', NOM_PARA=('a','z',),); -MAIL=LIRE_MAILLAGE(UNITE=P3,); +MAIL=LIRE_MAILLAGE(UNITE=P9,); # 'LIRE_MAILLAGE', 'UNITE' --> uniquebasepanel az = FORMULE(VALE='aaaaa', @@ -59,10 +59,14 @@ CARA=AFFE_CARA_ELEM(MODELE=MOD, # 'AFFE_MODELE', 'AFFE', 'b_mecanique'--> plusieursintopanel F1=DEFI_FONCTION(NOM_PARA='DX', - VALE=(5.0,3.0,P4[1],P3,),); + VALE=(5.0,3.0, + P9,), + ),); F3=DEFI_FONCTION(NOM_PARA='DRX', - VALE_C=(5.0,7.0,9.0,9.0,8.0,7.0,),); + VALE_C=(5.0,7.0,9.0, + 9.0,8.0,7.0, + ),); # 'DEFI_FONCTION', 'VALE' --> fonctionpanel MATER2=DEFI_MATERIAU(ELAS=_F(E=100000000000.0, diff --git a/Aster/editeur.ini b/Aster/editeur.ini index 239455dc..09c41684 100644 --- a/Aster/editeur.ini +++ b/Aster/editeur.ini @@ -23,12 +23,11 @@ import os import prefs rep_cata = os.path.join(prefs.REPINI,'Cata') -rep_homard = os.path.join(prefs.REPINI,'../Homard') rep_Pmw = os.path.join(prefs.REPINI,'../Pmw') # Accès à la documentation Aster path_doc = os.path.join(rep_cata,'..','Doc') -exec_acrobat = "/usr/bin/acroread" +exec_acrobat = "acroread" # Utilisateur/Développeur isdeveloppeur = "NON" path_cata_dev = "/tmp/cata" @@ -38,17 +37,12 @@ rep_travail = "/tmp" initialdir=os.curdir # Choix des catalogues -rep_mat="//home/noyret/Install_Eficas/materiau" +rep_mat=os.path.join(rep_cata,'..','materiau') catalogues = ( - #('ASTER','v5',os.path.join(rep_cata,'cataSTA5'),'asterv5'), - ('ASTER','v6',os.path.join(rep_cata,'cataSTA6'),'python6'), - #('ASTER','v73',os.path.join(rep_cata,'cataSTA73'),'python','defaut'), - #('ASTER','v74',os.path.join(rep_cata,'cataSTA74'),'python'), - ('ASTER','v7.6',os.path.join(rep_cata,'cataSTA76'),'python'), - #('ASTER','v8',os.path.join(rep_cata,'cataSTA8'),'python','defaut'), - ('ASTER','v8.2',os.path.join(rep_cata,'cataSTA81'),'python','defaut'), - #('ASTER','v75',os.path.join(rep_cata,'cataSTA75'),'python','defaut'), - ('HOMARD','v1',os.path.join(rep_homard,'homard_cata_V73.py'),'homard'), +# ('ASTER','v5.9',os.path.join(rep_cata,'cataSTA5'),'asterv5'), +# ('ASTER','v6.8',os.path.join(rep_cata,'cataSTA6'),'python6'), +# ('ASTER','v7.7',os.path.join(rep_cata,'cataSTA7'),'python'), + ('ASTER','v8.3',os.path.join(rep_cata,'cataSTA8'),'python','defaut'), ) diff --git a/Aster/editeur.ini.pn b/Aster/editeur.ini.pn new file mode 100644 index 00000000..ea7a0f7f --- /dev/null +++ b/Aster/editeur.ini.pn @@ -0,0 +1,54 @@ +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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') +rep_homard = os.path.join(prefs.REPINI,'../Homard') +rep_Pmw = os.path.join(prefs.REPINI,'../Pmw') + +# 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="//home/noyret/Install_Eficas/materiau" + +catalogues = ( + #('ASTER','v5',os.path.join(rep_cata,'cataSTA5'),'asterv5'), + #('ASTER','v6',os.path.join(rep_cata,'cataSTA6'),'python6'), + #('ASTER','v73',os.path.join(rep_cata,'cataSTA73'),'python','defaut'), + #('ASTER','v74',os.path.join(rep_cata,'cataSTA74'),'python'), + ('ASTER','v7.6',os.path.join(rep_cata,'cataSTA76'),'python'), + #('ASTER','v8',os.path.join(rep_cata,'cataSTA8'),'python','defaut'), + ('ASTER','v8.3',os.path.join(rep_cata,'cataSTA8'),'python','defaut'), + #('ASTER','v75',os.path.join(rep_cata,'cataSTA75'),'python','defaut'), + ('HOMARD','v1',os.path.join(rep_homard,'homard_cata_V73.py'),'homard'), + ) + diff --git a/Aster/editeur.ini.win b/Aster/editeur.ini.win new file mode 100644 index 00000000..ac88a1ef --- /dev/null +++ b/Aster/editeur.ini.win @@ -0,0 +1,49 @@ +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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') +rep_Pmw = os.path.join(prefs.REPINI,'../Pmw') + +# Accès à la documentation Aster +path_doc = os.path.join(rep_cata,'..','Doc') +exec_acrobat = os.environ['ASTER']+'/OUTILS/acroread.bat' + +# Utilisateur/Développeur +isdeveloppeur = "NON" +path_cata_dev = os.environ['TEMP'] +# Répertoire temporaire +rep_travail = os.environ['TEMP'] +# Répertoire initial +initialdir=os.curdir + +# Choix des catalogues +rep_mat=os.path.join(rep_cata,'..','materiau') + +catalogues = ( +# ('ASTER','v5.9',os.path.join(rep_cata,'cataSTA5'),'asterv5'), +# ('ASTER','v6.8',os.path.join(rep_cata,'cataSTA6'),'python6'), +# ('ASTER','v7.7',os.path.join(rep_cata,'cataSTA7'),'python'), + ('ASTER','v8.3',os.path.join(rep_cata,'cataSTA8'),'python','defaut'), + ) + diff --git a/Aster/lance_test.sh b/Aster/lance_test.sh index 2359a5e7..5eb25ff9 100755 --- a/Aster/lance_test.sh +++ b/Aster/lance_test.sh @@ -9,35 +9,35 @@ rm -rf ./Batch/${version}/nt_${passe} for file in `cat ./Batch/${version}/aTester` do #echo $file - grep "VISU_EFICAS='NON'" $file > /dev/null 2>/dev/null - rc=$? - if [ "$rc" != "0" ] - then - grep INCLUDE $file | grep -v "#" | grep -v INCLUDE_MATERIAU > /dev/null 2>/dev/null - rc=$? - if [ "$rc" != "0" ] - then - cr=`./test_eficas.py $file` - if [ "${cr}" == "" ] - then - echo $file >> ./Batch/${version}/bad_${passe} - else - nomfeuille=`basename $file` - boncr="DEBUT CR validation : "${nomfeuille}" FIN CR validation :"${nomfeuille} - cr=`echo $cr` - if [ "${cr}" != "$boncr" ] - then - echo $file >> ./Batch/${version}/bad_${passe} - echo $cr >>./Batch/${version}/bad_${passe} - echo $file >>./Batch/${version}/badfile_${passe} - else - echo $file >> ./Batch/${version}/ok_${passe} - fi - fi - else - echo $file >> ./Batch/${version}/nt_${passe} - fi - else - echo $file >> ./Batch/${version}/nt_${passe} - fi + grep "VISU_EFICAS='NON'" $file > /dev/null 2>/dev/null + rc=$? + if [ "$rc" != "0" ] + then + grep INCLUDE $file | grep -v "#" | grep -v INCLUDE_MATERIAU > /dev/null 2>/dev/null + rc=$? + if [ "$rc" != "0" ] + then + cr=`./test_eficas.py $file` + if [ "${cr}" == "" ] + then + echo $file >> ./Batch/${version}/bad_${passe} + else + nomfeuille=`basename $file` + boncr="DEBUT CR validation : "${nomfeuille}" FIN CR validation :"${nomfeuille} + cr=`echo $cr` + if [ "${cr}" != "$boncr" ] + then + echo $file >> ./Batch/${version}/bad_${passe} + echo $cr >>./Batch/${version}/bad_${passe} + echo $file >>./Batch/${version}/badfile_${passe} + else + echo $file >> ./Batch/${version}/ok_${passe} + fi + fi + else + echo $file >> ./Batch/${version}/nt_${passe} + fi + else + echo $file >> ./Batch/${version}/nt_${passe} + fi done diff --git a/Aster/prefs.py b/Aster/prefs.py index ffbccd76..28a5c8ed 100644 --- a/Aster/prefs.py +++ b/Aster/prefs.py @@ -68,7 +68,7 @@ menu_defs={ 'bureau': [ ('Enregistrer','saveJDC','','Ctrl+S'), ('Enregistrer sous','saveasJDC','','Ctrl+E'), None, - ('Fermer','closeJDC','','Ctrl+F'), + ('Fermer','closeJDC','','Ctrl+W'), ('Quitter','exitEFICAS','','Ctrl+Q'), ] ), @@ -91,7 +91,10 @@ menu_defs={ 'bureau': [ ] } -userprefs=os.path.expanduser("~/Eficas_install/prefs.py") +if os.name == 'nt': + userprefs = os.sep.join( [ os.environ['HOMEDRIVE'], os.environ['HOMEPATH'], 'Eficas_install', 'prefs.py' ]) +else : + userprefs=os.path.expanduser("~/Eficas_install/prefs.py") if os.path.isfile(userprefs): try: execfile(userprefs) diff --git a/Aster/prefs.py.win b/Aster/prefs.py.win new file mode 100644 index 00000000..1ffe8892 --- /dev/null +++ b/Aster/prefs.py.win @@ -0,0 +1,101 @@ +# -*- coding: utf-8 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# +# +# ====================================================================== + +import os,sys + +# 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') + +# la variable code donne le nom du code a selectionner +code="ASTER" + +# 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' + +# Codage des strings qui accepte les accents (en remplacement de 'ascii') +encoding='iso-8859-1' + +labels= ('Fichier','Edition','Jeu de commandes', +# 'Catalogue','Browsers', + 'Options', + 'Aide', + ) + +appli_composants=['readercata','bureau', +# 'browser', + 'options', + ] + +menu_defs={ 'bureau': [ + ('Fichier',[ + ('Nouveau','newJDC','','Ctrl+N'), + ('Nouvel INCLUDE','newJDC_include'), + ('Ouvrir','openJDC','','Ctrl+O'), + ('Enregistrer','saveJDC','','Ctrl+S'), + ('Enregistrer sous','saveasJDC','','Ctrl+E'), + None, + ('Fermer','closeJDC','','Ctrl+W'), + ('Quitter','exitEFICAS','','Ctrl+Q'), + ] + ), + ('Edition',[ + ('Copier','copy','','Ctrl+C'), + ('Couper','cut','','Ctrl+X'), + ('Coller','paste','','Ctrl+V'), + ] + ), + ('Jeu de commandes',[ + ('Rapport de validation','visuCRJDC','','Ctrl+R'), + ('Fichier source','visu_txt_brut_JDC','','Ctrl+B'), + #('Paramètres Eficas','affichage_fichier_ini'), + ] + ), + ('Aide',[ + ('Aide EFICAS','aideEFICAS','','Ctrl+A'), + ] + ), + ] + } + +userprefs=os.path.expanduser("~/Eficas_install/prefs.py") +if os.path.isfile(userprefs): + try: + execfile(userprefs) + except: + pass + +sys.path[:0]=[INSTALLDIR] diff --git a/Aster/properties.py b/Aster/properties.py index 279c503e..c174e28e 100644 --- a/Aster/properties.py +++ b/Aster/properties.py @@ -20,5 +20,6 @@ # IDENTIFICATION DU GESTIONNAIRE DE COMMANDE ACCAS A PARTIR # DE LA VERSION DU CODE_ASTER ASSOCIE #---------------------------------------------------------------------- -version = "8.1.21" -date = "26/10/2005" +version = "8.2.24" +date = "O1/06/2006" +exploit = False diff --git a/Aster/sdist.py b/Aster/sdist.py index be9d8f55..c4786355 100644 --- a/Aster/sdist.py +++ b/Aster/sdist.py @@ -50,6 +50,7 @@ def main(): copyfiles('../Aster',os.path.join(path_distrib,'Aster'),['prefs.py', 'editeur.ini', 'eficas_aster.py', + 'style.py' ]) copyfiles('Cata/Utilitai',os.path.join(path_distrib,'Aster','Cata','Utilitai'),['*.py']) copyfiles('Cata/pre74',os.path.join(path_distrib,'Aster','Cata','pre74'),['*.py']) @@ -58,9 +59,9 @@ def main(): copyfiles('Cata/cataSTA6/Macro',os.path.join(path_distrib,'Aster','Cata','cataSTA6','Macro'),['*.py']) #copyfiles('Cata/cataSTA73',os.path.join(path_distrib,'Aster','Cata','cataSTA73'),['*.py']) #copyfiles('Cata/cataSTA73/Macro',os.path.join(path_distrib,'Aster','Cata','cataSTA73','Macro'),['*.py']) - copyfiles('Cata/cataSTA76',os.path.join(path_distrib,'Aster','Cata','cataSTA76'),['*.py']) - copyfiles('Cata/cataSTA76/Macro',os.path.join(path_distrib,'Aster','Cata','cataSTA76','Macro'),['*.py']) - copyfiles('Cata/cataSTA81',os.path.join(path_distrib,'Aster','Cata','cataSTA81'),['*.py']) + copyfiles('Cata/cataSTA7',os.path.join(path_distrib,'Aster','Cata','cataSTA7'),['*.py']) + copyfiles('Cata/cataSTA7/Macro',os.path.join(path_distrib,'Aster','Cata','cataSTA7','Macro'),['*.py']) + copyfiles('Cata/cataSTA8',os.path.join(path_distrib,'Aster','Cata','cataSTA8'),['*.py']) copyfiles('Cata',os.path.join(path_distrib,'Aster','Cata'),['*c_clefs_docu']) copyfiles('../Aster/Cata',os.path.join(path_distrib,'Aster'),['aster.py',]) @@ -74,8 +75,8 @@ def main(): copyfiles(os.path.join(path_Noyau,'Validation'),os.path.join(path_distrib,'Validation'),['*.py']) copyfiles(os.path.join(path_Noyau,'Accas'),os.path.join(path_distrib,'Aster'),['properties.py']) copyfiles(os.path.join(path_Noyau,'Cata'),os.path.join(path_distrib,'Aster','Cata'),['*.py',]) - copyfiles(os.path.join(path_Noyau,'Macro'),os.path.join(path_distrib,'Aster','Cata','cataSTA81','Macro'),['*.py']) - os.system("mv "+path_distrib+"/Aster/Cata/cata_STA8.py "+path_distrib+"/Aster/Cata/cataSTA81/cata.py") + copyfiles(os.path.join(path_Noyau,'Macro'),os.path.join(path_distrib,'Aster','Cata','cataSTA8','Macro'),['*.py']) + os.system("mv "+path_distrib+"/Aster/Cata/cata_STA8.py "+path_distrib+"/Aster/Cata/cataSTA8/cata.py") copyfiles('../Tools',os.path.join(path_distrib,'Tools'),['*.py']) copyfiles('../Tools/foztools',os.path.join(path_distrib,'Tools','foztools'),['*.py']) @@ -91,6 +92,9 @@ def main(): except: print "Repertoire de download inconnu : ",dir_download + shutil.copy('prefs.py.win',os.path.join(path_distrib,'Aster','prefs.py')) + shutil.copy('editeur.ini.win',os.path.join(path_distrib,'Aster','editeur.ini')) + try: shutil.copytree(path_TextTools,os.path.join(path_distrib,'Tools','TextTools')) except: diff --git a/Aster/style.py b/Aster/style.py index e69de29b..0d387727 100644 --- a/Aster/style.py +++ b/Aster/style.py @@ -0,0 +1,63 @@ +# -*- coding: utf-8 -*- +""" +Pour modifier le style d'EFICAS il faut ajouter un fichier style.py qui contiendra les +informations sur le style voulu dans son repertoire Eficas_install. + +La methode la plus simple consiste à modifier directement les attributs de l'objet style dans le +fichier style.py d'Eficas_install. Exemple:: + + style.background='yellow' + +pour modifier la couleur du background. + +Il existe une autre méthode qui peut être utilisée quand on veut modifier plusieurs propriétés à la fois. + +Le fichier style.py doit définir une nouvelle classe qui dérive de la classe de base STYLE avec des attributs +de classe qui définiront le nouveau style (par exemple, si on veut modifier le background):: + + class STYLE(STYLE): + background='yellow' + +Il faut ensuite instancier cette classe, dans ce meme fichier, en donnant le nom style à l'objet cree:: + + style=STYLE() + +Tous les attributs de classe possibles sont visibles dans le module Editeur/basestyle.py:: + + background='gray90' + foreground='black' + entry_background='white' + list_background='white' + list_select_background='#00008b' + list_select_foreground='grey' + tooltip_background="yellow" + + standard = ("Helvetica",12) + standard_italique = ("Helvetica",12,'italic') + standard_gras = ("Helvetica",12,'bold') + standard_gras_souligne = ("Helvetica",12,'bold','underline') + + canvas = ('Helvetica',10) + canvas_italique = ('Helvetica',10,'italic') + canvas_gras = ("Helvetica",10,'bold') + canvas_gras_italique = ("Helvetica",12,'bold','italic') + + standard12 = ("Helvetica",14) + standard12_gras = ("Helvetica",14,'bold') + standard12_gras_italique = ( "Helvetica",14,'bold','italic') + + +Le fichier style.py contenu dans le répertoire Aster permet de spécifier des propriétés globales pour une installation. +Les modifications de style contenues dans ce fichier et dans le fichier style.py d'Eficas_install +sont prises en compte dans cet ordre. +""" + + +style.background='gray90' +style.foreground='black' +style.standard = ("Helvetica",10) +style.standard_italique = ("Helvetica",10,'italic') +style.standard_gras = ("Helvetica",10,'bold') +style.canvas_italique = ('Helvetica',10,'italic') +style.canvas_gras = ("Helvetica",10,'bold') +style.statusfont = ("Helvetica",14) diff --git a/Aster/totalmod.comm b/Aster/totalmod.comm index 31b448de..23c16734 100755 --- a/Aster/totalmod.comm +++ b/Aster/totalmod.comm @@ -1468,7 +1468,7 @@ e_gre = DEFI_FONCTION ( NOM_PARA : 'TEMP' VALE : ( 0. 1. 5. 2. ) ); - + e_grm = DEFI_FONCTION ( NOM_PARA : 'TEMP' PROL_DROIT : 'CONSTANT' PROL_GAUCHE : 'CONSTANT' @@ -1496,14 +1496,14 @@ al_gre = DEFI_FONCTION ( NOM_PARA : 'TEMP' 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' @@ -1540,7 +1540,7 @@ e_cr = DEFI_FONCTION ( NOM_PARA : 'TEMP' 5. 2. ) ); - + nu_cr = DEFI_FONCTION ( NOM_PARA : 'TEMP' PROL_DROIT : 'CONSTANT' PROL_GAUCHE : 'CONSTANT' @@ -1566,7 +1566,7 @@ mt_gre1 = DEFI_MATERIAU ( ELAS_FO : ( E : e_gre NU : nu_gre ALPHA : al_gre RHO : 7800. ) - GRAN_IRRA:( FLUX_L :fluxax1 + GRAN_IRRA:( FLUX_L :fluxax1 FLUX_TN :fluxrd1 FONC_MULT:flux_f1 A : 0. @@ -1575,7 +1575,7 @@ mt_gre1 = DEFI_MATERIAU ( ELAS_FO : ( E : e_gre UN_SUR_K : 0. UN_SUR_M : 0. QSR_K : 1. ) - ); + ); % Grilles de melange @@ -1622,12 +1622,12 @@ mt_tu1 = DEFI_MATERIAU ( ELAS_FO : ( E : e_tu FONC_MULT: flux_f1 A : 0. S : 1.) - LEMAITRE : ( N : 0. + LEMAITRE : ( N : 0. UN_SUR_K : 0. UN_SUR_M : 0. - QSR_K : 2.) + QSR_K : 2.) - ); + ); % % AFFECTATION DES MATERIAUX A CHAUD - CYCLE diff --git a/Editeur/Objecttreeitem.py b/Editeur/Objecttreeitem.py index 6e7670f3..21998b57 100644 --- a/Editeur/Objecttreeitem.py +++ b/Editeur/Objecttreeitem.py @@ -26,7 +26,7 @@ from repr import Repr from copy import copy,deepcopy # import du chargeur de composants -from comploader import gettreeitem,make_objecttreeitem +from comploader import make_objecttreeitem import treewidget from Ihm import CONNECTOR @@ -144,8 +144,8 @@ class ObjectTreeItem(TreeItem,Delegate): # Dans le cas d'une MCListe de longueur 1, l'objet associé est la MCListe # et l'objet délégué est le MCFACT (object = _object.data[0]) Delegate.__init__(self,object) - # On cache l'objet initial (pour destruction eventuelle - # ultérieure) + # On cache l'objet initial (pour destruction eventuelle + # ultérieure) self._object = object self.setfunction = setfunction self.expandable = 1 @@ -247,6 +247,14 @@ class ObjectTreeItem(TreeItem,Delegate): 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é + """ + return self.object.get_index_child(nom_fils) + + def get_index_child_old(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 @@ -357,7 +365,10 @@ class ObjectTreeItem(TreeItem,Delegate): def get_fr(self): """ Retourne le fr de l'objet pointé par self """ - return self.object.get_fr() + try: + return self.object.get_fr() + except: + return "" def get_docu(self): """ Retourne la clé de doc de l'objet pointé par self """ @@ -418,8 +429,7 @@ class ObjectTreeItem(TreeItem,Delegate): 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) + return make_objecttreeitem(appli,labeltext,object,setfunction) #def __del__(self): # print "__del__",self diff --git a/Editeur/Patrons/elasticite.salome.comm b/Editeur/Patrons/elasticite.salome.comm index 66a43a47..454762be 100644 --- a/Editeur/Patrons/elasticite.salome.comm +++ b/Editeur/Patrons/elasticite.salome.comm @@ -1,7 +1,7 @@ DEBUT(); MA=DEFI_MATERIAU(ELAS=_F(E=210000000000, - NU=0.3,),); + NU=0.3,),); @@ -10,9 +10,9 @@ MAIL=LIRE_MAILLAGE(UNITE=21, INFO_MED=2,); MODE=AFFE_MODELE(MAILLAGE=MAIL, - AFFE=_F(TOUT='OUI', - PHENOMENE='MECANIQUE', - MODELISATION= '3D',),); + AFFE=_F(TOUT='OUI', + PHENOMENE='MECANIQUE', + MODELISATION= '3D',),); @@ -21,14 +21,14 @@ MATE=AFFE_MATERIAU(MAILLAGE=MAIL, MATER=MA,),); CHAR=AFFE_CHAR_MECA(MODELE=MODE, - FACE_IMPO=( - _F(GROUP_MA='ABB1A1', - DX=0, - DY=0, - DZ=0,),), - PRES_REP=( - _F(GROUP_MA='CDD1C1', - PRES=10000,),),); + FACE_IMPO=( + _F(GROUP_MA='ABB1A1', + DX=0, + DY=0, + DZ=0,),), + PRES_REP=( + _F(GROUP_MA='CDD1C1', + PRES=10000,),),); RESU=MECA_STATIQUE(MODELE=MODE, CHAM_MATER=MATE, diff --git a/Editeur/TroisDPal.py b/Editeur/TroisDPal.py new file mode 100644 index 00000000..c0cc0d07 --- /dev/null +++ b/Editeur/TroisDPal.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# +# +# ====================================================================== +""" + Ce module contient la classe 3Dpilote qui va creer les ordres + de pilotage de l idl PAL pour un element de structure +""" +import generator + +class TroisDPilote: + + def __init__(self,node,appli,parent): + self.node=node + self.appli=appli + self.parent=parent + + def envoievisu(self): + """ + """ + format="vers3DSalome" + if generator.plugins.has_key(format): + # Le generateur existe on l'utilise + g=generator.plugins[format]() + g.init_jdc(self.node.get_jdc()) + texte=g.gener(self.node) + else: + print "Le generateur n a pas ete trouvé" + print "Erreur ! Erreur!" + return "" + self.appli.envoievisu(texte) + diff --git a/Editeur/analyse_catalogue.py b/Editeur/analyse_catalogue.py index e11b8449..1ead1a60 100644 --- a/Editeur/analyse_catalogue.py +++ b/Editeur/analyse_catalogue.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION +# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -14,7 +14,7 @@ # # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # # # ====================================================================== @@ -24,7 +24,7 @@ import re,string,cPickle,os from Noyau.N_CR import CR # -__Id__="$Id: analyse_catalogue.py,v 1.3 2002/09/10 15:59:37 eficas Exp $" +__Id__="$Id: analyse_catalogue.py,v 1.4.8.1 2006/03/10 14:38:20 eficas Exp $" __version__="$Name: $" # l_noms_commandes = ['OPER','PROC','MACRO','FORM'] @@ -33,275 +33,275 @@ 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) + """ 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) + 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],'' + 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__ - + 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 + 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 __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' + 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 - + 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 + 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 + 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 + 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 + 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() - + """ + 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')") + import profile + profile.run("analyse_catalogue(None,'U:\\EFICAS\\Cata\\cata_saturne.py')") @@ -313,5 +313,5 @@ if __name__ == "__main__" : - - + + diff --git a/Editeur/appli.py b/Editeur/appli.py index 83309694..c6e348f2 100644 --- a/Editeur/appli.py +++ b/Editeur/appli.py @@ -26,6 +26,7 @@ """ # Modules Python import os +import string import sys import types import Pmw @@ -40,13 +41,17 @@ from styles import style import fontes import tooltip import properties +import convert,generator +import comploader +from utils import extension_fichier,stripPath + from widgets import Fenetre from Misc import MakeNomComplet import session import listeFichiers import listePatrons -VERSION="EFICAS v1.9" +VERSION="EFICAS v1.10" class APPLI: def __init__ (self,master,code=prefs.code,fichier=None,test=0) : @@ -78,7 +83,7 @@ class APPLI: # Creation de la menubar, toolbar, messagebar self.cree_composants_graphiques() # Creation des autres composants graphiques dont le bureau (parametrable par prefs.py) - self.load_appli_composants() + self.load_appli_composants() self.listeFichiers=listeFichiers.listeFichiers(self) self.listePatrons=listePatrons.listePatrons(self) self.dir=None @@ -114,6 +119,7 @@ class APPLI: splash._splash.configure(text = "Chargement des paramètres utilisateur") import configuration self.CONFIGURATION = configuration.make_config(self,prefs.REPINI) + self.CONFIGStyle = configuration.make_config_style(self,prefs.REPINI) def cree_composants_graphiques(self): """ @@ -134,7 +140,7 @@ class APPLI: if (self.test == 0): splash._splash.configure(text = "Chargement de la statusbar") import statusbar - self.statusbar=statusbar.STATUSBAR(self.top) + self.statusbar=statusbar.STATUSBAR(self.top,styles.style.statusfont) def load_appli_composants(self): """ @@ -185,7 +191,7 @@ class APPLI: root.option_add('*background', style.background) root.option_add('*foreground', style.foreground) root.option_add('*EntryField.Entry.background', style.entry_background) - root.option_add('*Entry*background', style.entry_background) + root.option_add('*Entry*background', style.entry_background) root.option_add('*Listbox*background', style.list_background) root.option_add('*Listbox*selectBackground', style.list_select_background) root.option_add('*Listbox*selectForeground', style.list_select_foreground) @@ -242,22 +248,22 @@ class APPLI: radio=None for item in itemlist: number_item=number_item + 1 - raccourci_label="" + raccourci_label="" if not item : #menu.add_separator() - pass + pass else: if len(item)==3: raccourci=item[2] - raccourci_label=" "+raccourci + raccourci_label=" "+raccourci newitem=(item[0],item[1]) else : - if len(item)==4: + if len(item)==4: raccourci=item[2] - raccourci_label=" "+item[3] + raccourci_label=" "+item[3] newitem=(item[0],item[1]) - else : - raccourci="" + else : + raccourci="" newitem=item item=newitem label,method=item @@ -294,3 +300,134 @@ class APPLI: f.wait() +class valeur: + def __init__(self,v=None): + self.v=v + def set(self,v): + self.v=v + def get(self): + return self.v + +class STANDALONE(APPLI): + def __init__ (self,code=prefs.code,fichier=None,version='v8.2') : + self.code=code + self.top=None + self.format_fichier=valeur() + + self.dict_reels={} + self.liste_simp_reel=[] + # L'attribut test doit valoir 1 si on ne veut pas creer les fenetres + self.test=1 + + # Lecture des parametres de configuration (fichier global editeur.ini + # et utilisateur eficas.ini) + self.lecture_parametres() + + self.message='' + # Avant la creation du bureau qui lit le catalogue + self.version_code=version + import readercata + self.readercata=readercata.READERCATA(self,None) + + self.dir=None + + def affiche_infos(self,message): + return + + def get_text_JDC(self,JDC,format): + if generator.plugins.has_key(format): + # Le generateur existe on l'utilise + g=generator.plugins[format]() + jdc_formate=g.gener(JDC,format='beautifie') + return jdc_formate + else: + # Il n'existe pas c'est une erreur + return + + def newJDC(self): + CONTEXT.unset_current_step() + J=self.readercata.cata[0].JdC(procedure="", + appli=self, + cata=self.readercata.cata, + cata_ord_dico=self.readercata.cata_ordonne_dico, + rep_mat=self.CONFIGURATION.rep_mat, + ) + J.analyse() + return J + + def openJDC(self,file): + self.fileName = file + e=extension_fichier(file) + self.JDCName=stripPath(file) + self.initialdir = os.path.dirname(os.path.abspath(file)) + 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('exec',self) + if not p.cr.estvide(): + raise ValueError(str(p.cr)) + + # 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.readercata.cata[0].JdC(procedure=text, + appli=self, + cata=self.readercata.cata, + cata_ord_dico=self.readercata.cata_ordonne_dico, + nom=self.JDCName, + rep_mat=self.CONFIGURATION.rep_mat, + ) + J.analyse() + txt= J.cr.get_mess_exception() + if txt:raise ValueError(txt) + return J + + def openTXT(self,text): + self.JDCName="TEXT" + CONTEXT.unset_current_step() + J=self.readercata.cata[0].JdC(procedure=text, + appli=self, + cata=self.readercata.cata, + cata_ord_dico=self.readercata.cata_ordonne_dico, + nom=self.JDCName, + rep_mat=self.CONFIGURATION.rep_mat, + ) + J.analyse() + txt= J.cr.get_mess_exception() + if txt:raise ValueError(txt) + return J + + def create_item(self,obj): + return comploader.make_objecttreeitem(self,getattr(obj,"nom","item"),obj) + + def get_file(self,unite=None,fic_origine = ''): + """ + Retourne le nom du fichier correspondant a l unite logique unite (entier) + ou d'un fichier poursuite + """ + f,ext=os.path.splitext(fic_origine) + if unite : + #include + finclude=f+".%d" % unite + else: + #poursuite + n=ext[-1] + if n == '0': + ext=".comm" + else: + ext=".com%d" % (string.atoi(n)-1) + if ext == '.com0' and not os.path.isfile(f+".com0"): + ext=".comm" + finclude=f+ext + ff=open(finclude) + text=ff.read() + ff.close() + return finclude,text + + def affiche_alerte(self,titre,message): + print titre+ "\n\n" + message diff --git a/Editeur/basestyle.py b/Editeur/basestyle.py index f260dd47..e4287b75 100644 --- a/Editeur/basestyle.py +++ b/Editeur/basestyle.py @@ -22,5 +22,6 @@ class STYLE: standard12_gras_italique = ( "Helvetica",14,'bold','italic') standardcourier10 = ("Courier",14) + statusfont = ("Helvetica",16) style=STYLE() diff --git a/Editeur/bureau.py b/Editeur/bureau.py index f81140d8..4d5dfedf 100644 --- a/Editeur/bureau.py +++ b/Editeur/bureau.py @@ -78,7 +78,7 @@ class BUREAU: 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'), - ('Fermer24',"closeJDC","Fermeture du fichier courant",'always'), + ('Fermer24',"closeJDC","Fermeture du fichier courant",'always'), ('Zoom24',"visuJDC","Visualisation du fichier de commandes",'always'), None, ('Copy24',"copy","Copie l'objet courant",'jdc'), @@ -144,7 +144,7 @@ class BUREAU: def newJDC_include(self,event=None): """ - Initialise un nouveau JDC vierge + Initialise un nouveau JDC include vierge """ import Extensions.jdc_include JdC_aux=Extensions.jdc_include.JdC_include @@ -168,10 +168,11 @@ class BUREAU: self.fileName=None self.ShowJDC(J,self.JDCName) self.appli.toolbar.active_boutons() + return J def newJDC(self,event=None): """ - Initialise un nouveau JDC include vierge + Initialise un nouveau JDC vierge """ self.appli.statusbar.reset_affichage_infos() @@ -185,6 +186,7 @@ class BUREAU: self.fileName=None self.ShowJDC(J,self.JDCName) self.appli.toolbar.active_boutons() + return J def ShowJDC(self,JDC,nom,label_onglet=None,JDCDISPLAY=JDCDISPLAY,enregistre="non"): """ @@ -349,8 +351,8 @@ class BUREAU: titre="compte-rendu d'erreurs, EFICAS ne sait pas convertir ce fichier", texte = str(p.cr)).wait() return - if enregistre == "oui" : - self.appli.listeFichiers.aOuvert(file) + if enregistre == "oui" : + self.appli.listeFichiers.aOuvert(file) else: # Il n'existe pas c'est une erreur self.appli.affiche_infos("Type de fichier non reconnu") @@ -383,12 +385,13 @@ class BUREAU: else: self.ShowJDC(J,self.JDCName,enregistre=enregistre) 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 + # 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(): - self.appli.top.update() - self.visuCR(mode='JDC') + self.appli.top.update() + self.visuCR(mode='JDC') + return J def deplieReplieNode(self): self.JDCDisplay_courant.tree.tree.deplieReplieNode() @@ -450,14 +453,14 @@ class BUREAU: self.jdc_fini = string.replace(jdc_formate,'\r\n','\n') if echo =='oui' or self.JDCDisplay_courant.fichier == None: - ok = self.asknomsauvegardeJDC() + ok = 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,self.appli.dir) : showinfo("Erreur","Problème à la sauvegarde du fichier :" + `self.JDCDisplay_courant.fichier`) #return 0 - ok = 0 + ok = 0 else : if self.appli.format_fichier.get() == 'homard': self.save_homard(self.JDCDisplay_courant.fichier,self.jdc_homard) @@ -468,16 +471,16 @@ class BUREAU: if ok and hasattr( self.appli, 'salome'): # eficas a été lancé à partir deSalome #1)ajout dans l'arbre d'étude du nom du jdc - ok, msg = self.appli.addJdcInSalome( self.JDCDisplay_courant.fichier ) + ok, msg = self.appli.addJdcInSalome( self.JDCDisplay_courant.fichier ) #2)CS_pbruno ?? - from panelsSalome import SALOME_UNIQUE_BASE_Panel - if len(SALOME_UNIQUE_BASE_Panel.dict_fichier_unite) > 0 : - print 'CS_pbruno if len(SALOMchier_unite) > 0 :???????' - self.appli.creeConfigTxt( self.appli.CONFIGURATION.initialdir, SALOME_UNIQUE_BASE_Panel.dict_fichier_unite ) + from panelsSalome import SALOME_UNIQUE_BASE_Panel + if len(SALOME_UNIQUE_BASE_Panel.dict_fichier_unite) > 0 : + print 'CS_pbruno if len(SALOMchier_unite) > 0 :???????' + self.appli.creeConfigTxt( self.appli.CONFIGURATION.initialdir, SALOME_UNIQUE_BASE_Panel.dict_fichier_unite ) - #3)création/mise à jours d'un maillage dans Salome - self.appli.createOrUpdateMesh() + #3)création/mise à jours d'un maillage dans Salome + self.appli.createOrUpdateMesh() return ok def asknomsauvegardeJDC(self): @@ -705,7 +708,7 @@ class BUREAU: self.appli.salome.rangeInStudy(file_homard,"_CONF") # --------------------------------------------------------------------------- -# Méthodes liées aux mots-clés inconnus +# Méthodes liées aux mots-clés inconnus # --------------------------------------------------------------------------- def mc_inconnus(self): diff --git a/Editeur/change_comm.py b/Editeur/change_comm.py index 6baf8d54..8b0a4bca 100755 --- a/Editeur/change_comm.py +++ b/Editeur/change_comm.py @@ -81,8 +81,8 @@ class DUP : p.readfile(fichier) text=p.convert('exec',self) if not p.cr.estvide(): - print ("Erreur à la conversion") - print str(p.cr) + print ("Erreur à la conversion") + print str(p.cr) return # On se met dans le repertoire ou se trouve le fichier de commandes @@ -110,26 +110,26 @@ class DUP : def modifieJDC(self,texte): if texte == None or texte == "" : return format="python" - lignes=string.split(texte,";") - textedecoup="" - for l in lignes : - textedecoup=textedecoup+l+'\n' + lignes=string.split(texte,";") + textedecoup="" + for l in lignes : + textedecoup=textedecoup+l+'\n' if convert.plugins.has_key(format): p=convert.plugins[format]() p.settext(textedecoup) text=p.convert('exec',self) - print text + print text if not p.cr.estvide(): - print ("Erreur à la conversion") - print str(p.cr) + print ("Erreur à la conversion") + print str(p.cr) return self.J2=self.cata[0].JdC(procedure=text,appli=self, cata=self.cata, - cata_ord_dico=self.readercata.cata_ordonne_dico, + cata_ord_dico=self.readercata.cata_ordonne_dico, nom = self.JDCName+"2", rep_mat=self.CONFIGURATION.rep_mat, ) - self.J2.definition.code = "MODIF" + self.J2.definition.code = "MODIF" self.J2.analyse() @@ -155,7 +155,7 @@ class DUP : self.jdc_fini = string.replace(jdc_formate,'\r\n','\n') if not save_in_file(fichierSortie,self.jdc_fini) : - self.affiche_infos("Problème à la sauvegarde du fichier") + self.affiche_infos("Problème à la sauvegarde du fichier") return 0 else : self.affiche_infos("sauvegarde effectuée") diff --git a/Editeur/comploader.py b/Editeur/comploader.py index 1b9ddaa9..7a86c915 100644 --- a/Editeur/comploader.py +++ b/Editeur/comploader.py @@ -58,41 +58,28 @@ def gettreeitem(object): Cette classe item dépend bien sûr de la nature de object, d'où l'interrogation du dictionnaire composants """ + # Si la definition de l'objet a un attribut itemeditor, il indique + # la classe a utiliser pour l'item + try: + return object.definition.itemeditor + except: + pass - - if type(object) == types.InstanceType: - # Si la definition de l'objet a un attribut itemeditor, il indique - # la classe a utiliser pour l'item - try: - return object.definition.itemeditor - except: - pass - - # On cherche ensuite dans les composants (plugins) - try: - itemtype= composants[object.__class__] - return itemtype - except: - pass - - try : - for e in composants.keys(): - if isinstance(object,e): - itemtype= composants[e] - return itemtype - except : - pass + # On cherche ensuite dans les composants (plugins) + try: + itemtype= composants[object.__class__] + return itemtype + except: + pass # Puis une eventuelle classe heritee (aleatoire car sans ordre) for e in composants.keys(): - if isinstance(object,e): - itemtype= composants[e] - return itemtype + if e and isinstance(object,e): + itemtype= composants[e] + return itemtype - # Apres poum ??? Les lignes suivantes sont elles utiles ? # Si on n'a rien trouve dans les composants on utilise l'objet par defaut - print itemtype - itemtype=ObjectTreeItem + itemtype=composants[None] return itemtype def make_objecttreeitem(appli,labeltext, object, setfunction=None): diff --git a/Editeur/compobase.py b/Editeur/compobase.py new file mode 100644 index 00000000..df539df0 --- /dev/null +++ b/Editeur/compobase.py @@ -0,0 +1,3 @@ +import Objecttreeitem +treeitem = Objecttreeitem.ObjectTreeItem +objet = None diff --git a/Editeur/compoerror.py b/Editeur/compoerror.py new file mode 100644 index 00000000..814782c8 --- /dev/null +++ b/Editeur/compoerror.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# +# +# ====================================================================== +# Modules Python +from Tkinter import Label,Button + +#Modules Eficas +from Noyau.N_OBJECT import ErrorObj +import Objecttreeitem +import panels + +class ERRORPanel(panels.Panel_Inactif): + def creer_texte(self): + texte = """Le noeud sélectionné correspond à un objet erroné """ + label = Label(self,text=texte,justify='center') + label.place(relx=0.5,rely=0.4,relwidth=0.8,anchor='center') + bouton = Button(self,text = "Supprimer", command=self.supprimer) + bouton.place(relx=0.5,rely=0.5,anchor='center') + +class ERRORTreeItem(Objecttreeitem.AtomicObjectTreeItem): + panel = ERRORPanel + def GetIconName(self): + return "ast-red-ball" + + +treeitem =ERRORTreeItem +objet = ErrorObj + diff --git a/Editeur/compoformule.py b/Editeur/compoformule.py index c1d01441..23bd3a50 100644 --- a/Editeur/compoformule.py +++ b/Editeur/compoformule.py @@ -170,10 +170,10 @@ valeurs seront effectivement prises en compte.""" args = self.node.item.get_args() if args: texte_args="" - for i in args : - if texte_args != "" : - texte_args = texte_args +"," - texte_args=texte_args + i + for i in args : + if texte_args != "" : + texte_args = texte_args +"," + texte_args=texte_args + i self.entry_arg.insert(END,texte_args) corps = self.node.item.get_corps() if corps : @@ -219,8 +219,8 @@ valeurs seront effectivement prises en compte.""" """ Lance la vérification du corps de formule présent dans entry_exp """ - new_nom = self.entry_nom.get() - new_typ="REEL" + new_nom = self.entry_nom.get() + new_typ="REEL" new_arg = self.entry_arg.get() new_exp = self.entry_exp.get() if new_exp == '': @@ -265,7 +265,7 @@ class FORMULETreeItem(compooper.EtapeTreeItem): Ce nom dépend de la validité de l'objet """ if self.object.isactif(): - self.object.state="modified" + self.object.state="modified" if self.object.isvalid(): return "ast-green-square" else: @@ -308,17 +308,17 @@ class FORMULETreeItem(compooper.EtapeTreeItem): """ args="" for mot in self.object.mc_liste: - if mot.nom == 'NOM_PARA': - args=mot.valeur - break + if mot.nom == 'NOM_PARA': + args=mot.valeur + break if args : if args[0] == "(" and args[-1] ==")": - args=args[1:-1] - # transforme en tuple si ce n est pas déjà le casa - try : - args=string.split(args,',') - except : - pass + args=args[1:-1] + # transforme en tuple si ce n est pas déjà le casa + try : + args=string.split(args,',') + except : + pass return args def get_corps(self): @@ -327,9 +327,9 @@ class FORMULETreeItem(compooper.EtapeTreeItem): """ corps="" for mot in self.object.mc_liste: - if mot.nom == 'VALE': - corps=mot.valeur - break + if mot.nom == 'VALE': + corps=mot.valeur + break return corps @@ -376,14 +376,14 @@ class FORMULETreeItem(compooper.EtapeTreeItem): """ Lance la vérification de FORMULE passée en argument """ - return self.object.verif_formule(formule=formule) + return self.object.verif_formule(formule=formule) def verif_formule_python(self,formule): """ Lance la vérification de FORMULE passée en argument """ - return self.object.verif_formule_python(formule=formule) + return self.object.verif_formule_python(formule=formule) import Accas treeitem =FORMULETreeItem diff --git a/Editeur/compomclist.py b/Editeur/compomclist.py index b80bd15a..ae92e03a 100644 --- a/Editeur/compomclist.py +++ b/Editeur/compomclist.py @@ -21,6 +21,8 @@ import types from Tkinter import * import Pmw + +from Noyau.N_OBJECT import ErrorObj import Objecttreeitem import panels import traceback @@ -44,7 +46,9 @@ class MCLISTPanel(panels.Panel): self.node.parent.append_child(self.node.item.get_nom()) import compofact +import compoerror import treewidget + class Node(treewidget.Node): def doPaste(self,node_selected): objet_a_copier = self.item.get_copie_objet() @@ -78,11 +82,11 @@ class Node(treewidget.Node): class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem): """ La classe MCListTreeItem joue le role d'un adaptateur pour les objets du noyau Accas instances de la classe MCLIST. - Elle adapte ces objets pour leur permettre d'etre intégrés en tant que - noeuds dans un arbre graphique (voir treewidget.py et ObjectTreeItem.py). - Cette classe délègue les appels de méthode et les accès - aux attributs à l'objet du noyau soit manuellement soit - automatiquement (voir classe Delegate et attribut object). + Elle adapte ces objets pour leur permettre d'etre intégrés en tant que + noeuds dans un arbre graphique (voir treewidget.py et ObjectTreeItem.py). + Cette classe délègue les appels de méthode et les accès + aux attributs à l'objet du noyau soit manuellement soit + automatiquement (voir classe Delegate et attribut object). """ itemNode=Node @@ -92,10 +96,10 @@ class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem): self.updateDelegate() def updateDelegate(self): - if len(self._object) > 1: - self.setdelegate(self._object) - else: - self.setdelegate(self._object.data[0]) + if len(self._object) > 1: + self.setdelegate(self._object) + else: + self.setdelegate(self._object.data[0]) def panel(self,jdcdisplay,pane,node): """ Retourne une instance de l'objet panneau associe a l'item (self) @@ -103,22 +107,24 @@ class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem): FACTPanel. Si la liste est plus longue on utilise le panneau MCLISTPanel. """ - if len(self._object) > 1: + if len(self._object) > 1: return MCLISTPanel(jdcdisplay,pane,node) - else: - return compofact.FACTPanel(jdcdisplay,pane,node) + elif isinstance(self._object.data[0],ErrorObj): + return compoerror.ERRORPanel(jdcdisplay,pane,node) + else: + return compofact.FACTPanel(jdcdisplay,pane,node) def IsExpandable(self): - if len(self._object) > 1: - return Objecttreeitem.SequenceTreeItem.IsExpandable(self) - else: - return compofact.FACTTreeItem.IsExpandable(self) + if len(self._object) > 1: + return Objecttreeitem.SequenceTreeItem.IsExpandable(self) + else: + return compofact.FACTTreeItem.IsExpandable(self) def GetSubList(self): self.updateDelegate() - if len(self._object) <= 1: + if len(self._object) <= 1: self._object.data[0].alt_parent=self._object - return compofact.FACTTreeItem.GetSubList(self) + return compofact.FACTTreeItem.GetSubList(self) liste=self._object.data sublist=[None]*len(liste) @@ -162,29 +168,29 @@ class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem): return self.object.get_docu() def iscopiable(self): - if len(self._object) > 1: - return Objecttreeitem.SequenceTreeItem.iscopiable(self) - else: - return compofact.FACTTreeItem.iscopiable(self) + if len(self._object) > 1: + return Objecttreeitem.SequenceTreeItem.iscopiable(self) + else: + return compofact.FACTTreeItem.iscopiable(self) def isMCFact(self): """ Retourne 1 si l'objet pointé par self est un MCFact, 0 sinon """ - return len(self._object) <= 1 + return len(self._object) <= 1 def isMCList(self): """ Retourne 1 si l'objet pointé par self est une MCList, 0 sinon """ - return len(self._object) > 1 - + return len(self._object) > 1 + def get_copie_objet(self): return self._object.data[0].copy() def additem(self,obj,pos): #print "compomclist.additem",obj,pos - if len(self._object) <= 1: + if len(self._object) <= 1: return compofact.FACTTreeItem.additem(self,obj,pos) o= self.object.addentite(obj,pos) @@ -192,15 +198,15 @@ class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem): def suppitem(self,item): """ - Retire un objet MCFACT de la MCList (self.object) - """ + Retire un objet MCFACT de la MCList (self.object) + """ #print "compomclist.suppitem",item obj=item.getObject() - if len(self._object) <= 1: - return compofact.FACTTreeItem.suppitem(self,item) + if len(self._object) <= 1: + return compofact.FACTTreeItem.suppitem(self,item) if self.object.suppentite(obj): - if len(self._object) == 1: self.updateDelegate() + if len(self._object) == 1: self.updateDelegate() message = "Mot-clé " + obj.nom + " supprimé" self.appli.affiche_infos(message) return 1 @@ -208,7 +214,7 @@ class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem): self.appli.affiche_infos('Impossible de supprimer ce mot-clé') return 0 - + import Accas objet = Accas.MCList diff --git a/Editeur/componiveau.py b/Editeur/componiveau.py index 2e85dcb5..0a74d55c 100644 --- a/Editeur/componiveau.py +++ b/Editeur/componiveau.py @@ -39,7 +39,7 @@ class NIVEAUPanel(panels.OngletPanel): panneau.pack(expand=1,fill='both') self.bouton_com.pack_forget() self.makeJDCPage(panneau.pane('left')) - self.enlevebind() + self.enlevebind() import treewidget diff --git a/Editeur/compooper.py b/Editeur/compooper.py index 945bacee..2fcbfff9 100644 --- a/Editeur/compooper.py +++ b/Editeur/compooper.py @@ -88,7 +88,7 @@ class OPERPanel(panels.OngletPanel): self.valeur_choisie.set(choix) except: traceback.print_exc() - + def choose_valeur_from_list(self,command): try: @@ -279,6 +279,15 @@ class EtapeTreeItem(Objecttreeitem.ObjectTreeItem): 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 + """ + # Format de fichier utilisé + format=self.appli.format_fichier.get() + return self.object.get_objet_commentarise(format) + + def get_objet_commentarise_BAK(self): """ Cette méthode retourne un objet commentarisé représentatif de self.object @@ -305,6 +314,11 @@ class EtapeTreeItem(Objecttreeitem.ObjectTreeItem): return commande_comment + def visu_3D(self,appli,node) : + import TroisDPal + troisD=TroisDPal.TroisDPilote(node.item,appli,node.parent) + troisD.envoievisu() + import Accas treeitem = EtapeTreeItem objet = Accas.ETAPE diff --git a/Editeur/compoparam.py b/Editeur/compoparam.py index 64a1b15a..9de26833 100644 --- a/Editeur/compoparam.py +++ b/Editeur/compoparam.py @@ -63,6 +63,8 @@ class PARAMPanel(panels.OngletPanel): nb.tab('Parametre').focus_set() nb.setnaturalsize() self.make_buttons() + self.enlevebind() + self.creebind() def makeParametrePage(self,page): """ @@ -198,7 +200,8 @@ class PARAMTreeItem(Objecttreeitem.ObjectTreeItem): """ Retourne la valeur de l'objet PARAMETRE cad son texte """ - return self.object.valeur or '' + if self.object.valeur is None: return '' + else: return self.object.valeur def get_nom(self): """ @@ -216,7 +219,8 @@ class PARAMTreeItem(Objecttreeitem.ObjectTreeItem): """ Renomme le paramètre """ - self.object.set_attribut('nom',new_nom) + self.object.set_nom(new_nom) + #self.object.set_attribut('nom',new_nom) def get_fr(self): """ diff --git a/Editeur/composimp.py b/Editeur/composimp.py index cf8eae08..ea4b9909 100644 --- a/Editeur/composimp.py +++ b/Editeur/composimp.py @@ -94,7 +94,7 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): from uniqueassdpanel import UNIQUE_ASSD_Panel from uniqueassdpanel import UNIQUE_ASSD_Panel_Reel if 'R' in self.GetType(): - self.panel = UNIQUE_ASSD_Panel_Reel + self.panel = UNIQUE_ASSD_Panel_Reel else : self.panel = UNIQUE_ASSD_Panel else: @@ -105,7 +105,7 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): self.panel = UNIQUE_COMP_Panel else: # on attend un entier, un réel ou une string - from uniquebasepanel import UNIQUE_BASE_Panel + from uniquebasepanel import UNIQUE_BASE_Panel self.panel = UNIQUE_BASE_Panel # cas particulier des fonctions genea = self.get_genealogie() @@ -119,12 +119,12 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): if hasattr( self.appli, 'salome' ): import panelsSalome - self.select_noeud_maille=0 - self.clef_fonction="SALOME" - for i in range(0,len( genea )) : - self.clef_fonction=self.clef_fonction+"_"+ genea[i] - if genea[i] == "GROUP_NO" or genea[i] == "GROUP_MA": - self.select_noeud_maille=1 + self.select_noeud_maille=0 + self.clef_fonction="SALOME" + for i in range(0,len( genea )) : + self.clef_fonction=self.clef_fonction+"_"+ genea[i] + if genea[i] == "GROUP_NO" or genea[i] == "GROUP_MA": + self.select_noeud_maille=1 recherche=panelsSalome.dict_classes_salome[self.panel] if hasattr(recherche,self.clef_fonction): @@ -140,9 +140,9 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): # #----------------------------------------------- # is_list - # get_into a priori inutile --> commentee + # get_into a priori inutile --> commentee # has_into - # wait_into a priori inutile --> commentee + # wait_into a priori inutile --> commentee # GetMinMax # GetMultiplicite # GetIntervalle @@ -165,7 +165,7 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): min,max = self.GetMinMax() assert (min <= max) if max > 1 : - is_a_list=1 + is_a_list=1 # Dans le cas avec validateurs, pour que le mot cle soit considéré # comme acceptant une liste, il faut que max soit supérieur a 1 # ET que la méthode is_list du validateur retourne 1. Dans les autres cas @@ -197,14 +197,14 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): Deux cas principaux peuvent se presenter : avec validateurs ou bien sans. Dans le cas sans validateur, l'information est donnée par l'attribut into de la definition du mot cle. - Dans le cas avec validateurs, pour que le mot cle soit considéré + Dans le cas avec validateurs, pour que le mot cle soit considéré comme proposant un choix, il faut que into soit présent OU que la méthode has_into du validateur retourne 1. Dans les autres cas on retournera 0 (ne propose pas de choix) """ has_an_into=0 if self.definition.into: - has_an_into=1 + has_an_into=1 elif self.definition.validators : has_an_into= self.definition.validators.has_into() return has_an_into @@ -259,45 +259,38 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): def get_liste_possible(self,listeActuelle=[]): if hasattr(self.definition.validators,'into'): - self.get_definition().into=self.definition.validators.into - valeurspossibles = self.get_definition().into - # CCAR : Ne serait-il pas preferable d'appeler get_into ? - #valeurspossibles=self.get_into(listeActuelle) + valeurspossibles = self.definition.validators.into + else: + valeurspossibles = self.get_definition().into + #On ne garde que les items valides listevalideitem=[] for item in valeurspossibles: encorevalide=self.valide_item(item) if encorevalide : listevalideitem.append(item) - # on ne verifie pas la liste des choix si max = 1 - # (sinon cela enleve tous les choix possibles) - min,max=self.GetMinMax() - if max != 1 : - listevalideliste=[] - for item in listevalideitem: - listetravail=[] - for item2 in listeActuelle : listetravail.append(item2) - encorevalide=self.valide_liste_partielle(item,listetravail) - if encorevalide : - listevalideliste.append(item) - else : - listevalideliste=listevalideitem + + #on ne garde que les choix possibles qui passent le test de valide_liste_partielle + listevalideliste=[] + for item in listevalideitem: + encorevalide=self.valide_liste_partielle(item,listeActuelle) + if encorevalide : + listevalideliste.append(item) return listevalideliste def get_liste_param_possible(self): - # liste_param=[] for param in self.object.jdc.params: - encorevalide=self.valide_item(param.valeur) + encorevalide=self.valide_item(param.valeur) if encorevalide: - type_param=param.valeur.__class__.__name__ - for typ in self.definition.type: - if typ=='R': - liste_param.append(param) - if typ=='I' and type_param=='int': - liste_param.append(param) - if typ=='TXM' and type_param=='str': - liste_param.append(repr(param)) + type_param=param.valeur.__class__.__name__ + for typ in self.definition.type: + if typ=='R': + liste_param.append(param) + if typ=='I' and type_param=='int': + liste_param.append(param) + if typ=='TXM' and type_param=='str': + liste_param.append(repr(param)) return liste_param #-------------------------------------------------- @@ -315,26 +308,29 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): def valide_item(self,item): """ - On fait un try except pour les erreurs de type (exple - on rentre 1 pour une chaine de caracteres + On fait un try except pour les erreurs de type (exple + on rentre 1 pour une chaine de caracteres """ valide=1 if self.definition.validators : try : valide=self.definition.validators.verif_item(item) except : - valide = 0 + valide = 0 return valide def valide_liste_partielle(self,item,listecourante): - valeur=listecourante + #On protege la liste en entree en la copiant + valeur=listecourante[:] valeur.append(item) - valeur = tuple(valeur) return self.object.valid_valeur_partielle(valeur) def valide_liste_complete (self,valeur): return self.object.valid_valeur(valeur) + def valide_val (self,valeur): + return self.object.valid_val(valeur) + def info_erreur_item(self) : commentaire="" if self.definition.validators : @@ -369,13 +365,13 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): # Autres ... # #--------------------------------------------------- - # SetText a priori inutilisee --> commentee + # SetText a priori inutilisee --> commentee # GetIconName # GetText # getval a priori inutilisee --> commentee # set_valeur_co # get_sd_avant_du_bon_type - # verif a priori inutilisee --> commentee + # verif a priori inutilisee --> commentee # delete_valeur_co #def SetText(self, text): @@ -501,9 +497,9 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): boo=0 if len(self.object.definition.type) > 1 : if self.wait_reel() : - boo = 1 - if 'I' in self.object.definition.type : - boo = 1 + boo = 1 + if 'I' in self.object.definition.type : + boo = 1 return boo @@ -524,6 +520,14 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): # traite_reel def eval_valeur(self,valeur): + """ Lance l'interprétation de 'valeur' (chaîne de caractères) comme valeur de self : + - retourne l'objet associé si on a pu interpréter (entier, réel, ASSD,...) + - retourne 'valeur' (chaîne de caractères) sinon + """ + newvaleur=self.eval_val(valeur) + return newvaleur,1 + + def eval_valeur_BAK(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,...) @@ -538,26 +542,26 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): newvaleur,validiteitem=self.eval_valeur_item(item) valeurretour.append(newvaleur) if validiteitem == 0: - validite=0 + validite=0 else : valeurretour,validite= self.eval_valeur_item(valeur) if validite == 0 : - valeurretour = None + valeurretour = None return valeurretour,validite def eval_valeur_item(self,valeur): """ Lance l'interprétation de 'valeur' qui doit ne pas etre un tuple - - va retourner la valeur de retour et la validite + - va retourner la valeur de retour et la validite selon le type de l objet attendu - traite les reels et les parametres """ #print "eval_valeur_item",valeur if valeur==None or valeur == "" : - return None,0 + return None,0 validite=1 if self.wait_reel(): valeurinter = self.traite_reel(valeur) - if valeurinter != None : + if valeurinter != None : valeurretour,validite= self.object.eval_valeur(valeurinter) else: valeurretour,validite= self.object.eval_valeur(valeur) @@ -568,7 +572,7 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): #print "eval_valeur_item",valeurretour,validite if validite == 0: - if type(valeur) == types.StringType and self.object.wait_TXM(): + if type(valeur) == types.StringType and self.object.wait_TXM(): essai_valeur="'" + valeur + "'" valeurretour,validite= self.object.eval_valeur(essai_valeur) @@ -587,7 +591,7 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): #validite=0 # on est dans le cas où on a évalué et où on n'aurait pas du if self.object.wait_TXM() : - if type(valeurretour) != types.StringType: + if type(valeurretour) != types.StringType: valeurretour=str(valeur) validite=1 return valeurretour,validite @@ -612,8 +616,8 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): def is_param(self,valeur) : for param in self.jdc.params: - if (repr(param) == valeur): - return 1 + if (repr(param) == valeur): + return 1 return 0 def traite_reel(self,valeur): @@ -633,16 +637,16 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): if string.find(valeur,'.') == -1 : # aucun '.' n'a été trouvé dans valeur --> on en rajoute un à la fin if (self.is_param(valeur)): - return valeur + return valeur else: - if string.find(valeur,'e') != -1: - # Notation scientifique ? - try : - r=eval(valeur) - return valeur - except : - return None - else : + if string.find(valeur,'e') != -1: + # Notation scientifique ? + try : + r=eval(valeur) + return valeur + except : + return None + else : return valeur+'.' else: return valeur diff --git a/Editeur/configuration.py b/Editeur/configuration.py index 1596562e..d2d2cc75 100644 --- a/Editeur/configuration.py +++ b/Editeur/configuration.py @@ -29,191 +29,135 @@ import traceback from widgets import showinfo,showerror,askretrycancel import utils -class CONFIG: - def __init__(self,appli,rep_ini): - # si appli == None on est en mode commande (hors EFICAS) +class CONFIGbase: + + #----------------------------------- + def __init__(self,appli): + #----------------------------------- + + # Classe de base permettant de lire, afficher + # et sauvegarder les fichiers utilisateurs editeur.ini + # et style.py + # Classe Mere de : class CONFIG(CONFIGbase) + # class CONFIGStyle(CONFIGbase): + self.appli = appli - if self.appli:self.parent=appli.top - else:self.parent=None - self.rep_ini = rep_ini + if self.appli: + self.parent=appli.top + else: + self.parent=None 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() - + self.init_liste_param() + + + #-------------------------------------- def lecture_fichier_ini_standard(self): - """ - Relit les paramètres du fichier eficas.ini - """ - txt = utils.read_file(self.fic_ini) - d={} + #-------------------------------------- + # Verifie l'existence du fichier "standard" + # appelle la lecture de ce fichier + if not os.path.isfile(self.fic_ini): + print self.fic_ini + showerror("Erreur","Pas de fichier de configuration" + self.fic_ini+"\n") + print "Erreur à la lecture du fichier de configuration : %s" % self.fic_ini + sys.exit(0) + self.lecture_fichier(self.fic_ini) + + #----------------------------- + def lecture_fichier(self,fic): + #------------------------------ + # lit les paramètres du fichier eficas.ini ou style.py + # les transforme en attribut de l 'objet + # utilisation du dictionnaire local pour récuperer style + txt = utils.read_file(fic) + from styles import style + d=locals() 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:]) + showerror("Erreur","Une erreur s'est produite lors de la lecture du fichier : " + fic + "\n") + print "Erreur à la lecture du fichier de configuration : %s" % fic 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() + for k in d.keys() : + if k in self.labels.keys() : + setattr(self,k,d[k]) + + for k in d['style'].__dict__.keys() : + setattr(self,k,d['style'].__dict__[k]) + + #-------------------------------------- def lecture_fichier_ini_utilisateur(self): - """ - 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') + #-------------------------------------- + # Surcharge les paramètres standards par les paramètres utilisateur s'ils existent + self.fic_ini_utilisateur = os.path.join(self.rep_user,self.fichier) 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() + self.lecture_fichier(self.fic_ini_utilisateur) - 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)) - self.l_param.append(("Niveau de message ",'YesNo','isdeveloppeur',self.isdeveloppeur,'Deboggage','Utilisation')) - else: - # self.l_param.append(("Etes-vous développeur ?",'YesNo','isdeveloppeur','NON')) - self.l_param.append(("Niveau de message ",'YesNo','isdeveloppeur','NON','Deboggage','Utilisation')) - # 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", + titre = self.titre, + texte = self.texte_ini, items = self.l_param, mode='display', - commande=('Modifier',self.creation_fichier_ini_si_possible)) + commande=('Modifier',self.commande)) if result.resultat : - print 'on sauvegarde les nouveaux paramètres :',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 - """ + #-------------------------------------- + # 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' : + if self.types[k] in ('mot2','mot3','mot4'): + v1=v[1:-1] + val=v1.split(",") + p = "(" + listeval="" + for valeur in val: + listeval = listeval+ p + str(valeur) + p=" , " + listeval = listeval + ")" + f.write(str(self.pref)+str(k) + '=' + str(listeval) + '\n') + elif k == 'catalogues' : f.write(k + '\t=\t' + str(v) + '\n') else: - f.write(k + '\t=\t"' + str(v) + '"\n') + f.write(str(self.pref)+str(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 - """ + #--------------------------------------------------------- + # 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, + texte = self.texte, items = items, mode='query') if not result.resultat : @@ -230,7 +174,121 @@ class CONFIG: self.save_param_ini(result.resultat) return result.resultat + #-------------------------- + def init_liste_param (self): + #-------------------------- + # construit self.l_param + # a partir de self.labels et des attributs + # de l objet (mis a jour lors de la lecture du fichier) + # l_param est une liste de tuples où chaque tuple est de la forme : + # (label,nature,nom_var,defaut) + + self.l_param=[] + for k in self.labels.keys() : + if hasattr(self,k) : + if k in self.YesNo.keys(): + self.l_param.append((self.labels[k],self.types[k],k,self.__dict__[k], + self.YesNo[k][0],self.YesNo[k][1])) + else : + self.l_param.append((self.labels[k],self.types[k],k,self.__dict__[k])) + self.l_param = tuple(self.l_param) + + +class CONFIG(CONFIGbase): + def __init__(self,appli,rep_ini): + self.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 !!" + self.fichier="editeur.ini" + self.rep_ini = rep_ini + self.fic_ini = os.path.join(self.rep_ini,self.fichier) + self.titre = "Paramètres nécessaires à la configuration d'EFICAS" + self.texte_ini = "Voici les paramètres que requiert Eficas" + self.commande = self.creation_fichier_ini_si_possible + self.pref="" + self.labels={"initialdir" : "Répertoire initial pour Open/Save des fichiers", + "rep_travail" : "Répertoire de travail", + "rep_mat" : "Répertoire materiaux", + "path_doc" : "Chemin d'accès à la doc Aster", + "exec_acrobat" : "Ligne de commande Acrobat Reader", + "catalogues" : "Versions du code ", + "isdeveloppeur" : "Niveau de message ", + "path_cata_dev" : "Chemin d'accès aux catalogues développeurs"} + + self.types ={"initialdir":"rep", "rep_travail":"rep","rep_mat":"rep", + "path_doc": "rep","exec_acrobat":"file","exec_acrobat":"file", + "catalogues" :"cata","isdeveloppeur":"YesNo","path_cata_dev":"rep"} + + self.YesNo={} + self.YesNo['isdeveloppeur']=('Deboggage','Utilisation') + + # Valeurs par defaut + self.rep_user = utils.get_rep_user() + self.initialdir=self.rep_user + self.rep_travail=os.path.join(self.rep_user,'uaster','tmp_eficas') + self.rep_mat='/aster/v7/materiau' + self.path_doc=self.rep_user + self.exec_acrobat=self.rep_user + self.catalogues= os.path.join(self.rep_ini,'..','Cata/cata.py') + self.isdeveloppeur='NON' + self.path_cata_dev=os.path.join(self.rep_user,'cata') + + CONFIGbase.__init__ (self,appli) + + +class CONFIGStyle(CONFIGbase): + def __init__(self,appli,rep_ini): + self.texte = "Pour prendre en compte les modifications \n"+\ + " RELANCER EFICAS" + self.fichier="style.py" + self.rep_ini = rep_ini + self.fic_ini = os.path.join(self.rep_ini,self.fichier) + self.titre = "Paramètres d affichage" + self.texte_ini = "Voici les paramètres configurables : " + self.commande = self.creation_fichier_ini_si_possible + self.pref="style." + self.labels={"background":"couleur du fonds", + "foreground":"couleur de la police standard" , + "standard":" police et taille standard", + "standard_italique":"police utilisée pour l'arbre ", + "standard_gras_souligne":"police utilisée pour le gras souligné", + "canvas_italique":"police italique", + "standard_gras":"gras", + #"canvas":"police", + #"canvas_gras":"police gras", + #"canvas_gras_italique":"police gras italique", + #"standard12":"police 12", + #"standard12_gras":"police 12 gras", + #"standard12_gras_italique":"police 12 gras italique", + #"standardcourier10":"courrier " + "statusfont":"police utilisée dans la status Bar", + } + self.types ={"background":"mot", + "foreground":"mot" , + "standard":"mot2", + "standard_italique":"mot3", + "standard_gras":"mot3", + "standard_gras_souligne":"mot4", + "canvas":"mot2", + "canvas_italique":"mot3", + "canvas_gras":"mot3", + "canvas_gras_italique":"mot4", + "standard12":"mot2", + "standard12_gras":"mot3", + "standard12_gras_italique":"mot4", + "statusfont":"mot2", + "standardcourier10":"mot2"} + self.YesNo={} + self.l_param=[] + CONFIGbase.__init__ (self,appli) + + def affichage_style_ini(self): + self.affichage_fichier_ini() + def make_config(appli,rep): return CONFIG(appli,rep) +def make_config_style(appli,rep): + return CONFIGStyle(appli,rep) + diff --git a/Editeur/eficas.py b/Editeur/eficas.py index c683ed5a..caf47fb8 100644 --- a/Editeur/eficas.py +++ b/Editeur/eficas.py @@ -55,7 +55,7 @@ class EFICAS(appli.APPLI): def browse(self,result): if result == 'Browse': - self.ulfile = askopenfilename(title="Choix fichier :") + self.ulfile = askopenfilename(parent=self.dialog.component('hull'),title="Choix fichier :") self._ulfile.setentry(self.ulfile) elif result == 'OK': self.ulfile = self._ulfile.get() diff --git a/Editeur/eficas_test.py b/Editeur/eficas_test.py index 1e794f03..6ff3db51 100644 --- a/Editeur/eficas_test.py +++ b/Editeur/eficas_test.py @@ -79,10 +79,7 @@ def duplique_fichier(code,fichier=None,root=None): if generator.plugins.has_key(format): g=generator.plugins[format]() jdc_formate=g.gener(J,format='beautifie') - print "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh" - print jdc_formate jdc_fini = string.replace(jdc_formate,'\r\n','\n') - print jdc_fini utils.save_in_file(fileName+".comm",jdc_fini,None) def convertir(texte): diff --git a/Editeur/faqs.txt b/Editeur/faqs.txt index 00504291..b087c34e 100755 --- a/Editeur/faqs.txt +++ b/Editeur/faqs.txt @@ -1,24 +1,24 @@ ------------------------------------------------------------------------------------------------------------- - FAQs et Limitations d'EFICAS + 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 + 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 ! + 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) + 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 @@ -26,21 +26,21 @@ 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. + 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. + 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é. + + 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é. diff --git a/Editeur/fenetre_mc_inconnus.py b/Editeur/fenetre_mc_inconnus.py index ccf11af8..35b118ac 100644 --- a/Editeur/fenetre_mc_inconnus.py +++ b/Editeur/fenetre_mc_inconnus.py @@ -57,7 +57,7 @@ class fenetre_mc_inconnus : 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 @@ -78,8 +78,8 @@ class fenetre_mc_inconnus : 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') + wraplength = int(self.frame1.winfo_width()*0.8), + justify = 'center').place(relx=0.5,rely=0.5,anchor='center') def init_liste_mc(self): @@ -91,133 +91,133 @@ class fenetre_mc_inconnus : 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("",lambda event,en=e,m=mc,s=self : s.select_mc(m,en)) - #e.bind("",lambda e,s=self : s.modifie_mc()) - e.configure(relief='flat',state='disabled') + # 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("",lambda event,en=e,m=mc,s=self : s.select_mc(m,en)) + #e.bind("",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') - + 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 - + 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 + 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() + 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() + 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 + 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() - + 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') - + 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') + 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') - + 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') - + 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) + Permet de fermer la fenêtre + """ + self.var_quit.set(1) if __name__ == '__main__': fenetre_mc_inconnus(('toto','titi')) diff --git a/Editeur/fonctionpanel.py b/Editeur/fonctionpanel.py index c8a10a29..a5661581 100644 --- a/Editeur/fonctionpanel.py +++ b/Editeur/fonctionpanel.py @@ -48,9 +48,9 @@ class FONCTION_Panel(PLUSIEURS_BASE_Panel): """ genea=self.node.item.get_genealogie() if "VALE" in genea: - self.nb_valeurs=2 + self.nb_valeurs=2 if "VALE_C" in genea: - self.nb_valeurs=3 + self.nb_valeurs=3 # 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() @@ -105,31 +105,31 @@ class FONCTION_Panel(PLUSIEURS_BASE_Panel): self.ajout_valeurs = None # boutons Ajouter et Supprimer - bouton_add = Button(self.frame_boutons_fleches, + self.bouton_add = Button(self.frame_boutons_fleches, image = images.get_image('arrow_left'), command = self.add_double_valeur_plusieurs_base) - bouton_sup = Button(self.frame_boutons_fleches, + self.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) + self.bouton_add.place(relx=0.3,rely=0.35) + self.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)) + 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, + self.bouton_accepter = Button(self.frame_boutons, text='Valider', command = lambda s=self,m=min,M=max : s.accepte_modifs_valeur_recolle(m,M)) - bouton_annuler = Button(self.frame_boutons, + self.bouton_annuler = Button(self.frame_boutons, text = 'Annuler', command = self.annule_modifs_valeur) - for but in (bouton_accepter,bouton_annuler): + for but in (self.bouton_accepter,self.bouton_annuler): but.pack(side='left',padx=4) @@ -156,8 +156,8 @@ class FONCTION_Panel(PLUSIEURS_BASE_Panel): l_valeurs=[] l1_valeurs = self.Liste_valeurs.get_liste() for val in l1_valeurs : - for item in val : - l_valeurs.append(item) + for item in val : + l_valeurs.append(item) self.accepte_modifs_valeur(min,max,l_valeurs) @@ -171,58 +171,58 @@ class FONCTION_Panel(PLUSIEURS_BASE_Panel): doublevaleur_entree=doublevaleur_entree[1:-1] if doublevaleur_entree[-1]==')' : doublevaleur_entree=doublevaleur_entree[0:-2] - val1=doublevaleur_entree.split(',')[0] - val2=doublevaleur_entree.split(',')[1] + val1=doublevaleur_entree.split(',')[0] + val2=doublevaleur_entree.split(',')[1] saisie=(val1,val2) if (self.nb_valeurs==3): - val3=doublevaleur_entree.split(',')[2] + val3=doublevaleur_entree.split(',')[2] saisie=(val1,val2,val3) self.entry.delete(0,END) except : commentaire = "%s n est pas un tuple de la forme (x,y)" %`doublevaleur_entree` if (self.nb_valeurs==3): - commentaire = "%s n est pas un tuple de la forme (x,y,z)" %`doublevaleur_entree` + commentaire = "%s n est pas un tuple de la forme (x,y,z)" %`doublevaleur_entree` self.parent.appli.affiche_infos(commentaire) return # et seulement d un tuple try: - val=doublevaleur_entree.split(',')[self.nb_valeurs] + val=doublevaleur_entree.split(',')[self.nb_valeurs] commentaire = "%s n est pas un tuple de la forme (x,y)" %`doublevaleur_entree` if (self.nb_valeurs==3): - commentaire = "%s n est pas un tuple de la forme (x,y,z)" %`doublevaleur_entree` + commentaire = "%s n est pas un tuple de la forme (x,y,z)" %`doublevaleur_entree` self.parent.appli.affiche_infos(commentaire) self.parent.appli.affiche_infos(commentaire) return except : # c est la le cas normal - pass + pass # on verifie la validite des valeurs sont correctes valeur,validite=self.node.item.eval_valeur(saisie) if not validite : commentaire = "impossible d'évaluer : %s " %`doublevaleur_entree` self.parent.appli.affiche_infos(commentaire) - return + return # on verifie la validite de la liste liste=[] l1_valeurs = self.Liste_valeurs.get_liste() for val in l1_valeurs : - for item in val : - liste.append(item) + for item in val : + liste.append(item) validite_liste=self.node.item.valide_liste_partielle(valeur[0],liste) if not validite_liste: commentaire = "impossible d'ajouter %s a la liste " %`doublevaleur_entree` self.parent.appli.affiche_infos(commentaire) - return + return # liste a deja ete modifiee par l appel precedent a valide_liste_partielle # et contient deja valeur[0] validite_liste=self.node.item.valide_liste_partielle(valeur[1],liste) if not validite_liste: commentaire = "impossible d'ajouter %s a la liste " %`doublevaleur_entree` self.parent.appli.affiche_infos(commentaire) - return + return # si une valeur est selectionnee on insere apres # sinon on ajoute la valeur à la fin @@ -260,14 +260,14 @@ class FONCTION_Panel(PLUSIEURS_BASE_Panel): try: affiche="(" separe="" - for val in valeur: - affiche=affiche+separe+str(val) - separe="," + for val in valeur: + affiche=affiche+separe+str(val) + separe="," affiche=affiche+")" self.entry.delete(0,END) - self.entry.insert(0,affiche) + self.entry.insert(0,affiche) except : - self.entry.delete(0,END) + self.entry.delete(0,END) # Surcharge de select in file pour prendre en compte la saisie de tuple def select_in_file(self): diff --git a/Editeur/jdcdisplay.py b/Editeur/jdcdisplay.py index 9680f0e6..c5a3eeba 100644 --- a/Editeur/jdcdisplay.py +++ b/Editeur/jdcdisplay.py @@ -263,7 +263,7 @@ class JDCDISPLAY: item=self.appli.noeud_a_editer.item self.appli.noeud_a_editer.delete() child.item.update(item) - #test,mess = child.item.nomme_sd(nom) + #test,mess = child.item.nomme_sd(nom) child.select() # on rend la copie à nouveau possible en libérant le flag edit self.appli.edit="copier" diff --git a/Editeur/listeFichiers.py b/Editeur/listeFichiers.py index 0eda5992..9a9843f8 100644 --- a/Editeur/listeFichiers.py +++ b/Editeur/listeFichiers.py @@ -14,68 +14,68 @@ class listeFichiers : self.traite_liste() def init_Fichier(self): - index=0 + index=0 + try : + f=open(self.monFichier) + while ( index < 5) : + ligne=f.readline() + if ligne != "" : + l=(ligne.split("\n"))[0] + self.liste_Fichiers.append(l) + index=index+1 + except : + pass try : - f=open(self.monFichier) - while ( index < 5) : - ligne=f.readline() - if ligne != "" : - l=(ligne.split("\n"))[0] - self.liste_Fichiers.append(l) - index=index+1 - except : - pass - try : - f.close() - except : - pass + f.close() + except : + pass def sauve_Fichier(self): try : - if len(self.liste_Fichiers) == 0 : - return - f=open(self.monFichier,'w') - index=0 - while ( index < len(self.liste_Fichiers)): - ligne=self.liste_Fichiers[index]+"\n" - f.write(ligne) - index=index+1 - except : - pass - try : - f.close() - except : - pass + if len(self.liste_Fichiers) == 0 : + return + f=open(self.monFichier,'w') + index=0 + while ( index < len(self.liste_Fichiers)): + ligne=self.liste_Fichiers[index]+"\n" + f.write(ligne) + index=index+1 + except : + pass + try : + f.close() + except : + pass def traite_liste(self): index=0 - for index in range(self.nbfich): + for index in range(self.nbfich): self.menuFichier.delete(9) - self.nbfich = 0 - index = 0 - while( index < len(self.liste_Fichiers)) : - self.ajout_item(index) - index=index+1 - + self.nbfich = 0 + index = 0 + while( index < len(self.liste_Fichiers)) : + self.ajout_item(index) + index=index+1 + def ajout_item(self,index): if self.premiere and (len(self.liste_Fichiers)!=0): - self.premiere=0 - self.menuFichier.add_separator() - label=self.liste_Fichiers[index] + self.premiere=0 + self.menuFichier.add_separator() + label=self.liste_Fichiers[index] self.menuFichier.insert_command(8,label=label,command= lambda self=self, l=label:self.coucou (l)); - self.nbfich=self.nbfich+1 + self.nbfich=self.nbfich+1 def coucou(self,label): self.appli.bureau.openJDC(file=label) def aOuvert(self,file): if file not in self.liste_Fichiers : - if (len(self.liste_Fichiers) > 4) : - f=self.liste_Fichiers[0] - self.liste_Fichiers.remove(f) - self.liste_Fichiers.insert(len(self.liste_Fichiers),file) - else: - self.liste_Fichiers.remove(file) - self.liste_Fichiers.insert(len(self.liste_Fichiers),file) - self.traite_liste() - self.sauve_Fichier() + if (len(self.liste_Fichiers) > 4) : + f=self.liste_Fichiers[0] + self.liste_Fichiers.remove(f) + self.liste_Fichiers.insert(len(self.liste_Fichiers),file) + else: + self.liste_Fichiers.remove(file) + self.liste_Fichiers.insert(len(self.liste_Fichiers),file) + self.traite_liste() + self.sauve_Fichier() diff --git a/Editeur/listePatrons.py b/Editeur/listePatrons.py index 090366e5..307abbbe 100644 --- a/Editeur/listePatrons.py +++ b/Editeur/listePatrons.py @@ -22,24 +22,24 @@ class listePatrons : def traite_liste(self): for file in os.listdir(self.rep_patrons): - for i in range(len(sous_menu)): - clef=sous_menu[i].keys()[0] - chaine=sous_menu[i][clef] - if re.search(chaine,file) : - if clef in self.liste.keys(): - self.liste[clef].append(file) - else : - self.liste[clef]=[file] - break + for i in range(len(sous_menu)): + clef=sous_menu[i].keys()[0] + chaine=sous_menu[i][clef] + if re.search(chaine,file) : + if clef in self.liste.keys(): + self.liste[clef].append(file) + else : + self.liste[clef]=[file] + break def ajout_menu(self): menuFichier=self.appli.menubar.menubar - menu_cascade=Tkinter.Menu(menuFichier,tearoff=0) - menuFichier.add_cascade(label="Patrons",menu=menu_cascade) + menu_cascade=Tkinter.Menu(menuFichier,tearoff=0) + menuFichier.add_cascade(label="Patrons",menu=menu_cascade) for ss_menu in self.liste.keys(): - ssmenu=Tkinter.Menu(menu_cascade,tearoff=0) - menu_cascade.add_cascade(label=ss_menu,menu=ssmenu) - for fichier in self.liste[ss_menu]: + ssmenu=Tkinter.Menu(menu_cascade,tearoff=0) + menu_cascade.add_cascade(label=ss_menu,menu=ssmenu) + for fichier in self.liste[ss_menu]: ssmenu.add_command(label=fichier,command= lambda self=self, l=fichier:self.ouvre(l)); def ouvre(self,label): diff --git a/Editeur/newsimppanel.py b/Editeur/newsimppanel.py index 9b60b661..ea414a03 100644 --- a/Editeur/newsimppanel.py +++ b/Editeur/newsimppanel.py @@ -74,18 +74,11 @@ class newSIMPPanel(panels.OngletPanel): if self.parent.modified == 'n' : self.parent.init_modif() self.node.item.set_valeur(name) 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() def record_valeur(self,name=None,mess='Valeur du mot-clé enregistrée'): """ Enregistre val comme valeur de self.node.item.object - en evaluant l item et en le validant + en evaluant l item et en le validant Si name n'est pas renseigné, la valeur """ if self.parent.modified == 'n' : self.parent.init_modif() @@ -98,30 +91,16 @@ class newSIMPPanel(panels.OngletPanel): if valeurentree == '': valeurentree=None valeur,validite=self.node.item.eval_valeur(valeurentree) if not validite : - valeur= self.entry.get() - commentaire = "impossible d'évaluer : %s " %`valeurentree` - self.parent.appli.affiche_infos(commentaire) - + valeur= self.entry.get() + commentaire = "impossible d'évaluer : %s " %`valeurentree` + self.parent.appli.affiche_infos(commentaire) + if validite : - if self.node.item.is_list() : - validite=self.node.item.valide_liste_complete(valeur) - commentaire=self.node.item.info_erreur_liste() - else : - validite=self.node.item.valide_item(valeur) - commentaire=self.node.item.info_erreur_item() + validite,commentaire=self.node.item.valide_val(valeur) if validite : self.node.item.set_valeur(valeur) 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() else : self.parent.appli.affiche_infos(commentaire) @@ -200,7 +179,7 @@ class newSIMPPanel(panels.OngletPanel): if not self.parent.appli.dict_reels.has_key(clefobj): self.parent.appli.dict_reels[clefobj] = {} self.parent.appli.dict_reels[clefobj][clef]=texte_valeur - self.parent.appli.dict_reels[clefobj] + self.parent.appli.dict_reels[clefobj] self.node.item.object.fin_modif() except: pass diff --git a/Editeur/options.py b/Editeur/options.py index b4b0f7db..9d0da1e4 100644 --- a/Editeur/options.py +++ b/Editeur/options.py @@ -37,8 +37,9 @@ class OPTIONS: ("Affichage commandes",(("alphabétique",'&affichage_alpha'),("groupes",'&affichage_grp'))), #("Couleur",(("fond",'change_fond'),("barre",'change_barre'))), # ("Catalogue développeur",'choix_cata_developpeur'), - ('Paramètres Eficas','affichage_fichier_ini'), - + ('Paramètres Eficas','affichage_fichier_ini'), + ('Paramètres Affichage','affichage_style_ini'), + ] ) ] @@ -55,15 +56,15 @@ class OPTIONS: affichage_commandes="groupes" if hasattr(panels,'panneauCommande'): panel=panels.panneauCommande - parent=panel.parent - if parent != None : - parent.create_panel(parent.node_selected) - # si on a un panel avec plusieurs onglets - # on affiche Commande - try : - parent.panel_courant.nb.selectpage("Commande") - except : - pass + parent=panel.parent + if parent != None : + parent.create_panel(parent.node_selected) + # si on a un panel avec plusieurs onglets + # on affiche Commande + try : + parent.panel_courant.nb.selectpage("Commande") + except : + pass def affichage_alpha(self): @@ -71,15 +72,15 @@ class OPTIONS: affichage_commandes="alphabetic" if hasattr(panels,'panneauCommande'): panel=panels.panneauCommande - parent=panel.parent - if parent != None : - parent.create_panel(parent.node_selected) - # si on a un panel avec plusieurs onglets - # on affiche Commande - try : - parent.panel_courant.nb.selectpage("Commande") - except : - pass + parent=panel.parent + if parent != None : + parent.create_panel(parent.node_selected) + # si on a un panel avec plusieurs onglets + # on affiche Commande + try : + parent.panel_courant.nb.selectpage("Commande") + except : + pass def change_fond(self): from tkColorChooser import askcolor @@ -124,4 +125,8 @@ class OPTIONS: def affichage_fichier_ini(self): - self.appli.bureau.affichage_fichier_ini() + self.appli.CONFIGURATION.affichage_fichier_ini() + + + def affichage_style_ini(self): + self.appli.CONFIGStyle.affichage_style_ini() diff --git a/Editeur/panels.py b/Editeur/panels.py index 3c554baf..3b84a1ba 100644 --- a/Editeur/panels.py +++ b/Editeur/panels.py @@ -81,9 +81,9 @@ class Panel(Frame) : # On termine la suppression de facon brutale (objets Tk et non Tk) for k in self.__dict__.keys(): # il est plus prudent de ne pas détruire le lien sur le Node - # si on voulait mettre l'attribut node à None, il faudrait - # que tous les appels à node.parent.select() apparaissent après - # toutes les autres actions liées au panel (node.item.isglobal(), ...) + # si on voulait mettre l'attribut node à None, il faudrait + # que tous les appels à node.parent.select() apparaissent après + # toutes les autres actions liées au panel (node.item.isglobal(), ...) if k != 'node' : setattr(self,k,None) def creer_boutons(self): @@ -297,29 +297,32 @@ class OngletPanel(Panel) : return if OngletPanel.panelbind == None: return - OngletPanel.panelbind.unbind_all("") - OngletPanel.panelbind.unbind_all("") - OngletPanel.panelbind.unbind_all("") - OngletPanel.panelbind.unbind_all("") + try: + OngletPanel.panelbind.unbind_all("") + OngletPanel.panelbind.unbind_all("") + OngletPanel.panelbind.unbind_all("") + OngletPanel.panelbind.unbind_all("") + except: + pass OngletPanel.panelbind = None def commande_up(self,num): #print "commande_up de panels pour ", num try : - OngletPanel.panelbind.selectpage(num) + OngletPanel.panelbind.selectpage(num) pageNew=OngletPanel.panelbind.page(num) pageNew.focus_set() except : - pass + pass def affiche(self): page=self.nb.getcurselection() self.nb.page(page).focus_set() if page == 'Concept': try: -# _any est un pointeur sur entry -# component est une methode de pmw -# a priori, jamais ok +# _any est un pointeur sur entry +# component est une methode de pmw +# a priori, jamais ok self._any.component('entry').focus_set() except: pass @@ -376,6 +379,7 @@ class OngletPanel(Panel) : Liste.MCbox.bind("",self.parent.appli.efface_aide) if len(liste_mc) > 0 : Liste.surligne(liste_mc[0]) + self.Liste=Liste def makeCommentairePage(self,page): label = Label(page,text = "Insérer un commentaire :") @@ -414,6 +418,7 @@ class OngletPanel(Panel) : bulle_aide="""Double-cliquez sur la commande que vous voulez ajouter au jeu de commandes""" Liste.MCbox.bind("", lambda e,s=self,a=bulle_aide : s.parent.appli.affiche_aide(e,a)) Liste.MCbox.bind("",self.parent.appli.efface_aide) + self.liste_command=Liste global panneauCommande panneauCommande=self @@ -477,11 +482,9 @@ class OngletPanel(Panel) : # les frame ... self.frame_comment = Frame(page,bd=1,relief='raised') self.frame_param = Frame(page,bd=1,relief='raised') - #self.frame_eval = Frame(page,bd=1,relief='raised') self.frame_boutons = Frame(page,bd=1,relief='raised') self.frame_comment.place(relx=0,rely=0,relwidth=1,relheight=0.40) self.frame_param.place(relx=0,rely=0.40,relwidth=1,relheight=0.40) - #self.frame_eval.place(relx=0,rely=0.56,relwidth=1,relheight=0.28) self.frame_boutons.place(relx=0,rely=0.84,relwidth=1,relheight=0.16) # remplissage de la frame commentaire Label(self.frame_comment,text = "Insérer un commentaire :").place(relx=0.1,rely=0.5,anchor='w') @@ -503,17 +506,6 @@ class OngletPanel(Panel) : command = self.ajout_parametre) but_param_avant.place(relx=0.45,rely=0.3,anchor='w',relwidth=0.45) but_param_apres.place(relx=0.45,rely=0.7,anchor='w',relwidth=0.45) - # remplissage de la frame eval - #Label(self.frame_eval,text="Insérer un paramètre EVAL :").place(relx=0.1,rely=0.5,anchor='w') - #Label(self.frame_eval,text='Non encore disponible').place(relx=0.6,rely=0.5,anchor='w') - #but_eval_avant = Button(self.frame_eval, - # text = "AVANT "+self.node.item.get_nom(), - # command = lambda s=self :s.ajout_parametre_eval(ind = 'before')) - #but_eval_apres = Button(self.frame_eval, - # text = "APRES "+self.node.item.get_nom(), - # command = self.ajout_parametre_eval) - #but_eval_avant.place(relx=0.6,rely=0.3,anchor='w',relwidth=0.3) - #but_eval_apres.place(relx=0.6,rely=0.7,anchor='w',relwidth=0.3) # remplissage de la frame boutons Button(self.frame_boutons, text="Commentariser toute la commande", diff --git a/Editeur/panelsSalome.py b/Editeur/panelsSalome.py index d780a7c8..6e18abeb 100644 --- a/Editeur/panelsSalome.py +++ b/Editeur/panelsSalome.py @@ -21,11 +21,8 @@ from uniqueassdpanel import UNIQUE_ASSD_Panel_Reel from Noyau.N_CR import justify_text import traceback -#import SalomePyQt import salome # CS_pbruno à poubelliser import images -#import SMESH_utils -#sgQt=SalomePyQt.SalomePyQt() @@ -45,7 +42,7 @@ import images # une fonction portant son nom # Exemple de particularisation d un panel : # Supposons que l on veuille particulariser la commande -# - LIRE_MAILLAGE_UNITE +# - LIRE_MAILLAGE_UNITE # le panel initial a pour classe UNIQUE_BASE_Panel # il suffit d'ajouter dans la classe derivée SALOME_UNIQUE_BASE_Panel # une fonction SALOME_LIRE_MAILLAGE_UNITE @@ -54,46 +51,44 @@ import images class SALOME_SHELLPanel (SHELLPanel): - "" + "" class SALOME_FONCTION_Panel (FONCTION_Panel): - "" + "" class SALOME_PLUSIEURS_INTO_Panel (PLUSIEURS_INTO_Panel): - "" + "" class SALOME_PLUSIEURS_ASSD_Panel (PLUSIEURS_ASSD_Panel): - "" + "" class SALOME_UNIQUE_INTO_Panel (UNIQUE_INTO_Panel): - "" + "" class SALOME_UNIQUE_SDCO_Panel (UNIQUE_SDCO_Panel): - "" + "" class SALOME_UNIQUE_ASSD_Panel (UNIQUE_ASSD_Panel): - "" + "" class SALOME_UNIQUE_COMP_Panel (UNIQUE_COMP_Panel): - "" + "" class SALOME_UNIQUE_ASSD_Panel_Reel (UNIQUE_ASSD_Panel_Reel): - "" + "" # ------------------------------------------------------------------------------# # classe SALOME_PLUSIEURS_BASE_Panel # # Commandes modifiées : -# - AFFE_CHAR_MECA_DDL_IMPO_GROUP_NO +# - AFFE_CHAR_MECA_DDL_IMPO_GROUP_NO # Methodes surchargées : -# - makeValeurPage(self,page) +# - makeValeurPage(self,page) # # ------------------------------------------------------------------------------# class SALOME_PLUSIEURS_BASE_OR_UNELISTE_Panel(PLUSIEURS_BASE_OR_UNELISTE_Panel): - "" - - + "" class SALOME_PLUSIEURS_BASE_Panel(PLUSIEURS_BASE_Panel): @@ -141,8 +136,6 @@ class SALOME_PLUSIEURS_BASE_Panel(PLUSIEURS_BASE_Panel): self.c = Button( self.frame_choix, text='Visualiser',command=self.displayInSalomeGeom ) self.c.place( relx=0.3, rely=0.0,relwidth=0.55) - #self.c.place(relx=0.08,rely=0.55,relwidth=0.35) - #self.c.place(relx=0.08,rely=0.55 ) def displayInSalomeGeom( self ): if self.selected_valeur: @@ -151,318 +144,15 @@ class SALOME_PLUSIEURS_BASE_Panel(PLUSIEURS_BASE_Panel): self.parent.appli.affiche_infos(msgError) -""" -class SALOME_PLUSIEURS_BASE_Panel(PLUSIEURS_BASE_Panel): - - def convertit_group_no_from_salome(self,liste_in): - newr=[] - #try: - if ( 1 == 1 ) : - for entree in liste_in : - travail=[] - travail.append(entree) - entryname_list=SMESH_utils.entryToName(salome.myStudy,travail) - entreeName=entryname_list[0] - if dict_geom_numgroupe.has_key(entreeName): - r=dict_geom_numgroupe[entreeName] - else: - r=SMESH_utils.getAsterGroupNo(salome.myStudy,travail) - dict_geom_numgroupe[entreeName]=r - for i in r : - newr.append(i) - #except: - else : - print "pas de groupe de noeuds associé" - showerror("Pas de groupe associé","Cet Objet ne peut pas être défini comme un ensemble de groupe de noeuds") - return newr - - def convertit_group_maille_from_salome(self,liste_in): - newr=[] - #try: - if [ 1 == 1 ]: - print liste_in - for entree in liste_in : - travail=[] - travail.append(entree) - entryname_list=SMESH_utils.entryToName(salome.myStudy,travail) - entreeName=entryname_list[0] - if dict_geom_numgroupe.has_key(entreeName): - r=dict_geom_numgroupe[entreeName] - else: - r=SMESH_utils.getAsterGroupMa(salome.myStudy,travail) - dict_geom_numgroupe[entreeName]=r - if r != None : - for i in r : - newr.append(i) - #except: - else : - print "pas de groupe de maille associé" - showerror("Pas de groupe associé","Cet Objet ne peut pas être défini comme un ensemble de groupe de maille") - return newr - - def convertit_entrees_en_valeurs(self,entrychaine): - if SALOME_PLUSIEURS_BASE_OR_UNELISTE_Panel.__dict__.has_key(self.clef_fonction): - print 'CS_pbruno AAAAAAAAAAAAA' - valeur=apply(SALOME_PLUSIEURS_BASE_OR_UNELISTE_Panel.__dict__[self.clef_fonction],(self,entrychaine)) - else : - if (self.clef_fonction.find("GROUP_NO") != -1) and (self.clef_fonction.find("GROUP_MA") != -1) : - print 'CS_pbruno BBBBBBBBBBBBBBBBBBB' - if (self.clef_fonction.find("GROUP_NO") < self.clef_fonction.find("GROUP_MA")) : - print 'CS_pbruno CCCCCCCCCCCCCCCCCCCCCCCCCC' - valeur=self.convertit_group_maille_from_salome(entrychaine) - else : - print 'CS_pbruno DDDDDDDDDDDDDDDDDDDDDDDDD' - valeur=self.convertit_group_no_from_salome(entrychaine) - elif self.clef_fonction.find("GROUP_NO") != -1 : - print 'CS_pbruno EEEEEEEEEEEEEEEEEEEEEEEEE' - valeur=self.convertit_group_no_from_salome(entrychaine) - else : - print 'CS_pbruno FFFFFFFFFFFFFFFFFFFFFFFF' - if self.clef_fonction.find("GROUP_MA") != -1 : - print 'CS_pbruno GGGGGGGGGGGGGGGGGGGGGGGGGGG' - valeur=self.convertit_group_maille_from_salome(entrychaine) - else : - print 'CS_pbruno HHHHHHHHHHHHHHHHHHHHHH' - print "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - print "Pb pas de fonction de conversion de la valeur Salome en valeur Aster" - print "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - valeur=[] - print "VALEUR", valeur - return valeur - - def sup_valeur_from_salome(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() - liste_valeurs_salome=self.Liste_valeurs_salome.get_liste() - entrychaine=salome.sg.getAllSelected() - - try: - valeur = self.convertit_entrees_en_valeurs(entrychaine) - for i in valeur : - if i in liste_valeurs : - liste_valeurs.remove(i) - print "enleve" , i - except: - # la valeur sélectionnée n'est pas dans la liste - pass - - entryname_list=SMESH_utils.entryToName(salome.myStudy,entrychaine) - self.entrygroupe.delete(0,END) - self.sortie.delete(0,END) - for entryname in entryname_list: - try: - liste_valeurs_salome.remove(entryname) - except: - print "la valeur ", entryname, "n est pas dans la liste" - entryname=entryname + " " - self.sortie.insert(0,entryname) - self.selected_valeur = None - self.Liste_valeurs.put_liste(liste_valeurs) - self.Liste_valeurs_salome.put_liste(liste_valeurs_salome) - self.recalcule() - - def visu_in_salome(self): - liste_valeurs = self.Liste_valeurs.get_liste() - entryname_list=SMESH_utils.VisuGroupe(salome.myStudy,liste_valeurs) - - def visu3D_in_salome(self): - liste_valeurs = self.Liste_valeurs.get_liste() - entryname_list=SMESH_utils.VisuGroupe(salome.myStudy,liste_valeurs) - - def recalcule(self): - liste_valeurs_salome=self.Liste_valeurs_salome.get_liste() - groups={} - liste_valeurs = self.Liste_valeurs.get_liste() - for valeur in liste_valeurs_salome: - r=dict_geom_numgroupe[valeur] - for i in r : - if i not in liste_valeurs : - liste_valeurs.append(i) - self.Liste_valeurs.put_liste(liste_valeurs) - - - def add_valeur_from_salome(self,name=None): - entrychaine=salome.sg.getAllSelected() - self.sortie.delete(0,END) - self.entrygroupe.delete(0,END) - if entrychaine != '': - entryname_list=SMESH_utils.entryToName(salome.myStudy,entrychaine) - touteslesvaleurs = self.convertit_entrees_en_valeurs(entrychaine) - - valeur=[] - liste_valeurs = self.Liste_valeurs.get_liste() - for i in touteslesvaleurs: - if i not in liste_valeurs: - valeur.append(i) - - if valeur==[]: - entryname_list=[] - - liste_valeurs_salome = self.Liste_valeurs_salome.get_liste() - for entryname in entryname_list: - if entryname not in liste_valeurs_salome: - liste_valeurs_salome.append(entryname) - entryname=entryname + " " - self.entrygroupe.insert(0,entryname) - self.Liste_valeurs_salome.put_liste(liste_valeurs_salome) - - if self.node.item.wait_reel(): - print "wait_reel()" - valeur = self.traite_reel(valeur) - if self.node.item.wait_geom(): - print "wait_geom()" - val,test1 = valeur,1 - else: - print "else wait" - 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 - if type(val) == type([]): - for groupe in val: - liste_valeurs.append(groupe) - else: - liste_valeurs.append(val) - self.Liste_valeurs.put_liste(liste_valeurs) - 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é") - - - 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() - self.clef_fonction= self.node.item.clef_fonction - l_valeurs = self.node.item.GetListeValeurs() - - 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.0,rely=0.0,relwidth=0.35,relheight=0.95) - - self.frame_choix = Frame(self.frame_right) - self.frame_choix.place(relx=0.0,rely=0.0,relwidth=1,relheight=0.9) - self.frame_valeurs_salome = Frame(self.frame_right) - self.frame_valeurs_salome.place(relx=0.02,rely=0.7,relwidth=0.9,relheight=0.3) - - self.frame_boutons = Frame(self.frame2) - self.frame_boutons.place(relx=0.1,rely=0.,relwidth=0.5,relheight=1.) - self.frame_aide = Frame(self.frame2) - self.frame_aide.place(relx=0.6,rely=0.,relwidth=0.5,relheight=1) - - for fram in (self.frame1,self.frame2,self.frame_right,self.frame_valeurs, - self.frame_choix,self.frame_aide,self.frame_boutons): - fram.bind("",lambda e,s=self,a=bulle_aide : s.parent.appli.affiche_aide(e,a)) - fram.bind("",self.parent.appli.efface_aide) - - # création des objets dans les frames - liste_commandes_valeurs = (("",self.selectValeur), - ("",self.deselectValeur), - ("",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)") - - # PN : pour ajouter les validators - self.make_entry(frame = self.frame_choix,command = self.add_valeur_plusieurs_base,y=0.55) - - bouton_valeurs_fichier = Button(self.frame_choix, - text="Importer ...", - command=self.select_in_file) - bouton_valeurs_fichier.place(relx=0.28,rely=0.65,relwidth=0.6) - - self.ajout_valeurs = None - self.b = Button(self.frame_choix,text='ajout select.',command=self.add_valeur_from_salome) - - self.b.place(relx=0.03,rely=0.05,relwidth=0.35) - self.entrygroupe = Entry(self.frame_choix,relief='sunken') - self.entrygroupe.place(relx=0.4,rely=0.05,relwidth=0.6) - - self.a = Button(self.frame_choix,text='enlev. select.',command=self.sup_valeur_from_salome) - self.a.place(relx=0.03,rely=0.2,relwidth=0.35) - self.sortie = Entry(self.frame_choix,relief='sunken') - self.sortie.place(relx=0.4,rely=0.2,relwidth=0.6) - self.c = Button(self.frame_choix,text='Visualiser',command=self.visu_in_salome) - self.c.place(relx=0.03,rely=0.35,relwidth=0.35) - - self.genea =self.node.item.get_genealogie() - print self.genea - if "AFFE_CARA_ELEM" in self.genea : - self.d=Button(self.frame_choix,text='Visu 3D',command=self.visu3D_in_salome) - self.d.place(relx=0.47,rely=0.35,relwidth=0.35) - - l_salome_valeurs=self.node.item.get_salome_valeurs() - self.Liste_valeurs_salome=ListeChoix(self,self.frame_valeurs_salome,l_salome_valeurs, - liste_commandes = liste_commandes_valeurs, - titre="Valeur(s) Salome actuelle(s) ") - self.Liste_valeurs_salome.affiche_liste() - - - # boutons Ajouter et Supprimer - bouton_add = Button(self.frame_choix, - image = images.get_image('arrow_left'), - command = self.add_valeur_plusieurs_base) - bouton_sup = Button(self.frame_choix, - image = images.get_image('arrow_right'), - command = self.sup_valeur_sans_into) - bouton_add.place(relx=0.08,rely=0.55) - bouton_sup.place(relx=0.08,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) - -""" # ------------------------------------------------------------------------------# # classe SALOME_UNIQUE_BASE_Panel # # Commandes modifiées : -# - LIRE_MAILLAGE_UNITE +# - LIRE_MAILLAGE_UNITE # Methodes surchargées : -# - makeValeurPage(self,page) +# - makeValeurPage(self,page) # # ------------------------------------------------------------------------------# @@ -519,10 +209,10 @@ class SALOME_UNIQUE_BASE_Panel(UNIQUE_BASE_Panel): SO = None if SO is not None: - myBuilder = salome.myStudy.NewBuilder() + myBuilder = salome.myStudy.NewBuilder() ok, AtName = myBuilder.FindAttribute(SO,"AttributeName") - if ok: - EntryName=AtName.Value() + if ok: + EntryName=AtName.Value() if EntryName != '': self.entry2.insert(0,EntryName) @@ -539,7 +229,7 @@ class SALOME_UNIQUE_BASE_Panel(UNIQUE_BASE_Panel): # unite=self.node.item.get_valeur() # entrychaine=salome.sg.getAllSelected() # if entrychaine != '': -# self.entry2.delete(0,END) +# self.entry2.delete(0,END) # try: # SO = salome.myStudy.FindObjectID(entrychaine[0]) @@ -548,7 +238,7 @@ class SALOME_UNIQUE_BASE_Panel(UNIQUE_BASE_Panel): # SO = None # if SO != None: -# myBuilder = salome.myStudy.NewBuilder() +# myBuilder = salome.myStudy.NewBuilder() # boo,FileAttr = myBuilder.FindAttribute(SO,"AttributeComment") # # FileName='' @@ -617,11 +307,11 @@ class SALOME_UNIQUE_BASE_Panel(UNIQUE_BASE_Panel): if SALOME_UNIQUE_BASE_Panel.dict_fichier_unite.has_key(unite): associe=SALOME_UNIQUE_BASE_Panel.dict_fichier_unite[unite][1:] - self.entry2.delete(0,END) - if associe != "" : + self.entry2.delete(0,END) + if associe != "" : self.entry2.insert(0,associe) else: - self.entry2.delete(0,END) + self.entry2.delete(0,END) # aide associée au panneau self.frame_valeur.update() @@ -638,16 +328,16 @@ class SALOME_UNIQUE_BASE_Panel(UNIQUE_BASE_Panel): #______________________________________________________________________________________ dict_classes_salome = { SHELLPanel : SALOME_SHELLPanel, FONCTION_Panel : SALOME_FONCTION_Panel, - PLUSIEURS_INTO_Panel : SALOME_PLUSIEURS_INTO_Panel, - PLUSIEURS_ASSD_Panel : SALOME_PLUSIEURS_ASSD_Panel, - PLUSIEURS_BASE_Panel : SALOME_PLUSIEURS_BASE_Panel, - PLUSIEURS_BASE_OR_UNELISTE_Panel : SALOME_PLUSIEURS_BASE_OR_UNELISTE_Panel, - UNIQUE_INTO_Panel : SALOME_UNIQUE_INTO_Panel, - UNIQUE_SDCO_Panel : SALOME_UNIQUE_SDCO_Panel, - UNIQUE_ASSD_Panel : SALOME_UNIQUE_ASSD_Panel, - UNIQUE_ASSD_Panel_Reel : SALOME_UNIQUE_ASSD_Panel_Reel, - UNIQUE_COMP_Panel : SALOME_UNIQUE_COMP_Panel, - UNIQUE_BASE_Panel : SALOME_UNIQUE_BASE_Panel} + PLUSIEURS_INTO_Panel : SALOME_PLUSIEURS_INTO_Panel, + PLUSIEURS_ASSD_Panel : SALOME_PLUSIEURS_ASSD_Panel, + PLUSIEURS_BASE_Panel : SALOME_PLUSIEURS_BASE_Panel, + PLUSIEURS_BASE_OR_UNELISTE_Panel : SALOME_PLUSIEURS_BASE_OR_UNELISTE_Panel, + UNIQUE_INTO_Panel : SALOME_UNIQUE_INTO_Panel, + UNIQUE_SDCO_Panel : SALOME_UNIQUE_SDCO_Panel, + UNIQUE_ASSD_Panel : SALOME_UNIQUE_ASSD_Panel, + UNIQUE_ASSD_Panel_Reel : SALOME_UNIQUE_ASSD_Panel_Reel, + UNIQUE_COMP_Panel : SALOME_UNIQUE_COMP_Panel, + UNIQUE_BASE_Panel : SALOME_UNIQUE_BASE_Panel} dict_geom_numgroupe = { } dict_geom_numface = { } diff --git a/Editeur/plusieursassdpanel.py b/Editeur/plusieursassdpanel.py index e1885cef..88eea05d 100644 --- a/Editeur/plusieursassdpanel.py +++ b/Editeur/plusieursassdpanel.py @@ -75,30 +75,26 @@ class PLUSIEURS_ASSD_Panel(PLUSIEURS_Panel): ("",self.sup_valeur_sans_into)) liste_commandes_choix = (("",self.selectChoix), ("",self.deselectChoix), - # ("",self.add_valeur_sans_into)) ("",self.add_eval_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="<--", + self.bouton_add = Button(self.frame_boutons_fleches, image = images.get_image('arrow_left'), - # command = self.add_valeur_sans_into) command = self.add_eval_valeur_sans_into) - bouton_sup = Button(self.frame_boutons_fleches, - #text="-->", + self.bouton_sup = Button(self.frame_boutons_fleches, image = images.get_image('arrow_right'), command = self.sup_valeur_sans_into) - bouton_accepter = Button(self.frame_boutons, + self.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, + self.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): + self.bouton_add.place(relx=0.3,rely=0.35) + self.bouton_sup.place(relx=0.3,rely=0.65) + for but in (self.bouton_accepter,self.bouton_annuler): but.pack(side='left',padx=4) self.Liste_valeurs.affiche_liste() if len(l_valeurs) > 0 : @@ -111,7 +107,7 @@ class PLUSIEURS_ASSD_Panel(PLUSIEURS_Panel): def add_eval_valeur_sans_into(self,valeurentree=None): if valeurentree == None: - valeurentree = self.get_valeur() + valeurentree = self.get_valeur() valeur,validite=self.node.item.eval_valeur(valeurentree) if not validite : commentaire = "impossible d'évaluer : %s " %`valeurentree` diff --git a/Editeur/plusieursbasepanel.py b/Editeur/plusieursbasepanel.py index 2692c4c5..7483cfbd 100644 --- a/Editeur/plusieursbasepanel.py +++ b/Editeur/plusieursbasepanel.py @@ -121,52 +121,50 @@ class PLUSIEURS_BASE_Panel(PLUSIEURS_Panel): self.ajout_valeurs = None # boutons Ajouter et Supprimer - bouton_add = Button(self.frame_boutons_fleches, + self.bouton_add = Button(self.frame_boutons_fleches, image = images.get_image('arrow_left'), command = self.add_valeur_plusieurs_base) - bouton_sup = Button(self.frame_boutons_fleches, + self.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) + self.bouton_add.place(relx=0.3,rely=0.35) + self.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)) + 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() if len(l_valeurs) > 0 : liste_marque=l_valeurs[-1] self.Liste_valeurs.surligne(liste_marque) - self.selectValeur(liste_marque) + self.selectValeur(liste_marque) # boutons Accepter et Annuler - bouton_accepter = Button(self.frame_boutons, + self.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, + self.bouton_annuler = Button(self.frame_boutons, text = 'Annuler', command = self.annule_modifs_valeur) - bouton_accepter.place(relx=0.2, rely=0.2,relwidth=0.25) - bouton_annuler.place(relx=0.5, rely=0.2,relwidth=0.25) - #for but in (bouton_accepter,bouton_annuler): - # but.pack(side='left',padx=4) + self.bouton_accepter.place(relx=0.2, rely=0.2,relwidth=0.25) + self.bouton_annuler.place(relx=0.5, rely=0.2,relwidth=0.25) def affiche_parametre(self) : if self.node.item.get_liste_param_possible() != [ ]: txtparam="" - for param in self.node.item.get_liste_param_possible(): - txtparam=txtparam+repr(param)+"\n" - if txtparam=="": - showerror("Aucun parametre ","Pas de parametre de ce type") - else : - try : - self.self.fenetreparam.destroy() - except: - pass - self.fenetreparam=FenetreDeParametre( self, self.node.item, self.parent.appli, txtparam) + for param in self.node.item.get_liste_param_possible(): + txtparam=txtparam+repr(param)+"\n" + if txtparam=="": + showerror("Aucun parametre ","Pas de parametre de ce type") + else : + try : + self.self.fenetreparam.destroy() + except: + pass + self.fenetreparam=FenetreDeParametre( self, self.node.item, self.parent.appli, txtparam) def valid_valeur(self): self.add_valeur_plusieurs_base() @@ -182,32 +180,32 @@ class PLUSIEURS_BASE_Panel(PLUSIEURS_Panel): atraiter=[] if type(valeur) in (types.ListType,types.TupleType) : - indice = 0 + indice = 0 while (indice < len(valeur)): - v=valeur[indice] - if self.node.item.wait_complex : - if (v== 'RI' or v == 'MP'): - try : - t=tuple([v,valeur[indice+1],valeur[indice+2]]) - atraiter.append(t) - indice=indice+3 - except : - validite=0 - commentaire = "Veuillez entrer le complexe sous forme aster ou sous forme python" - self.parent.appli.affiche_infos(commentaire) - return - else : # ce n'est pas un tuple à la mode aster - atraiter.append(v) - indice = indice + 1 + v=valeur[indice] + if self.node.item.wait_complex : + if (v== 'RI' or v == 'MP'): + try : + t=tuple([v,valeur[indice+1],valeur[indice+2]]) + atraiter.append(t) + indice=indice+3 + except : + validite=0 + commentaire = "Veuillez entrer le complexe sous forme aster ou sous forme python" + self.parent.appli.affiche_infos(commentaire) + return + else : # ce n'est pas un tuple à la mode aster + atraiter.append(v) + indice = indice + 1 else: # on n'attend pas un complexe - atraiter.append(v) - indice=indice+1 + atraiter.append(v) + indice=indice+1 else: - atraiter.append(valeur) + atraiter.append(valeur) for valeur in atraiter : encorevalide=self.node.item.valide_item(valeur) - # qdsjfkllllllllllllllllll + # qdsjfkllllllllllllllllll if encorevalide : listecourante=self.Liste_valeurs.get_liste() encorevalide=self.node.item.valide_liste_partielle(valeur,listecourante) @@ -226,10 +224,10 @@ class PLUSIEURS_BASE_Panel(PLUSIEURS_Panel): 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) + 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) @@ -279,40 +277,6 @@ class PLUSIEURS_BASE_Panel(PLUSIEURS_Panel): self.entry.bind("",lambda e,c=command:c()) self.entry.focus() - #def make_entry(self,frame,command,x=0.28,y=0.2): - """ - Crée l'entry de saisie de la valeur souhaitée : distingue le - cas d'un complexe attendu, d'une autre valeur quelconque - """ - #print "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" - #print " " - #print "A priori on ne doit plus passer dans cette methode " - #print " " - #print "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" - #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("",lambda e,s=self:s.entry2.component('entry').focus) - # self.entry2.component('entry').bind("",lambda e,c=command:c()) - # self.entry1.component('entry').bind("",lambda e,s=self:s.entry2.component('entry').focus) - # self.entry2.component('entry').bind("",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.2,relwidth=0.6) - # self.entry.place(relx=0.28,rely=y,relwidth=0.6) - # self.entry.bind("",lambda e,c=command:c()) - # self.entry.bind("",lambda e,c=command:c()) - # self.entry.focus() - def get_valeur(self): """ Retourne la valeur saisie par l'utilisateur dans self.entry @@ -321,28 +285,43 @@ class PLUSIEURS_BASE_Panel(PLUSIEURS_Panel): if hasattr(self,'entry'): # Traitement d'une entree unique valeurentree = self.entry.get() - if (valeurentree == None or valeurentree ==""): - return None,0,"" - if (valeurentree[0] != "(") and (valeurentree.find(',') < len(valeurentree)): - valeurs=[] - for v in valeurentree.split(','): - vsimple,validite=self.node.item.eval_valeur(v) - # Pn If ajoute pour le panneau "double" - #if isinstance(vsimple,LASSD) : - # commentaire = "impossible de mélanger reels et liste prédéfinie" - # validite = 0 - # break - if validite : - valeurs.append(vsimple) - else: - commentaire = "impossible d'évaluer : %s " %`valeurentree` - break - valeur=valeurs - else: - valeur,validite=self.node.item.eval_valeur(valeurentree) - if not validite and commentaire == "": - commentaire = "impossible d'évaluer : %s " %`valeurentree` + if (valeurentree == None or valeurentree ==""): + return None,0,"" + + #On tente une evaluation globale + valeur,validite=self.node.item.eval_valeur(valeurentree) + if valeur == valeurentree: + #L'evaluation n'a rien donné : on a toujours la string + #on découpe la string sur le séparateur , si c'est possible + if valeurentree.find(',') != -1: + valeur=[] + for v in valeurentree.split(','): + vsimple,validite=self.node.item.eval_valeur(v) + valeur.append(vsimple) + return valeur,validite,commentaire + + + # if (valeurentree[0] != "(") and (valeurentree.find(',') < len(valeurentree)): + # valeurs=[] + # for v in valeurentree.split(','): + # vsimple,validite=self.node.item.eval_valeur(v) + # Pn If ajoute pour le panneau "double" + #if isinstance(vsimple,LASSD) : + # commentaire = "impossible de mélanger reels et liste prédéfinie" + # validite = 0 + # break + # if validite : + # valeurs.append(vsimple) + # else: + # commentaire = "impossible d'évaluer : %s " %`valeurentree` + # break + # valeur=valeurs + # else: + # valeur,validite=self.node.item.eval_valeur(valeurentree) + # if not validite and commentaire == "": + # commentaire = "impossible d'évaluer : %s " %`valeurentree` + # return valeur,validite,commentaire #else: # # Traitement d'une entree de type complexe # try: @@ -456,11 +435,11 @@ class PLUSIEURS_BASE_OR_UNELISTE_Panel(PLUSIEURS_BASE_Panel,UNIQUE_ASSD_Panel): liste_noms_sd = self.tri(liste_noms_sd) self.listbox = Pmw.ScrolledListBox(self.frame_haut, items=liste_noms_sd, - labelpos='n', - #label_text="Structures de données du type\n requis parl'objet courant :", - label_text="Listes du type\n requis parl'objet courant :", - listbox_height = 6, - dblclickcommand=lambda s=self,c=UNIQUE_ASSD_Panel.valid_valeur : s.choose_valeur_from_list(c)) + labelpos='n', + #label_text="Structures de données du type\n requis parl'objet courant :", + label_text="Listes du type\n requis parl'objet courant :", + listbox_height = 6, + dblclickcommand=lambda s=self,c=UNIQUE_ASSD_Panel.valid_valeur : s.choose_valeur_from_list(c)) self.listbox.place(relx=0.00,rely=0.00,relwidth=0.4) # On eneleve le label pour gagner de la place @@ -492,8 +471,8 @@ class PLUSIEURS_BASE_OR_UNELISTE_Panel(PLUSIEURS_BASE_Panel,UNIQUE_ASSD_Panel): self.Liste_valeurs = ListeChoix(self,self.frame_valeurs,l_valeurs, liste_commandes = liste_commandes_valeurs, titre="Valeur(s) non-prédéfinies(s)", - fonte_titre=None - ) + fonte_titre=None + ) for fram in (self.frame1,self.frame2,self.frame_bas,self.frame_haut,self.frame_valeurs, self.frame_fleches,self.frame_choix): @@ -539,8 +518,8 @@ class PLUSIEURS_BASE_OR_UNELISTE_Panel(PLUSIEURS_BASE_Panel,UNIQUE_ASSD_Panel): a=(3+8j) d_types = { 'TXM' : type('A'), 'R' : type(3.), - 'I' : type(0), - 'C' : type(a)} + 'I' : type(0), + 'C' : type(a)} # On enleve seulement ceux qu'on peut # Sur certaines listes, il est possible qu'on ne @@ -550,19 +529,19 @@ class PLUSIEURS_BASE_OR_UNELISTE_Panel(PLUSIEURS_BASE_Panel,UNIQUE_ASSD_Panel): typecherche = None for t in typespossibles: if t in d_types.keys() : - typecherche = d_types[t] - break + typecherche = d_types[t] + break for liste in liste_noms_sd: valeur,validite=self.node.item.eval_valeur(liste) - for mc in valeur.etape.mc_liste : - try : - if type(mc.valeur) in (types.ListType,types.TupleType) : - typeliste=type(mc.valeur[0]) - else : - typeliste=type(mc.valeur) - if type(mc.valeur[0]) == typecherche: - listefinale.append(liste) - except: - listefinale.append(liste) + for mc in valeur.etape.mc_liste : + try : + if type(mc.valeur) in (types.ListType,types.TupleType) : + typeliste=type(mc.valeur[0]) + else : + typeliste=type(mc.valeur) + if type(mc.valeur[0]) == typecherche: + listefinale.append(liste) + except: + listefinale.append(liste) return listefinale diff --git a/Editeur/plusieursintopanel.py b/Editeur/plusieursintopanel.py index cfad7288..ef2003e1 100644 --- a/Editeur/plusieursintopanel.py +++ b/Editeur/plusieursintopanel.py @@ -86,23 +86,23 @@ class PLUSIEURS_INTO_Panel(PLUSIEURS_Panel): 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, + self.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, + self.bouton_sup = Button(self.frame_boutons_fleches, #text="-->", image = images.get_image('arrow_right'), command = self.sup_valeur) - bouton_accepter = Button(self.frame_boutons, + self.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, + self.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): + self.bouton_add.place(relx=0.3,rely=0.35) + self.bouton_sup.place(relx=0.3,rely=0.65) + for but in (self.bouton_accepter,self.bouton_annuler): but.pack(side='left',padx=3) self.Liste_valeurs.affiche_liste() if len(l_valeurs) > 0 : @@ -117,7 +117,7 @@ class PLUSIEURS_INTO_Panel(PLUSIEURS_Panel): text = aide, justify='center', anchor='center') - #wraplength=int(self.frame_aide.winfo_width()*0.8)) + #wraplength=int(self.frame_aide.winfo_width()*0.8)) self.aide.place(relx=0.3,rely=0.5,anchor='center',relwidth=1) def get_aide(self): @@ -133,14 +133,14 @@ class PLUSIEURS_INTO_Panel(PLUSIEURS_Panel): 'C' : 'complexes'} type = mc.type[0] if not d_aides.has_key(type) : - if mc.min == mc.max: - return str(mc.min)+" valeur(s) est(sont) attendue(s)" + if mc.min == mc.max: + return str(mc.min)+" valeur(s) est(sont) attendue(s)" else : - return "entrez entre "+str(mc.min)+" et "+str(mc.max)+" valeurs" + return "entrez entre "+str(mc.min)+" et "+str(mc.max)+" valeurs" if mc.min == mc.max: - commentaire="Une liste de "+str(mc.min)+" "+d_aides[type]+" est attendue" + commentaire="Une liste de "+str(mc.min)+" "+d_aides[type]+" est attendue" else : - commentaire="Entre "+str(mc.min)+" et "+str(mc.max)+" valeurs de type "+d_aides[type]+" sont attendues" + commentaire="Entre "+str(mc.min)+" et "+str(mc.max)+" valeurs de type "+d_aides[type]+" sont attendues" aideval=self.node.item.aide() commentaire=commentaire + "\n" + aideval return commentaire diff --git a/Editeur/plusieurspanel.py b/Editeur/plusieurspanel.py index 7ff206a5..72161e0f 100644 --- a/Editeur/plusieurspanel.py +++ b/Editeur/plusieurspanel.py @@ -55,6 +55,8 @@ class PLUSIEURS_Panel(newSIMPPanel): l1_valeurs = self.Liste_valeurs.get_liste() else: l1_valeurs = liste + + #nettoyage de la liste l_valeurs=[] for val in l1_valeurs : if val != '' and val != None : @@ -88,28 +90,18 @@ class PLUSIEURS_Panel(newSIMPPanel): def add_valeur_sans_into(self,name=None,encorevalide=1): """ - Lit ce que l'utilisateur a saisi dans self.entry et cherche à - l'évaluer : + Tente d'ajouter la valeur fournie (name) à la liste courante : - si la valeur est acceptable, elle est ajoutée dans la liste des valeurs - sinon elle est refusée + encorevalide vaut 1 si le validateur trouve l item et la liste correctes 0 si le validateur trouve la valeur de l item incorrecte -1 si le validateur trouve la liste incorrecte """ - + valeur = name commentaire="Valeur incorrecte : ajout à la liste refusé" testvalide=1 - # Lecture de la zone de saisie et evaluation si nécessaire - if name != None : - valeur = name - else: - valeurentree = self.get_valeur() - if valeurentree == '': valeur=None - valeurentree,testvalide=self.node.item.eval_valeur(valeur) - if (not testvalide) : - commentaire = "impossible d'évaluer : %s " %`valeurentree` - # Pas de traitement des valeurs nulles ( a priori clic involontaire if (valeur == None or valeur =="") : commentaire = "Pas de saisie des valeurs nulles" @@ -118,17 +110,14 @@ class PLUSIEURS_Panel(newSIMPPanel): else : testtype = self.node.item.object.verif_type(valeur) if not testtype : - if valeur.__class__.__name__ in ( 'PARAMETRE', 'ITEM_PARAMETRE') : - testtype = 1 - else : commentaire ="Type de la valeur incorrecte" encorevalide=-2 - + if (encorevalide ==0) : commentaire=self.node.item.info_erreur_item() if (encorevalide == -1) : commentaire=self.node.item.info_erreur_liste() - # On traite le cas ou la liste n est pas valide pour un pb de cardinalite + # On traite le cas ou la liste n est pas valide pour un pb de cardinalite min,max = self.node.item.GetMinMax() if len(self.Liste_valeurs.get_liste()) >= max : commentaire="La liste a déjà atteint le nombre maximum d'éléments,ajout refusé" @@ -156,7 +145,6 @@ class PLUSIEURS_Panel(newSIMPPanel): else : commentaire ="Type de la valeur incorrecte" - #self.erase_valeur() self.parent.appli.affiche_infos(commentaire) def sup_valeur_sans_into(self,name=None): diff --git a/Editeur/readercata.py b/Editeur/readercata.py index 5b72e6b3..a68dff62 100644 --- a/Editeur/readercata.py +++ b/Editeur/readercata.py @@ -125,8 +125,10 @@ class READERCATA: self.update_barre() if self.appli.test == 0 : splash._splash.configure(text = "Fin import_cata: %d s" % time.clock()) - if not self.cata : showerror("Import du catalogue","Impossible d'importer le catalogue %s" %self.fic_cata) - + if not self.cata : + showerror("Import du catalogue","Impossible d'importer le catalogue %s" %self.fic_cata) + self.appli.quit() + sys.exit(1) # # analyse du catalogue (ordre des mots-clés) # diff --git a/Editeur/statusbar.py b/Editeur/statusbar.py index 4e5e2cd9..e3b809b8 100644 --- a/Editeur/statusbar.py +++ b/Editeur/statusbar.py @@ -25,8 +25,9 @@ import Tkinter import types class STATUSBAR: - def __init__(self,parent): + def __init__(self,parent,police): self.parent=parent + self.police=police 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, @@ -34,7 +35,7 @@ class STATUSBAR: text='', justify='left', relief='sunken', - height=2, + height=3, bg='gray95') self.label.pack(side='left',expand=1,fill='both') @@ -43,7 +44,7 @@ class STATUSBAR: texte_infos=texte[0:150] else : texte_infos=texte - self.label.configure(text=texte_infos) + self.label.configure(text=texte_infos,font=self.police) def reset_affichage_infos(self): """ Efface tout message présent dans le panneau en bas d'EFICAS """ diff --git a/Editeur/styles.py b/Editeur/styles.py index 669e6d72..dd90ee60 100644 --- a/Editeur/styles.py +++ b/Editeur/styles.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- import os import prefs import basestyle diff --git a/Editeur/treewidget.py b/Editeur/treewidget.py index 2222ae8e..2d813d29 100644 --- a/Editeur/treewidget.py +++ b/Editeur/treewidget.py @@ -28,7 +28,7 @@ from Ihm import CONNECTOR # __version__="$Name: $" -__Id__="$Id: treewidget.py,v 1.29 2005/11/29 17:39:50 eficas Exp $" +__Id__="$Id: treewidget.py,v 1.30.6.3 2006/05/29 07:12:38 cchris Exp $" # Fonte_Standard = fontes.standard @@ -60,7 +60,7 @@ class Tree : def page_down(self,event): event.widget.yview_scroll(1, "page") - + def unit_up(self,event): event.widget.yview_scroll(-1, "unit") @@ -116,8 +116,8 @@ class Tree : def supprime(self): """ supprime tous les éléments de l'arbre """ #print "supprime",self - self.canvas.unbind("",self.id_up) - self.canvas.unbind("",self.id_down) + self.canvas.unbind("",self.id_up) + self.canvas.unbind("",self.id_down) self.canvas.unbind("",self.id_um) self.canvas.unbind("",self.id_dm) self.canvas.unbind("<1>",self.id_s) @@ -339,18 +339,18 @@ class Node : def tag_move_nodes(self,y): """ Marque pour deplacement tous les noeuds au dela de l'ordonnée y """ - #print "tag_move_nodes",y + #print "tag_move_nodes",y self.canvas.dtag(ALL,'move') # on marque tous les ids au dela de y x0, y0, x1, y1 = self.canvas.bbox(ALL) - if y > y1: # pas d'objet a deplacer - return + if y > y1: # pas d'objet a deplacer + return self.canvas.addtag_overlapping('move',x0,y,x1,y1) def move_nodes(self,y,dy): """ Déplace de l'incrément dy les noeuds au dela de l'ordonnée y """ - #print "move_nodes",y,dy - self.tag_move_nodes(y) + #print "move_nodes",y,dy + self.tag_move_nodes(y) # on déplace tous les items de dy self.canvas.move('move',0,dy) @@ -359,7 +359,7 @@ class Node : en y et au dela Retourne la position du premier des noeuds deplaces """ - #print "draw_node",new_node,x,y + #print "draw_node",new_node,x,y self.tag_move_nodes(y) #if new_node.item.isactif(): #new_node.state = 'expanded' @@ -403,18 +403,18 @@ class Node : if self.displayed == 1 : self.dehighlight() def make_visible(self): - """ Rend l'objet self visible cad déplace le scroll pour que self soit dans - la fenêtre de visu + """ Rend l'objet self visible cad déplace le scroll pour que self + soit dans la fenêtre de visu """ lchild=self.last_child() self.tree.see((self.image_id,lchild.image_id)) def select_next(self,ind=0): """ on doit chercher à sélectionner dans l'ordre: - - son premier fils s'il est affiché - - son frère cadet s'il existe - - son oncle (benjamin de son père) - - ... appel récursif ... + - son premier fils s'il est affiché + - son frère cadet s'il existe + - son oncle (benjamin de son père) + - ... appel récursif ... """ if self.state=='expanded' and len(self.children) > ind: self.children[ind].select() @@ -427,33 +427,33 @@ class Node : except: self.children[0].select() except : - if self.parent is self.tree: - pass - else : - self.parent.select_next(index) + if self.parent is self.tree: + pass + else : + self.parent.select_next(index) def select_mot_prev(self): index = self.parent.children.index(self) - 1 - try : - if index > -1 : - self.parent.children[index].select() - if self.parent.children[index].state=="expanded": - print len(self.parent.children[index].children) - if len(self.parent.children[index].children)!=0 : - max=len(self.parent.children[index].children) - 1 - self.parent.children[index].children[max].select() - else : - self.parent.children[index].select() - else : - self.parent.children[index].select() - elif self.parent is self.tree: - pass - else : + try : + if index > -1 : + self.parent.children[index].select() + if self.parent.children[index].state=="expanded": + print len(self.parent.children[index].children) + if len(self.parent.children[index].children)!=0 : + max=len(self.parent.children[index].children) - 1 + self.parent.children[index].children[max].select() + else : + self.parent.children[index].select() + else : + self.parent.children[index].select() + elif self.parent is self.tree: + pass + else : self.parent.select() except: - if self.parent is self.tree: - pass - else : + if self.parent is self.tree: + pass + else : self.parent.select_previous() @@ -462,14 +462,14 @@ class Node : try : if index > -1 : self.parent.children[index].select() - elif self.parent is self.tree: - pass - else : + elif self.parent is self.tree: + pass + else : self.parent.select() except: - if self.parent is self.tree: - pass - else : + if self.parent is self.tree: + pass + else : self.parent.select_previous() def select_previous(self): @@ -482,9 +482,9 @@ class Node : self.parent.children[index].select() except: #self.parent.select() - if self.parent is self.tree: - pass - else : + if self.parent is self.tree: + pass + else : self.parent.select_previous() def popup(self,event=None): @@ -626,6 +626,11 @@ class Node : """ Met en surbrillance self""" if hasattr(self,'label'): self.label.configure(fg='white',bg='#00008b') + if (hasattr(self.item,'get_nom') and hasattr( self.appli, 'salome')) : + if self.item.get_nom() == "AFFE_CARA_ELEM": + self.item.rmenu_specs=[("View3D", "visu_3D")] + self.tree.rmenu + def dehighlight(self,event=None): """ Rétablit l'affichage normal de self""" @@ -653,9 +658,9 @@ class Node : def deplieReplieNode(self): if self.state == 'expanded': - self.collapse() - else : - self.expand_node() + self.collapse() + else : + self.expand_node() def collapse(self,event = None): """ Collapse self et descendants et retrace self """ @@ -812,7 +817,7 @@ class Node : self.icone_id=None self.label=None self.text=None - self.displayed=0 + self.displayed=0 def efface(self): """ Efface du canvas les id associés à self : cad les siens et ceux @@ -831,7 +836,7 @@ class Node : try: self.canvas.addtag_overlapping('move',bbox1[0],self.y +10,bbox1[2],bbox1[3]) except: - print "Erreur dans move :" + print "Erreur dans move :" print self print self.item print self.item.getObject() @@ -854,7 +859,7 @@ class Node : try: child.trace_ligne() except: - print "Erreur dans trace_ligne :" + print "Erreur dans trace_ligne :" print child print child.item.getObject() diff --git a/Editeur/uniqueassdpanel.py b/Editeur/uniqueassdpanel.py index 6bff4bdf..bc777b76 100644 --- a/Editeur/uniqueassdpanel.py +++ b/Editeur/uniqueassdpanel.py @@ -94,9 +94,9 @@ class UNIQUE_ASSD_Panel(UNIQUE_Panel): if (min == 1 and min == max and len(liste_noms_sd)==1 ): if self.valeur_choisie.get() != liste_noms_sd[0]: if ('R' not in self.node.item.get_type()) : - self.valeur_choisie.set(liste_noms_sd[0]) + self.valeur_choisie.set(liste_noms_sd[0]) self.valid_valeur_automatique() - + self.frame_valeur = Frame(page) self.frame_valeur.pack(fill='both',expand=1) self.frame_valeur.bind("",lambda e,s=self,a=bulle_aide : s.parent.appli.affiche_aide(e,a)) @@ -118,7 +118,7 @@ class UNIQUE_ASSD_Panel(UNIQUE_Panel): self.display_valeur() if self.__class__.__name__ == 'UNIQUE_ASSD_Panel_Reel' : Label(self.frame_valeur,text='Valeur Réelle').place(relx=0.1,rely=0.9) - self.entry = Entry(self.frame_valeur,relief='sunken') + self.entry = Entry(self.frame_valeur,relief='sunken') self.entry.place(relx=0.28,rely=0.9,relwidth=0.6) self.entry.bind("",lambda e,c=self.valid_valeur_reel:c()) self.entry.bind("",lambda e,c=self.valid_valeur_reel:c()) @@ -137,15 +137,15 @@ class UNIQUE_ASSD_Panel(UNIQUE_Panel): """ mc = self.node.item.get_definition() try : - type = mc.type[0].__name__ + type = mc.type[0].__name__ except : type = str(mc.type[0]) if len(mc.type)>1 : for typ in mc.type[1:] : - try : - l=typ.__name__ - except: - l=str(typ) + try : + l=typ.__name__ + except: + l=str(typ) type = type + ' ou '+l commentaire="Un objet de type "+type+" est attendu" aideval=self.node.item.aide() @@ -161,6 +161,7 @@ class UNIQUE_ASSD_Panel(UNIQUE_Panel): if len(self.listbox.getcurselection()) == 0 : return choix = self.listbox.getcurselection()[0] self.valeur_choisie.set(choix) + self.listbox.component("listbox").focus_set() def choose_valeur_from_list(self,command): """ @@ -168,6 +169,7 @@ class UNIQUE_ASSD_Panel(UNIQUE_Panel): Exécute command """ if len(self.listbox.get()) == 0 : return + if len(self.listbox.getcurselection()) == 0 : return choix = self.listbox.getcurselection()[0] self.valeur_choisie.set(choix) apply(command,(),{}) @@ -188,7 +190,7 @@ class UNIQUE_ASSD_Panel(UNIQUE_Panel): """ valeur = self.node.item.get_valeur() if valeur == None or valeur == '' : return # pas de valeur à afficher ... - self.valeur_choisie.set(valeur.nom) + self.valeur_choisie.set(getattr(valeur,"nom","unknown")) def erase_valeur(self): pass diff --git a/Editeur/uniquebasepanel.py b/Editeur/uniquebasepanel.py index 1ac25668..4c6f89e9 100644 --- a/Editeur/uniquebasepanel.py +++ b/Editeur/uniquebasepanel.py @@ -72,8 +72,8 @@ class UNIQUE_BASE_Panel(UNIQUE_Panel): self.frame_valeur.update() self.aide = Label(self.frame_valeur, text = aide, - wraplength=int(self.frame_valeur.winfo_width()*0.8), - justify='center') + wraplength=int(self.frame_valeur.winfo_width()*0.8), + justify='center') self.aide.place(relx=0.5,rely=0.7,anchor='n') # bouton parametre bouton_parametres = Button(self.frame_valeur, text="Parametres", command=self.affiche_parametre) @@ -83,23 +83,23 @@ class UNIQUE_BASE_Panel(UNIQUE_Panel): def affiche_parametre(self) : if self.node.item.get_liste_param_possible() != [ ]: - txtparam="" - for param in self.node.item.get_liste_param_possible(): - txtparam=txtparam+repr(param)+"\n" - if txtparam=="": - showerror("Aucun parametre ","Pas de parametre de ce type") - else : - try : - self.fenetreparam.destroy() - except : - pass - self.fenetreparam=FenetreDeParametre( self, self.node.item, self.parent.appli, txtparam) + txtparam="" + for param in self.node.item.get_liste_param_possible(): + txtparam=txtparam+repr(param)+"\n" + if txtparam=="": + showerror("Aucun parametre ","Pas de parametre de ce type") + else : + try : + self.fenetreparam.destroy() + except : + pass + self.fenetreparam=FenetreDeParametre( self, self.node.item, self.parent.appli, txtparam) def destroy(self): try : - self.fenetreparam.destroy() + self.fenetreparam.destroy() except : - pass + pass Widget.destroy(self) def get_aide(self): diff --git a/Editeur/uniquecomppanel.py b/Editeur/uniquecomppanel.py index 08dff729..3aa09074 100644 --- a/Editeur/uniquecomppanel.py +++ b/Editeur/uniquecomppanel.py @@ -92,7 +92,7 @@ class UNIQUE_COMP_Panel(UNIQUE_Panel): self.aide = Label(self.frame_valeur, text = aide, wraplength=int(self.frame_valeur.winfo_width()*0.8), - justify='center') + justify='center') self.aide.place(relx=0.5,rely=0.9,anchor='n') # affichage de la valeur du MCS self.display_valeur() @@ -155,7 +155,7 @@ class UNIQUE_COMP_Panel(UNIQUE_Panel): l.append(string.atof(self.entry1.get())) l.append(string.atof(self.entry2.get())) except : - return None + return None return `tuple(l)` def erase_valeur(self): diff --git a/Editeur/uniqueintopanel.py b/Editeur/uniqueintopanel.py index 870b165f..da05fdce 100644 --- a/Editeur/uniqueintopanel.py +++ b/Editeur/uniqueintopanel.py @@ -71,7 +71,7 @@ class UNIQUE_INTO_Panel(UNIQUE_Panel): ("",self.record_valeur)) self.Liste_choix = ListeChoix(self,self.frame,l_choix, liste_commandes = liste_commandes, - titre="Valeurs possibles") + titre="Valeurs possibles",optionReturn="oui") self.Liste_choix.affiche_liste() def get_bulle_aide(self): diff --git a/Editeur/uniquesdcopanel.py b/Editeur/uniquesdcopanel.py index 55a30178..49ecc2a6 100644 --- a/Editeur/uniquesdcopanel.py +++ b/Editeur/uniquesdcopanel.py @@ -70,13 +70,16 @@ class UNIQUE_SDCO_Panel(UNIQUE_ASSD_Panel): 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.component("listbox").bind("",lambda e,s=self,c=self.valid_valeur : s.choose_valeur_from_list(c)) if liste_noms_sd != [] : self.listbox.place(relx=0.5,rely=0.3,relheight=0.4,anchor='center') - self.b_co = Pmw.OptionMenu(self.frame_valeur,labelpos='w',label_text = "Nouveau concept : ", items = ('NON','OUI'),menubutton_width=10) + self.b_co = Pmw.OptionMenu(self.frame_valeur,labelpos='w',label_text = "Nouveau concept : ", items = ('NON','OUI'), + menubutton_width=10) else : - self.b_co = Pmw.OptionMenu(self.frame_valeur,labelpos='w',label_text = "Nouveau concept : ", items = ('OUI','OUI'),menubutton_width=10) + self.b_co = Pmw.OptionMenu(self.frame_valeur,labelpos='w',label_text = "Nouveau concept : ", items = ('OUI',), + menubutton_width=10) # affichage du bouton 'Nouveau concept' - self.b_co.configure(command = lambda e,s=self : s.ask_new_concept()) + self.b_co.configure(command = self.ask_new_concept) if liste_noms_sd != [] : self.b_co.place(relx=0.05,rely=0.6,anchor='w') else : @@ -92,8 +95,8 @@ class UNIQUE_SDCO_Panel(UNIQUE_ASSD_Panel): self.frame_valeur.update() self.aide = Label(self.frame_valeur, text = aide, - wraplength=int(self.frame_valeur.winfo_width()*0.8), - justify='center') + 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() @@ -145,13 +148,6 @@ class UNIQUE_SDCO_Panel(UNIQUE_ASSD_Panel): mess = "Valeur du mot-clé non autorisée :"+cr.get_mess_fatal() self.reset_old_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): """ @@ -183,17 +179,8 @@ class UNIQUE_SDCO_Panel(UNIQUE_ASSD_Panel): mess = "Valeur du mot-clé non autorisée :"+cr.get_mess_fatal() self.reset_old_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): + def ask_new_concept(self,tag): """ 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 @@ -249,14 +236,7 @@ class UNIQUE_SDCO_Panel(UNIQUE_ASSD_Panel): 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() diff --git a/Editeur/widgets.py b/Editeur/widgets.py index 6989fd2a..9fba89dc 100644 --- a/Editeur/widgets.py +++ b/Editeur/widgets.py @@ -89,7 +89,7 @@ class Fenetre : self.but_save.place(relx=0.6,rely=0.5,anchor='center') # affichage du texte self.affiche_texte(self.texte) - self.zone_texte.config(state=DISABLED) + self.zone_texte.config(state=DISABLED) centerwindow(self.fenetre) self.fenetre.deiconify() @@ -129,7 +129,7 @@ class Fenetre : def save(self): """ Permet de sauvegarder le texte dans un fichier dont on a demandé le nom à l'utilisateur """ - file = asksaveasfilename(defaultextension = '.comm', + file = asksaveasfilename(parent=self.fenetre,defaultextension = '.comm', #initialdir = self.appli.CONFIGURATION.rep_user, initialdir = self.appli.CONFIGURATION.initialdir, title="Sauvegarde du "+self.titre) @@ -137,15 +137,15 @@ class Fenetre : if not save_in_file(file,self.texte,None) : showerror("Sauvegarde impossible", "Impossible de sauvegarder le texte dans le fichier spécifié\n"+ - "Vérifiez les droits d'écriture") + "Vérifiez les droits d'écriture",parent=self.fenetre) else: - showinfo("Sauvegarde effectuée","Sauvegarde effectuée dans le fichier %s" %file) + showinfo("Sauvegarde effectuée","Sauvegarde effectuée dans le fichier %s" %file,parent=self.fenetre) def destroy(self): try : - self.fenetre.destroy() - except : - pass + self.fenetre.destroy() + except : + pass class FenetreYesNo(Fenetre): def __init__(self,appli,titre="",texte="",yes="Yes",no="No"): @@ -197,7 +197,7 @@ class FenetreDeSelection(Fenetre): """ def __init__(self,panel,item,appli,titre="",texte="",cardinal=1): Fenetre.__init__(self,appli,titre=titre,texte=texte) - self.frame_boutons.place_forget() + self.frame_boutons.place_forget() self.frame_texte.place_forget() self.frame_texte.place(relx=0,rely=0,relwidth=1,relheight=0.8) self.frame_boutons.place(relheight=0.2,relx=0,rely=0.8,relwidth=1.) @@ -225,11 +225,11 @@ class FenetreDeSelection(Fenetre): # Replacement self.but_quit.place_forget() self.but_save.place_forget() - self.but_all = Button(self.frame_boutons,text = "Tout Sélectionner", command=self.tout) + self.but_all = Button(self.frame_boutons,text = "Tout Sélectionner", command=self.tout) self.but_save.place(relx=0.6,rely=0.6,anchor='center') self.but_quit.place(relx=0.8,rely=0.6,anchor='center') self.but_all.place(relx=0.7,rely=0.2,anchor='center') - self.choose_separateur('espace') + self.choose_separateur('espace') def get_separateurs_autorises(self): @@ -249,20 +249,20 @@ class FenetreDeSelection(Fenetre): def tout(self): liste=[] - texte=self.texte.splitlines() - for l in texte : - for mot in string.split(l,self.separateur): - if mot != '' and mot != ' ' and mot != self.separateur : - liste.append(mot) - self.traite_selection(liste) + texte=self.texte.splitlines() + for l in texte : + for mot in string.split(l,self.separateur): + if mot != '' and mot != ' ' and mot != self.separateur : + liste.append(mot) + self.traite_selection(liste) def traite_selection(self,liste=None): """ Cette méthode effectue tous les traitements nécessaires pour vérifier et affecter la liste de valeurs à l'objet réprésenté par self.item """ # Récupère la liste des chaines de caractères de la zone sélectionnée - message="" - if liste == None: + message="" + if liste == None: message,liste = self.recupere_liste() if self.test_probleme(message,"Sélectionnez des données") == 0: return @@ -381,7 +381,7 @@ class FenetreDeSelection(Fenetre): éléments dans le type voulu en cas de succès, sinon retourne None. """ liste_valeurs = [] - message = "" + message = "" for chaine in liste: if f_conversion: try: @@ -441,17 +441,17 @@ class FenetreDeParametre(Fenetre) : self.affiche_texte(self.texte) self.zone_texte.config(state="disabled") - # définition des boutons - self.frame_boutons = Frame(self.fenetre) - self.frame_boutons.place(relheight=0.3,relx=0,rely=0.65,relwidth=1.) - self.label1 = Label(self.frame_boutons,text="surligner la") - self.label2 = Label(self.frame_boutons,text="ligne entière") - self.label1.place(relx=0.1,rely=0) - self.label2.place(relx=0.1,rely=0.5) - self.but_quit = Button(self.frame_boutons,text = "Fermer",command=self.quit) - self.but_save = Button(self.frame_boutons,text = "Choisir",command = self.Choisir) - self.but_save.place(relx=0.6,rely=0,relheight=1) - self.but_quit.place(relx=0.8,rely=0,relheight=1) + # définition des boutons + self.frame_boutons = Frame(self.fenetre) + self.frame_boutons.place(relheight=0.3,relx=0,rely=0.65,relwidth=1.) + self.label1 = Label(self.frame_boutons,text="surligner la") + self.label2 = Label(self.frame_boutons,text="ligne entière") + self.label1.place(relx=0.1,rely=0) + self.label2.place(relx=0.1,rely=0.5) + self.but_quit = Button(self.frame_boutons,text = "Fermer",command=self.quit) + self.but_save = Button(self.frame_boutons,text = "Choisir",command = self.Choisir) + self.but_save.place(relx=0.6,rely=0,relheight=1) + self.but_quit.place(relx=0.8,rely=0,relheight=1) def Choisir(self): @@ -462,13 +462,13 @@ class FenetreDeParametre(Fenetre) : "Selectionner un parametre") l_param = "" for param in selection.splitlines(): - nomparam=param[0:param.find("=")-1] + nomparam=param[0:param.find("=")-1] if nomparam != '' : - l_param=l_param+nomparam+',' - self.parent.entry.delete(0,Tkinter.END) - self.parent.entry.insert(0,l_param[0:-1]) - self.parent.valid_valeur() - self.quit() + l_param=l_param+nomparam+',' + self.parent.entry.delete(0,Tkinter.END) + self.parent.entry.insert(0,l_param[0:-1]) + self.parent.valid_valeur() + self.quit() class Formulaire: """ @@ -476,6 +476,7 @@ class Formulaire: on affiche un formulaire à remplir par l'utilisateur """ def __init__(self,fen_pere,obj_pere=None,titre="",texte="",items=(),mode='query',commande=None): + self.resultat=0 if items in ((),[]) : return self.items = items self.titre = titre @@ -501,6 +502,10 @@ class Formulaire: self.d_validateurs['rep'] = self.repvalidator self.d_validateurs['file'] = self.filevalidator self.d_validateurs['cata']= self.catavalidator + self.d_validateurs['mot']= self.motvalidator + self.d_validateurs['mot2']= self.mot2validator + self.d_validateurs['mot3']= self.mot3validator + self.d_validateurs['mot4']= self.mot4validator def init_fenetre(self): """ @@ -544,18 +549,19 @@ class Formulaire: if len(item[0])>length_maxi : length_maxi = len(item[0]) window = self.fenetre.interior() for item in self.items : - if len(item) == 4 : + if len(item) == 4 : label,nature,nom_var,defaut = item - chaine="Yes" - chaine2="No" - else : + chaine="Yes" + chaine2="No" + else : label,nature,nom_var,defaut,chaine,chaine2 = item + # création de la frame fr_item = Frame(window,height=40,width=700) fr_item.pack(side='top',fill='x',expand=1) # création du label Label(fr_item,text = label).place(relx=0.05,rely=0.4) - if nature in ('rep','file','cata'): + if nature in ('rep','file','cata','mot','mot2','mot3','mot4'): # création de l'entry e_item = Entry(fr_item) e_item.place(relx=0.5,rely=0.4,relwidth=0.45) @@ -608,6 +614,27 @@ class Formulaire: # Validateurs des noms de répertoire, de fichiers et de catalogues # ------------------------------------------------------------------------------- + def motvalidator(self,text): + text2="("+text+")" + return self.motlongueurvalidator(text2,1) + + def mot2validator(self,text): + return self.motlongueurvalidator(text,2) + + def mot3validator(self,text): + return self.motlongueurvalidator(text,3) + + def mot4validator(self,text): + return self.motlongueurvalidator(text,4) + + def motlongueurvalidator(self,text,longueur): + try : + if ((text[0] != "(") or (text[-1] != ")")) : return 0 + if len(text.split(",")) != longueur : return 0 + return 1 + except : + return 0 + def repvalidator(self,text): """ Teste si text peut faire référence à un répertoire ou non @@ -693,7 +720,7 @@ class ListeChoix : self.titre = titre self.filtre = filtre self.optionReturn = optionReturn - self.fonte_titre=fonte_titre + self.fonte_titre=fonte_titre self.init() def init(self): @@ -753,8 +780,8 @@ class ListeChoix : mot="(" premier=1 for val in objet: - if (not premier): - mot=mot+"," + if (not premier): + mot=mot+"," else: premier=0 valtexte = self.parent.get_valeur_texte(val) @@ -806,15 +833,15 @@ class ListeChoix : try: self.dico_labels[self.arg_selected].configure(bg='gray95',fg='black') self.arg_selected = '' - except : - pass + except : + pass def surligne(self,marque): try : - self.highlightitem(self.dico_labels[marque]) + self.highlightitem(self.dico_labels[marque]) self.arg_selected = marque - except: - pass + except: + pass def chooseitemsurligne(self,mot,label,commande): """ Active la méthode de choix passée en argument""" @@ -834,32 +861,27 @@ class ListeChoix : showerror(raison.split('\n')[0],raison) def afficheMot(self,mot): - """ Pour contourner le bug sur l index """ - """ on commence par la methode dite normale """ - """ puis par la methode de contournement """ - """ puis rien du tout """ - #try : - if ( 1 == 1 ): - try: - labelsuivant=self.dico_labels[motsuivant] + """ Pour contourner le bug sur l index + on commence par la methode dite normale + puis par la methode de contournement + puis rien du tout + """ + try: + labelsuivant=self.dico_labels[mot] index = self.MCbox.index(labelsuivant) self.MCbox.see(index) - except : + except : posmot=self.dico_place[mot] totale=self.nBlabel + 0.0 self.MCbox.yview_moveto(posmot/totale) - else : - pass def selectNextItem(self,mot,label): index=self.liste.index(mot) indexsuivant=index+1 - if indexsuivant > len(self.liste) -1: - indexsuivant=0 + if indexsuivant > len(self.liste) -1: + indexsuivant=0 motsuivant=self.liste[indexsuivant] labelsuivant=self.dico_labels[motsuivant] - #index = self.MCbox.index(labelsuivant) - #self.MCbox.see(index) self.afficheMot(motsuivant) self.selectthis(motsuivant,labelsuivant,self.selection[2],) self.dontselect=1 @@ -869,14 +891,12 @@ class ListeChoix : indexprec=index-1 motprec=self.liste[indexprec] labelprec=self.dico_labels[motprec] - #index = self.MCbox.index(labelprec) - #self.MCbox.see(index) self.afficheMot(motprec) self.selectthis(motprec,labelprec,self.selection[2],) self.dontselect=1 def selectthis(self,mot,label,commande) : - self.clear_marque() + self.clear_marque() if self.selection != None : self.deselectitem(self.selection[1],self.selection[0],self.selection[2],) self.highlightitem(label) @@ -913,9 +933,9 @@ class ListeChoix : return lign def remove_selected_item(self): - try : + try : index=self.MCbox.index(self.selection[1]) - except : + except : index=self.MCbox.index(self.dico_labels[self.arg_selected] ) lign,col=map(int,string.split(index,'.')) del self.liste[lign-1] @@ -931,8 +951,6 @@ class ListeChoix : for arg in self.liste : if fnmatch.fnmatch(arg,filtre) or fnmatch.fnmatch(arg,FILTRE) : label=self.dico_labels[arg] - #index = self.MCbox.index(label) - #self.MCbox.see(index) self.afficheMot(arg) self.selectitem(arg,label,self.selection[2]) break @@ -952,7 +970,7 @@ class ListeChoix : for val in self.liste: # try: # v = eval(val) -# l.append(v) +# l.append(v) # except: l.append(val) return l diff --git a/Exemples/ex18/totalmod.comm b/Exemples/ex18/totalmod.comm index 43b77fcc..ff43600e 100755 --- a/Exemples/ex18/totalmod.comm +++ b/Exemples/ex18/totalmod.comm @@ -1487,7 +1487,7 @@ e_gre = DEFI_FONCTION ( NOM_PARA : 'TEMP' VALE : ( 0. 1. 5. 2. ) ); - + e_grm = DEFI_FONCTION ( NOM_PARA : 'TEMP' PROL_DROIT : 'CONSTANT' PROL_GAUCHE : 'CONSTANT' @@ -1515,14 +1515,14 @@ al_gre = DEFI_FONCTION ( NOM_PARA : 'TEMP' 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' @@ -1559,7 +1559,7 @@ e_cr = DEFI_FONCTION ( NOM_PARA : 'TEMP' 5. 2. ) ); - + nu_cr = DEFI_FONCTION ( NOM_PARA : 'TEMP' PROL_DROIT : 'CONSTANT' PROL_GAUCHE : 'CONSTANT' @@ -1585,7 +1585,7 @@ mt_gre1 = DEFI_MATERIAU ( ELAS_FO : ( E : e_gre NU : nu_gre ALPHA : al_gre RHO : 7800. ) - GRAN_IRRA:( FLUX_L :fluxax1 + GRAN_IRRA:( FLUX_L :fluxax1 FLUX_TN :fluxrd1 FONC_MULT:flux_f1 A : 0. @@ -1594,7 +1594,7 @@ mt_gre1 = DEFI_MATERIAU ( ELAS_FO : ( E : e_gre UN_SUR_K : 0. UN_SUR_M : 0. QSR_K : 1. ) - ); + ); % Grilles de melange @@ -1641,12 +1641,12 @@ mt_tu1 = DEFI_MATERIAU ( ELAS_FO : ( E : e_tu FONC_MULT: flux_f1 A : 0. S : 1.) - LEMAITRE : ( N : 0. + LEMAITRE : ( N : 0. UN_SUR_K : 0. UN_SUR_M : 0. - QSR_K : 2.) + QSR_K : 2.) - ); + ); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/Exemples/ex22/totalmod.comm b/Exemples/ex22/totalmod.comm index 31b448de..23c16734 100755 --- a/Exemples/ex22/totalmod.comm +++ b/Exemples/ex22/totalmod.comm @@ -1468,7 +1468,7 @@ e_gre = DEFI_FONCTION ( NOM_PARA : 'TEMP' VALE : ( 0. 1. 5. 2. ) ); - + e_grm = DEFI_FONCTION ( NOM_PARA : 'TEMP' PROL_DROIT : 'CONSTANT' PROL_GAUCHE : 'CONSTANT' @@ -1496,14 +1496,14 @@ al_gre = DEFI_FONCTION ( NOM_PARA : 'TEMP' 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' @@ -1540,7 +1540,7 @@ e_cr = DEFI_FONCTION ( NOM_PARA : 'TEMP' 5. 2. ) ); - + nu_cr = DEFI_FONCTION ( NOM_PARA : 'TEMP' PROL_DROIT : 'CONSTANT' PROL_GAUCHE : 'CONSTANT' @@ -1566,7 +1566,7 @@ mt_gre1 = DEFI_MATERIAU ( ELAS_FO : ( E : e_gre NU : nu_gre ALPHA : al_gre RHO : 7800. ) - GRAN_IRRA:( FLUX_L :fluxax1 + GRAN_IRRA:( FLUX_L :fluxax1 FLUX_TN :fluxrd1 FONC_MULT:flux_f1 A : 0. @@ -1575,7 +1575,7 @@ mt_gre1 = DEFI_MATERIAU ( ELAS_FO : ( E : e_gre UN_SUR_K : 0. UN_SUR_M : 0. QSR_K : 1. ) - ); + ); % Grilles de melange @@ -1622,12 +1622,12 @@ mt_tu1 = DEFI_MATERIAU ( ELAS_FO : ( E : e_tu FONC_MULT: flux_f1 A : 0. S : 1.) - LEMAITRE : ( N : 0. + LEMAITRE : ( N : 0. UN_SUR_K : 0. UN_SUR_M : 0. - QSR_K : 2.) + QSR_K : 2.) - ); + ); % % AFFECTATION DES MATERIAUX A CHAUD - CYCLE diff --git a/Extensions/commande_comm.py b/Extensions/commande_comm.py index 2d7950c2..a886c697 100644 --- a/Extensions/commande_comm.py +++ b/Extensions/commande_comm.py @@ -207,6 +207,7 @@ class COMMANDE_COMM(N_OBJECT.OBJECT,I_OBJECT.OBJECT) : #print "uncomment",new_etape.sd pos=self.parent.etapes.index(self) + # L'ordre d'appel est important : suppentite fait le menage des concepts dans les etapes suivantes self.parent.addentite(new_etape,pos) self.parent.suppentite(self) return new_etape,nom_sd @@ -257,11 +258,11 @@ class COMMANDE_COMM(N_OBJECT.OBJECT,I_OBJECT.OBJECT) : 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 + 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 diff --git a/Extensions/interpreteur_formule.py b/Extensions/interpreteur_formule.py index 750029cf..7ed896af 100644 --- a/Extensions/interpreteur_formule.py +++ b/Extensions/interpreteur_formule.py @@ -454,17 +454,17 @@ class Interpreteur_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: + # 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]) + 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, diff --git a/Extensions/jdc_include.py b/Extensions/jdc_include.py index deb6c558..8a74ee42 100644 --- a/Extensions/jdc_include.py +++ b/Extensions/jdc_include.py @@ -183,6 +183,10 @@ class JDC_POURSUITE(JDC): JDC.supprime(self) self.jdc_pere=None self.etape_include=None + # self.cata_ordonne_dico={} + self.appli=None + # self.context_ini={} + # self.procedure=None def get_contexte_avant(self,etape): """ @@ -299,6 +303,7 @@ class JDC_POURSUITE(JDC): #Regularise les etapes du jdc apres l'etape etape self.control_jdc_context_apres(etape) if self.etape_include: + #print "CONTROL_INCLUDE:",self.etape_include,self.etape_include.nom # il existe un jdc pere. On propage la regularisation self.etape_include.parent.control_context_apres(self.etape_include) diff --git a/Extensions/param2.py b/Extensions/param2.py index 74ac889c..ad49373b 100644 --- a/Extensions/param2.py +++ b/Extensions/param2.py @@ -1,16 +1,29 @@ +# -*- coding: utf-8 -*- from __future__ import division import math +import Numeric +import types def mkf(value): - if type(value) in (type(1), type(1L), type(1.5), type(1j),type("hh")): + if type(value) in (type(1), type(1L), type(1.5), type(1j),type("hh")) : return Constant(value) elif isinstance(value, Formula): return value + elif type(value) == type([]): + return Constant(value) else: +# return Constant(value) raise TypeError, ("Can't make formula from", value) #class Formula(object): class Formula: + def __len__(self): + val=self.eval() + if val is None:return 0 + try: + return len(val) + except: + return 1 def __complex__(self): return complex(self.eval()) def __int__(self): return int(self.eval()) def __long__(self): return long(self.eval()) @@ -43,12 +56,12 @@ class Binop(Formula): self.values = mkf(value1), mkf(value2) def __str__(self): if self.op == '[]': - return "(%s[%s])" % (self.values[0], self.values[1]) + return "%s[%s]" % (self.values[0], self.values[1]) else: return "(%s %s %s)" % (self.values[0], self.op, self.values[1]) def __repr__(self): if self.op == '[]': - return "(%s[%s])" % (self.values[0], self.values[1]) + return "%s[%s]" % (self.values[0], self.values[1]) else: return "(%s %s %s)" % (self.values[0], self.op, self.values[1]) def eval(self): @@ -57,23 +70,56 @@ class Binop(Formula): while isinstance(result,Formula): result=result.eval() return result + def __adapt__(self,validator): + return validator.adapt(self.eval()) + class Unop(Formula): opmap = { '-': lambda x: -x, - 'sin': lambda x: math.sin(x), - 'cos': lambda x: math.cos(x) } + } def __init__(self, op, arg): self._op = op self._arg = mkf(arg) def __str__(self): return "%s(%s)" % (self._op, self._arg) + def __repr__(self): + return "%s(%s)" % (self._op, self._arg) def eval(self): return self.opmap[self._op](self._arg.eval()) + def __adapt__(self,validator): + return validator.adapt(self.eval()) + +class Unop2(Unop): + def __init__(self, nom, op, arg): + self._nom = nom + self._op = op + self._arg=[] + for a in arg: + self._arg.append(mkf(a)) + def __str__(self): + s="%s(" % self._nom + for a in self._arg: + s=s+str(a)+',' + s=s+")" + return s + def __repr__(self): + s="%s(" % self._nom + for a in self._arg: + s=s+str(a)+',' + s=s+")" + return s + def eval(self): + l=[] + for a in self._arg: + l.append(a.eval()) + return self._op(*l) class Constant(Formula): def __init__(self, value): self._value = value def eval(self): return self._value def __str__(self): return str(self._value) + def __adapt__(self,validator): + return validator.adapt(self._value) class Variable(Formula): def __init__(self,name,value): @@ -82,6 +128,60 @@ class Variable(Formula): def eval(self): return self._value def __repr__(self): return "Variable('%s',%s)" % (self._name, self._value) def __str__(self): return self._name + def __adapt__(self,validator): + return validator.adapt(self._value) -def cos(f): return Unop('cos', f) +def Eval(f): + if isinstance(f,Formula): + f=f.eval() + elif type(f) in (types.ListType, ): + f=[Eval(i) for i in f] + elif type(f) in (types.TupleType,): + f=tuple([Eval(i) for i in f]) + return f + + +#surcharge de la fonction cos de Numeric pour les parametres +original_ncos=Numeric.cos +def cos(f): return Unop('ncos', f) +Unop.opmap['ncos']=lambda x: original_ncos(x) +Numeric.cos=cos + +#surcharge de la fonction sin de Numeric pour les parametres +original_nsin=Numeric.sin +def sin(f): return Unop('nsin', f) +Unop.opmap['nsin']=lambda x: original_nsin(x) +Numeric.sin=sin + +#surcharge de la fonction array de Numeric pour les parametres +original_narray=Numeric.array +def array(f,*tup,**args): + """array de Numeric met en défaut la mécanique des parametres + on la supprime dans ce cas. Il faut que la valeur du parametre soit bien définie + """ + return original_narray(Eval(f),*tup,**args) +Numeric.array=array + +#surcharge de la fonction sin de math pour les parametres +original_sin=math.sin def sin(f): return Unop('sin', f) +Unop.opmap['sin']=lambda x: original_sin(x) +math.sin=sin + +#surcharge de la fonction cos de math pour les parametres +original_cos=math.cos +Unop.opmap['cos']=lambda x: original_cos(x) +def cos(f): return Unop('cos', f) +math.cos=cos + +#surcharge de la fonction sqrt de math pour les parametres +original_sqrt=math.sqrt +def sqrt(f): return Unop('sqrt', f) +Unop.opmap['sqrt']=lambda x: original_sqrt(x) +math.sqrt=sqrt + +#surcharge de la fonction ceil de math pour les parametres +original_ceil=math.ceil +Unop.opmap['ceil']=lambda x: original_ceil(x) +def ceil(f): return Unop('ceil', f) +math.ceil=ceil diff --git a/Extensions/parametre.py b/Extensions/parametre.py index 28b6bd87..54025443 100644 --- a/Extensions/parametre.py +++ b/Extensions/parametre.py @@ -29,6 +29,7 @@ # import de modules Python import string,types from math import * +import traceback # import de modules Eficas from Noyau.N_CR import CR @@ -48,182 +49,22 @@ class PARAMETRE(N_OBJECT.OBJECT,I_OBJECT.OBJECT,Formula) : idracine = 'param' def __init__(self,nom,valeur=None): - # parent ne peut être qu'un objet de type JDC - self.dict_valeur=[] - 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 + # parent ne peut être qu'un objet de type JDC self.jdc = self.parent = CONTEXT.get_current_step() self.niveau=self.parent.niveau self.actif=1 self.state='undetermined' self.register() + self.dict_valeur=[] + #self.valeur = self.interprete_valeur(valeur) + #self.val=valeur + self.valeur = valeur + self.val=repr(valeur) - def __getitem__(self,key): - param_item=ITEM_PARAMETRE(self,key) - return param_item - -# def __neg__(self): -# try: -# return -1*self.valeur -# except: -# print "******* Probleme : pas de valeur négative" -# return None - -# def __add__(self,a): -# try : -# return self.valeur+a.valeur -# except : -# print "******* Probleme : a l addition" -# return None - -# def __radd__(self,a): -# try : -# return self.valeur+a.valeur -# except : -# print "******* Probleme : a l addition" -# return None - -# def __sub__(self,a): -# try : -# return self.valeur - a.valeur -# except : -# print "******* Probleme : a la soustraction" -# return None - -# def __rsub__(self,a): -# try : -# return a.valeur - self.valeur -# except : -# print "******* Probleme : a la soustraction" -# return None - - -# def __mul__(self,a): -# try : -# return self.valeur*a.valeur -# except : -# print "******* Probleme : a la multiplication" -# return None - -# def __rmul__(self,a): -# try : -# return self.valeur*a.valeur -# except : -# print "******* Probleme : a la multiplication" -# return None - -# def __add__(self,other): -# try : -# return self.valeur+other -# except : -# print "******* Probleme : a l addition" -# return None - -# def __radd__(self,other): -# try : -# return self.valeur+other -# except : -# print "******* Probleme : a l addition" -# return None - -# def __sub__(self,other): -# try : -# return self.valeur - other -# except : -# print "******* Probleme : a la soustraction" -# return None - -# def __rsub__(self,other): -# try : -# return other - self.valeur -# except : -# print "******* Probleme : a la soustraction" -# return None - -# def __mul__ (self,other): -# retour=None -# try : -# retour = eval(self.valeur) * other -# except : -# try : -# retour = self.valeur * other -# except : -# try : -# retour = eval(self.valeur) * eval(other) -# except : -# try : -# retour = self.valeur * eval(other) -# except : -# print other -# print "******* Probleme : a la multiplication _mul__" -# return retour -# -# def __rmul__ (self,other): -# retour=None -# try : -# retour = eval(self.valeur) * other -# except : -# try : -# retour = self.valeur * other -# except : -# try : -# retour = eval(self.valeur) * eval(other) -# except : -# print "******* Probleme : a la multiplication __rmul__" -# return retour -# -# -# def __div__(self,other): -# retour=None -# try: -# retour = eval(self.valeur) / other -# except : -# try : -# retour = self.valeur / other -# except : -# print "******* Probleme : a la division" -# return retour -# -# -# def cos(self): -# try : -# retour=cos(self.valeur) -# return retour -# except: -# print "pb pour cosinus" -# -# def sin(self): -# try : -# retour=sin(self.valeur) -# return retour -# except: -# print "pb pour sinus" -# -# def tan(self): -# try : -# retour=tan(self.valeur) -# return retour -# except: -# print "pb pour tangente" -# -# def log(self): -# try : -# retour=log(self.valeur) -# return retour -# except: -# print "pb pour log" -# -# def sqrt(self): -# try : -# retour=sqrt(self.valeur) -# return retour -# except: -# print "pb pour sqrt" -# def interprete_valeur(self,val): """ Essaie d'interpréter val (chaîne de caractères)comme : @@ -233,26 +74,21 @@ class PARAMETRE(N_OBJECT.OBJECT,I_OBJECT.OBJECT,Formula) : - une liste d'items d'un type qui précède Retourne la valeur interprétée """ - if not val : return None + #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 type(val) == types.StringType: + # on tente l'evaluation dans un contexte fourni par le parent s'il existe + if self.parent: + valeur=self.parent.eval_in_context(val,self) + else: + try : + valeur = eval(val) + except: + #traceback.print_exc() + pass #PN je n ose pas modifier je rajoute + # refus des listes heterogenes : ne dvrait pas etre la if valeur != None : if type(valeur) == types.TupleType: l_new_val = [] @@ -269,17 +105,14 @@ class PARAMETRE(N_OBJECT.OBJECT,I_OBJECT.OBJECT,Formula) : return val l_new_val.append(v) return tuple(l_new_val) - # PN : commente le print - #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 + if valeur != None : if type(valeur).__name__ == 'list': self.dict_valeur=[] for i in range(len(valeur)): - self.dict_valeur.append(valeur[i]) + self.dict_valeur.append(valeur[i]) + return valeur + # on retourne val comme une string car on n'a pas su l'interpréter return val def get_valeurs(self): @@ -298,6 +131,14 @@ class PARAMETRE(N_OBJECT.OBJECT,I_OBJECT.OBJECT,Formula) : self.valeur = self.interprete_valeur(new_valeur) self.init_modif() + def set_nom(self,new_nom): + """ + Change le nom du parametre + """ + self.init_modif() + self.nom=new_nom + self.fin_modif() + def init_modif(self): """ Méthode qui déclare l'objet courant comme modifié et propage @@ -361,6 +202,7 @@ class PARAMETRE(N_OBJECT.OBJECT,I_OBJECT.OBJECT,Formula) : self.parent = None self.jdc = None self.definition=None + self.niveau=None def active(self): """ @@ -413,7 +255,17 @@ class PARAMETRE(N_OBJECT.OBJECT,I_OBJECT.OBJECT,Formula) : """ Donne un echo de self sous la forme nom = valeur """ - return self.nom+' = '+str(self.valeur) + if type(self.valeur) == types.StringType: + if self.valeur.find('\n') == -1: + # pas de retour chariot, on utilise repr + return self.nom+' = '+ repr(self.valeur) + elif self.valeur.find('"""') == -1: + # retour chariot mais pas de triple ", on formatte + return self.nom+' = """'+self.valeur+'"""' + else: + return self.nom+' = '+ repr(self.valeur) + else: + return self.nom+' = '+ str(self.valeur) def __str__(self): """ @@ -477,7 +329,13 @@ class PARAMETRE(N_OBJECT.OBJECT,I_OBJECT.OBJECT,Formula) : pass def eval(self): - return self.valeur + if isinstance(self.valeur,Formula): + return self.valeur.eval() + else: + return self.valeur + + def __adapt__(self,validator): + return validator.adapt(self.eval()) class COMBI_PARAMETRE : def __init__(self,chainevaleur,valeur): @@ -506,7 +364,7 @@ class ITEM_PARAMETRE : if self.item < 0: isvalid = 0 try: - longueur= len(self.param_pere.dict_valeur) - 1 + longueur= len(self.param_pere.dict_valeur) - 1 except: longueur=0 if self.item > longueur : diff --git a/Homard/homard_cata_STA7.py b/Homard/homard_cata_STA7.py index 159ca29d..99504895 100755 --- a/Homard/homard_cata_STA7.py +++ b/Homard/homard_cata_STA7.py @@ -11,7 +11,7 @@ from Accas import * JdC = JDC_CATA(code='HOMARD', execmodul=None, regles = (AU_MOINS_UN('DONNEES_HOMARD'),), - ) + ) # Type le plus general class entier (ASSD):pass @@ -46,13 +46,13 @@ DONNEES_HOMARD=PROC(nom="DONNEES_HOMARD",op= 189, docu="U7.04.01-b", # 2. Les fichiers en entree/sortie # FICHIERS = FACT(statut='o', - NOM_MED_MAILLAGE_N = SIMP(statut='o' ,typ='TXM', - fr="Nom du fichier contenant le maillage à adapter", - ang="File name including the in-mesh"), - NOM_MED_MAILLAGE_NP1 = SIMP(statut='o' ,typ='TXM', + NOM_MED_MAILLAGE_N = SIMP(statut='o' ,typ='TXM', + fr="Nom du fichier contenant le maillage à adapter", + ang="File name including the in-mesh"), + NOM_MED_MAILLAGE_NP1 = SIMP(statut='o' ,typ='TXM', fr="Nom du fichier qui contiendra le maillage adapté", ang="File name for resulting out-mesh"), - INFORMATION = SIMP(statut='o' ,typ='TXM', + INFORMATION = SIMP(statut='o' ,typ='TXM', fr="Nom du fichier contenant les informations de sortie", ang="Log File"), ), @@ -203,9 +203,9 @@ DONNEES_HOMARD=PROC(nom="DONNEES_HOMARD",op= 189, docu="U7.04.01-b", ang="Groups which define the boundary" ), ) , fichier_frontiere=BLOC ( condition = "NOM_MED_MAILLAGE_FRONTIERE != None" , - FIC_FRON = SIMP(statut='f',typ='TXM', - fr="Nom du fichier MED contenant le maillage frontiere", - ang="MED File including the boundary mesh" ), + FIC_FRON = SIMP(statut='f',typ='TXM', + fr="Nom du fichier MED contenant le maillage frontiere", + ang="MED File including the boundary mesh" ), ), # ), diff --git a/Homard/homard_cata_V6n.py b/Homard/homard_cata_V6n.py index a67169ef..8f9c93a8 100755 --- a/Homard/homard_cata_V6n.py +++ b/Homard/homard_cata_V6n.py @@ -11,7 +11,7 @@ from Accas import * JdC = JDC_CATA(code='HOMARD', execmodul=None, regles = (AU_MOINS_UN('DONNEES_HOMARD'),), - ) + ) # Type le plus general class entier (ASSD):pass @@ -138,7 +138,7 @@ DONNEES_HOMARD=PROC(nom="DONNEES_HOMARD",op= 189, docu="U7.04.01-b", regles=( UN_PARMI('TYPE_RAFFINEMENT_LIBRE','TYPE_DERAFFINEMENT_UNIFORME','TYPE_RAFFINEMENT_UNIFORME','INFORMATION'), ### EXCLUS('TYPE_RAFFINEMENT_LIBRE','INFORMATION'), ### EXCLUS('TYPE_RAFFINEMENT_UNIFORME','INFORMATION'), - ), + ), # TYPE_RAFFINEMENT_LIBRE = FACT(statut='f', RAFFINEMENT = SIMP (statut='o',typ='TXM', @@ -151,12 +151,12 @@ DONNEES_HOMARD=PROC(nom="DONNEES_HOMARD",op= 189, docu="U7.04.01-b", ang="Choice of unrefinement mode.", into=("NON","LIBRE",),), - b_adaptation = bloc_adaptation(), - b_indicateur_d_erreur = indicateur_d_erreur(), - b_critere_de_raffinement = critere_de_raffinement(), - b_critere_de_deraffinement = critere_de_deraffinement(), - b_niveau_minimum = niveau_minimum(), - b_niveau_maximum = niveau_maximum(), + b_adaptation = bloc_adaptation(), + b_indicateur_d_erreur = indicateur_d_erreur(), + b_critere_de_raffinement = critere_de_raffinement(), + b_critere_de_deraffinement = critere_de_deraffinement(), + b_niveau_minimum = niveau_minimum(), + b_niveau_maximum = niveau_maximum(), ), @@ -165,18 +165,18 @@ DONNEES_HOMARD=PROC(nom="DONNEES_HOMARD",op= 189, docu="U7.04.01-b", RAFFINEMENT = SIMP (statut='o',typ='TXM', fr="Choix du mode de raffinement.", ang="Choice of refinement mode.", - defaut="UNIFORME", + defaut="UNIFORME", into=("UNIFORME",),), DERAFFINEMENT = SIMP(statut='o',typ='TXM', fr="Choix du mode de deraffinement.", ang="Choice of unrefinement mode.", - defaut="NON", + defaut="NON", into=("NON",),), - b_adaptation = bloc_adaptation(), - b_niveau_minimum = niveau_minimum(), - b_niveau_maximum = niveau_maximum(), + b_adaptation = bloc_adaptation(), + b_niveau_minimum = niveau_minimum(), + b_niveau_maximum = niveau_maximum(), ), @@ -185,18 +185,18 @@ DONNEES_HOMARD=PROC(nom="DONNEES_HOMARD",op= 189, docu="U7.04.01-b", RAFFINEMENT = SIMP (statut='o',typ='TXM', fr="Choix du mode de raffinement.", ang="Choice of refinement mode.", - defaut="NON", + defaut="NON", into=("NON",),), DERAFFINEMENT = SIMP(statut='o',typ='TXM', fr="Choix du mode de deraffinement.", ang="Choice of unrefinement mode.", - defaut="UNIFORME", + defaut="UNIFORME", into=("UNIFORME",),), - b_adaptation = bloc_adaptation(), - b_niveau_minimum = niveau_minimum(), - b_niveau_maximum = niveau_maximum(), + b_adaptation = bloc_adaptation(), + b_niveau_minimum = niveau_minimum(), + b_niveau_maximum = niveau_maximum(), ), # INFORMATION =SIMP(statut='f',typ='TXM', @@ -259,9 +259,9 @@ DONNEES_HOMARD=PROC(nom="DONNEES_HOMARD",op= 189, docu="U7.04.01-b", ang="Groups which define the boundary" ), ) , fichier_frontiere=BLOC ( condition = "NOM_MED_MAILLAGE_FRONTIERE != None" , - FIC_FRON = SIMP(statut='f',typ='TXM', - fr="Nom du fichier MED contenant le maillage frontiere", - ang="MED File including the boundary mesh" ), + FIC_FRON = SIMP(statut='f',typ='TXM', + fr="Nom du fichier MED contenant le maillage frontiere", + ang="MED File including the boundary mesh" ), ), # # diff --git a/Ihm/I_ASSD.py b/Ihm/I_ASSD.py index 27742424..8d30d613 100644 --- a/Ihm/I_ASSD.py +++ b/Ihm/I_ASSD.py @@ -19,6 +19,39 @@ # # ====================================================================== +#from I_VALIDATOR import ValidException +from Noyau.N_VALIDATOR import ValError + class ASSD: def __repr__(self): return "concept %s de type %s" % (self.get_name(),self.__class__.__name__) + + def __str__(self): + return self.get_name() or "" + + #def __del__(self): + # print "__del__",self + +class assd(ASSD): + def __convert__(cls,valeur): + return valeur + __convert__=classmethod(__convert__) + +class GEOM(ASSD): + def __convert__(cls,valeur): + return valeur + __convert__=classmethod(__convert__) + +class geom(GEOM):pass + +class CO(ASSD): + def __convert__(cls,valeur): + if hasattr(valeur,'_etape') : + # valeur est un concept CO qui a ete transforme par type_sdprod + if valeur.etape == valeur._etape: + # le concept est bien produit par l'etape + return valeur + raise ValError("Pas un concept CO") + #raise ValidException("Pas un concept CO") + __convert__=classmethod(__convert__) + diff --git a/Ihm/I_ETAPE.py b/Ihm/I_ETAPE.py index 6ad4ee81..f9be1fa6 100644 --- a/Ihm/I_ETAPE.py +++ b/Ihm/I_ETAPE.py @@ -38,6 +38,7 @@ from Noyau.N_Exception import AsException # Modules EFICAS import I_MCCOMPO import CONNECTOR +from Extensions import commande_comm class ETAPE(I_MCCOMPO.MCCOMPO): @@ -90,6 +91,7 @@ class ETAPE(I_MCCOMPO.MCCOMPO): #suivantes #ATTENTION: aux eventuelles recursions self.parent.control_context_apres(self) + pass CONNECTOR.Emit(self,"valid") if self.parent: @@ -121,7 +123,7 @@ class ETAPE(I_MCCOMPO.MCCOMPO): # 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) + self.sd = self.reuse = self.jdc.get_sd_avant_etape(nom,self) if self.sd != None : self.sdnom=self.sd.nom self.fin_modif() @@ -135,21 +137,21 @@ class ETAPE(I_MCCOMPO.MCCOMPO): 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()) : + # 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 self.fin_modif() return 1,"Opérateur facultativement réentrant et concept existant trouvé" - else: - return 0,"Concept déjà existant et de mauvais type" + 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 : + # 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 + 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 @@ -182,13 +184,13 @@ class ETAPE(I_MCCOMPO.MCCOMPO): 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 + # 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: # Renommage du concept : Il suffit de changer son attribut nom pour le nommer - self.sd.nom=nom + self.sd.nom=nom self.sdnom=nom self.parent.update_concept_after_etape(self,self.sd) self.fin_modif() @@ -226,6 +228,7 @@ class ETAPE(I_MCCOMPO.MCCOMPO): """ if self.actif:return self.actif = 1 + self.init_modif() if self.sd : try: self.jdc.append_sdprod(self.sd) @@ -241,6 +244,7 @@ class ETAPE(I_MCCOMPO.MCCOMPO): et de la liste des sd """ self.actif = 0 + self.init_modif() if self.sd : self.jdc.del_sdprod(self.sd) self.jdc.delete_concept_after_etape(self,self.sd) @@ -373,7 +377,7 @@ class ETAPE(I_MCCOMPO.MCCOMPO): 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 + avant étape, sinon enlève la référence à ces concepts """ #print "verif_existence_sd",self.sd for motcle in self.mc_liste : @@ -395,6 +399,30 @@ class ETAPE(I_MCCOMPO.MCCOMPO): Realise l'update des blocs conditionnels fils de self """ self._update_condition_bloc() + + def get_objet_commentarise(self,format): + """ + Cette méthode retourne un objet commande commentarisée + representant la commande self + """ + import generator + g=generator.plugins[format]() + texte_commande = g.gener(self,format='beautifie') + # Il faut enlever la première ligne vide de texte_commande que + # rajoute le generator + rebut,texte_commande = string.split(texte_commande,'\n',1) + # on construit l'objet COMMANDE_COMM repésentatif de self mais non + # enregistré dans le jdc (pas ajouté dans jdc.etapes) + parent=self.parent + pos=self.parent.etapes.index(self) + commande_comment = commande_comm.COMMANDE_COMM(texte=texte_commande, + reg='non', + parent=parent) + self.parent.suppentite(self) + parent.addentite(commande_comment,pos) + + return commande_comment + #ATTENTION SURCHARGE: a garder en synchro ou a reintegrer dans le Noyau def Build_sd(self,nom): diff --git a/Ihm/I_FONCTION.py b/Ihm/I_FONCTION.py index 46bc19ab..18f66362 100644 --- a/Ihm/I_FONCTION.py +++ b/Ihm/I_FONCTION.py @@ -18,6 +18,7 @@ # # # ====================================================================== +import string from I_ASSD import ASSD class FONCTION(ASSD): @@ -41,5 +42,29 @@ class FONCTION(ASSD): # modification de C Durand sur la gestion des formules dans le superviseur # On conserve l'ancienne classe fonction (ceinture et bretelles) class fonction(FONCTION) : pass -class formule(FONCTION) : pass + +from Extensions import param2 +class formule(FONCTION) : + def __call__(self,*val): + if len(val) != len(self.nompar): + raise TypeError(" %s() takes exactly %d argument (%d given)" % (self.nom,len(self.nompar),len(val))) + return param2.Unop2(self.nom,self.real_call,val) + + def real_call(self,*val): + if hasattr(self.parent,'contexte_fichier_init'): + context=self.parent.contexte_fichier_init + else : context={} + i=0 + for param in self.nompar : + context[param]=val[i] + i=i+1 + try : + res=eval(self.expression,self.jdc.const_context, context) + except : + print 75*'!' + print '! '+string.ljust('Erreur evaluation formule '+self.nom,72)+'!' + print 75*'!' + raise + return res + diff --git a/Ihm/I_FORM_ETAPE.py b/Ihm/I_FORM_ETAPE.py index 75cad81c..d228980c 100644 --- a/Ihm/I_FORM_ETAPE.py +++ b/Ihm/I_FORM_ETAPE.py @@ -54,17 +54,17 @@ class FORM_ETAPE(MACRO_ETAPE): if len(self.mc_liste) == 0: # pas de fils pour self --> la FORMULE est incomplète return None,None,None - type_retourne="REEL" + type_retourne="REEL" if len(self.mc_liste) > 0: child = self.mc_liste[0] # child est un MCSIMP corps = child.getval() - else: - corps = None + else: + corps = None if len(self.mc_liste) > 1: - child = self.mc_liste[1] + child = self.mc_liste[1] l_args= child.getval() - else : - l_args=None + else : + l_args=None return type_retourne,l_args,corps def get_nom(self): @@ -113,7 +113,7 @@ class FORM_ETAPE(MACRO_ETAPE): #for argument in l_arguments: # argument = string.strip(argument) # try: - # nom=argument + # nom=argument # typ,nom = string.split(argument,':') # #pas de vérification sur le nom de l'argument # #vérification du type de l'argument @@ -137,8 +137,8 @@ class FORM_ETAPE(MACRO_ETAPE): """ if not corps : corps = self.corps - if not arguments : - arguments = self.arguments + 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 @@ -167,8 +167,8 @@ class FORM_ETAPE(MACRO_ETAPE): 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" - if nom[0] > "0" and nom[0] < "9" : - return 0,"Un nom de FORMULE ne peut pas commencer par un chiffre" + if nom[0] > "0" and nom[0] < "9" : + return 0,"Un nom de FORMULE ne peut pas commencer par un chiffre" sd = self.parent.get_sd_autour_etape(nom,self) if sd : return 0,"Un concept de nom %s existe déjà !" %nom @@ -220,10 +220,10 @@ class FORM_ETAPE(MACRO_ETAPE): def verif_formule_python(self,formule=None): """ - Pour l instant ne fait qu un compile python - il serait possible d ajouter des tests sur les arguments - ou le type retourne mais ... - """ + Pour l instant ne fait qu un compile python + il serait possible d ajouter des tests sur les arguments + ou le type retourne mais ... + """ if not formule : formule = (None,None,None,None) test_nom,erreur_nom = self.verif_nom(formule[0]) @@ -232,14 +232,14 @@ class FORM_ETAPE(MACRO_ETAPE): else: args = None test_arguments,erreur_arguments = self.verif_arguments(args) - corps=formule[3] - erreur_formule= '' - test_formule=1 - try : - compile(corps,'','eval') - except : - erreur_formule= "le corps de la formule n'est pas une formule python valide" - test_formule=0 + corps=formule[3] + erreur_formule= '' + test_formule=1 + try : + compile(corps,'','eval') + except : + erreur_formule= "le corps de la formule n'est pas une formule python valide" + test_formule=0 erreur = '' test = test_nom*test_arguments*test_formule if not test : @@ -279,33 +279,33 @@ class FORM_ETAPE(MACRO_ETAPE): self.build_mc() self.mc_liste=[] if len(formule) < 4 : - return O + return O arguments=formule[3] - if arguments[0] == '(' : - arguments=[1,-1 ] - if arguments[-1] == '(' : - arguments=[0,-2 ] - self.arguments=tuple(arguments.split(',')) + if arguments[0] == '(' : + arguments=arguments[1:] + if arguments[-1] == ')' : + arguments=arguments[:-1] + self.arguments=tuple(arguments.split(',')) - i=1 - for k,v in self.definition.entites.items(): - child=self.definition.entites[k](None,nom=k,parent=self) - new_valeur=formule[i+1] - if i+1 == 3 : - child.valeur = self.arguments - else : - child.valeur = new_valeur - child.state = 'modified' - self.mc_liste.append(child) - i=i+1 - + i=1 + for k,v in self.definition.entites.items(): + child=self.definition.entites[k](None,nom=k,parent=self) + new_valeur=formule[i+1] + if i+1 == 3 : + child.valeur = self.arguments + else : + child.valeur = new_valeur + child.state = 'modified' + self.mc_liste.append(child) + i=i+1 + self.corps = formule[2] self.type_retourne = formule[1] - sd = self.get_sd_prod() + sd = self.get_sd_prod() if sd: sd.nom = formule[0] self.init_modif() - return 1 + return 1 def active(self): """ @@ -313,6 +313,7 @@ class FORM_ETAPE(MACRO_ETAPE): Il faut ajouter la formule au contexte global du JDC """ self.actif = 1 + self.init_modif() nom = self.get_nom() if nom == '' : return try: @@ -326,6 +327,7 @@ class FORM_ETAPE(MACRO_ETAPE): Il faut supprimer la formule du contexte global du JDC """ self.actif = 0 + self.init_modif() if not self.sd : return self.jdc.del_fonction(self.sd) @@ -340,8 +342,8 @@ class FORM_ETAPE(MACRO_ETAPE): 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 + 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() diff --git a/Ihm/I_JDC.py b/Ihm/I_JDC.py index 7baa0353..a4c733a8 100644 --- a/Ihm/I_JDC.py +++ b/Ihm/I_JDC.py @@ -75,8 +75,8 @@ class JDC(I_OBJECT.OBJECT): def get_sd_avant_du_bon_type_pour_type_de_base(self,etape,type): """ Retourne la liste des concepts avant etape d'1 type de base acceptable - Attention different de la routine précédente : 1 seul type passé en parametre - Teste sur issubclass et par sur le type permis + Attention different de la routine précédente : 1 seul type passé en parametre + Teste sur issubclass et par sur le type permis """ d=self.get_contexte_avant(etape) l=[] @@ -94,11 +94,11 @@ class JDC(I_OBJECT.OBJECT): d=self.get_contexte_avant(etape) for k,v in d.items(): if issubclass(v.__class__,LASSD): - if k == valeur : - return k - # Attention pour enlever les . a la fin des pretendus reels - if k == valeur[0:-1] : - return v + if k == valeur : + return k + # Attention pour enlever les . a la fin des pretendus reels + if k == valeur[0:-1] : + return v return None def est_permis(self,v,types_permis): @@ -188,9 +188,9 @@ class JDC(I_OBJECT.OBJECT): 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() + # il faut vérifier que les concepts utilisés par objet existent bien + # à ce niveau d'arborescence + objet.verif_existence_sd() objet.update_mc_global() self.active_etapes() self.editmode=0 @@ -527,9 +527,9 @@ class JDC(I_OBJECT.OBJECT): 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) + if not etape.isvalid() : + l = etape.get_liste_mc_inconnus() + if l : l_mc.extend(l) return l_mc def get_genealogie(self): @@ -696,6 +696,41 @@ class JDC(I_OBJECT.OBJECT): def changefichier(self,fichier): self.fin_modif() + def eval_in_context(self,valeur,etape): + """ Tente d'evaluer valeur dans le contexte courant de etape + Retourne le parametre valeur inchange si l'evaluation est impossible + """ + #contexte initial du jdc + context=self.condition_context.copy() + #contexte courant des concepts. Il contient les parametres + context.update(self.get_contexte_avant(etape)) + try : + objet = eval(valeur,context) + return objet + except: + #traceback.print_exc() + pass + return valeur + +#ATTENTION SURCHARGE : cette methode doit etre gardée en synchronisation avec celle de Noyau + def supprime(self): + #print "supprime",self + Noyau.N_JDC.JDC.supprime(self) + # self.appli=None + # self.g_context={} + # self.const_context={} + # self.sds=[] + # self.sds_dict={} + # self.mc_globaux={} + # self.current_context={} + # self.condition_context={} + # self.etapes_niveaux=[] + # self.niveau=None + # self.params=[] + # self.fonctions=[] + # self._etape_context=None + # self.etapes=[] + #ATTENTION SURCHARGE : cette methode doit etre gardée en synchronisation avec celle de Noyau def register(self,etape): """ diff --git a/Ihm/I_MACRO_ETAPE.py b/Ihm/I_MACRO_ETAPE.py index 0ca98ea4..258f44ca 100644 --- a/Ihm/I_MACRO_ETAPE.py +++ b/Ihm/I_MACRO_ETAPE.py @@ -28,6 +28,7 @@ import traceback,types,string import I_ETAPE import Noyau from Noyau.N_ASSD import ASSD +import convert # import rajoutés suite à l'ajout de Build_sd --> à résorber import Noyau, Validation.V_MACRO_ETAPE @@ -58,9 +59,9 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): 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 + Interprète text comme un texte de jdc et retourne le contexte final. + + Le contexte final est 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 @@ -90,7 +91,22 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): # de prendre cette precaution mais ce n'est pas vrai partout. old_recorded_units=self.recorded_units.copy() + # on supprime l'ancien jdc_aux s'il existe + if hasattr(self,'jdc_aux') and self.jdc_aux: + self.jdc_aux.supprime_aux() + if fichier is None:fichier="SansNom" + + # Il faut convertir le texte inclus en fonction du format + # sauf les INCLUDE_MATERIAU + if self.nom != "INCLUDE_MATERIAU": + format=self.jdc.appli.format_fichier.get() + if convert.plugins.has_key(format): + # Le convertisseur existe on l'utilise + p=convert.plugins[format]() + p.text=text + text=p.convert('exec',self) + j=self.JdC_aux( procedure=text, nom=fichier, appli=self.jdc.appli, cata=self.jdc.cata, @@ -106,6 +122,7 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): self.etapes=j.etapes self.jdc_aux=j except: + traceback.print_exc() # On retablit l'etape courante step CONTEXT.unset_current_step() CONTEXT.set_current_step(step) @@ -132,6 +149,8 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): # On recupere le contexte de l'include verifie try: j_context=j.get_verif_contexte() + #print j_context.keys() + #print j.g_context.keys() except: # On retablit l'etape courante step CONTEXT.unset_current_step() @@ -488,10 +507,9 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): def make_contexte_include(self,fichier,text): """ - Cette méthode sert à créer un contexte en interprétant un texte source - Python + Cette méthode sert à créer un contexte en interprétant un texte source Python. """ - #print "make_contexte_include" + #print "make_contexte_include",fichier # 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 : @@ -670,12 +688,26 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): #print "update_context.fin",d.keys() #ATTENTION SURCHARGE : cette methode surcharge celle de Noyau (a garder en synchro) + def copy(self): + etape=Noyau.N_MACRO_ETAPE.MACRO_ETAPE.copy(self) + if hasattr(etape,"etapes") :etape.etapes=[] + if hasattr(etape,"jdc_aux") : + etape.jdc_aux=None + del etape.fichier_ini + return etape + def supprime(self): #print "supprime",self if hasattr(self,"jdc_aux") and self.jdc_aux: self.jdc_aux.supprime_aux() self.jdc_aux=None Noyau.N_MACRO_ETAPE.MACRO_ETAPE.supprime(self) + # self.contexte_fichier_init={} + # self.old_contexte_fichier_init={} + # self.g_context={} + # self.current_context={} + # self.etapes=[] + # self.mc_liste=[] #ATTENTION SURCHARGE : cette methode surcharge celle de Noyau (a garder en synchro) def get_file(self,unite=None,fic_origine=''): @@ -758,33 +790,39 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): en interprétant un texte source Python Elle est appelee par la fonction sd_prd d'INCLUDE_MATERIAU """ + #print "make_contexte",fichier # 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 - try: - import Extensions.jdc_include - except: - traceback.print_exc() - raise - 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.etapes=[] - self.jdc_aux=None + if not hasattr(self,'fichier_ini') or self.fichier_ini != fichier or self.fichier_mater != self.nom_mater: + # le fichier est nouveau ou change + self.fichier_ini =fichier + self.fichier_unite =fichier + self.fichier_mater=self.nom_mater + self.fichier_text=text + self.fichier_err=None self.contexte_fichier_init={} - raise + # On specifie la classe a utiliser pour le JDC auxiliaire + try: + import Extensions.jdc_include + self.JdC_aux=Extensions.jdc_include.JdC_include + except: + traceback.print_exc() + raise + 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.g_context={} + self.etapes=[] + self.jdc_aux=None + self.contexte_fichier_init={} + raise + else: + # le fichier est le meme on ne le reevalue pas + # et on leve une exception si une erreur a été enregistrée + if self.fichier_err is not None: raise Exception(self.fichier_err) #ATTENTION SURCHARGE : cette methode surcharge celle de Noyau (a garder en synchro) def update_sdprod(self,cr='non'): diff --git a/Ihm/I_MCCOMPO.py b/Ihm/I_MCCOMPO.py index e8f665c2..0110fa77 100644 --- a/Ihm/I_MCCOMPO.py +++ b/Ihm/I_MCCOMPO.py @@ -204,15 +204,15 @@ class MCCOMPO(I_OBJECT.OBJECT): else : # dans ce cas on est en mode copie d'un motcle objet = name - # Appel de la methode qui fait le menage dans les references - # sur les concepts produits (verification que les concepts existent - # dans le contexte de la commande courante). - objet.verif_existence_sd() + # Appel de la methode qui fait le menage dans les references + # sur les concepts produits (verification que les concepts existent + # dans le contexte de la commande courante). + objet.verif_existence_sd() # On verifie que l'ajout d'objet est autorise if self.ispermis(objet) == 0: self.jdc.send_message("L'objet %s ne peut être un fils de %s" %(objet.nom, - self.nom)) + self.nom)) self.fin_modif() return 0 @@ -222,7 +222,7 @@ class MCCOMPO(I_OBJECT.OBJECT): # on normalize l'objet objet=objet.normalize() # Le mot cle n'existe pas encore. On l'ajoute a la position - # demandee (pos) + # demandee (pos) if pos == None : self.mc_liste.append(objet) else : @@ -309,14 +309,14 @@ class MCCOMPO(I_OBJECT.OBJECT): l_mc = [] if self.reste_val != {}: for k,v in self.reste_val.items() : - l_mc.append([self,k,v]) + 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) + l = [self] + l.extend(mc) + l_mc.append(l) return l_mc def deep_update_condition_bloc(self): @@ -388,7 +388,7 @@ class MCCOMPO(I_OBJECT.OBJECT): 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 + avant étape, sinon enlève la référence à ces concepts """ for motcle in self.mc_liste : motcle.verif_existence_sd() diff --git a/Ihm/I_MCLIST.py b/Ihm/I_MCLIST.py index 48345ebc..3565d0dc 100644 --- a/Ihm/I_MCLIST.py +++ b/Ihm/I_MCLIST.py @@ -241,7 +241,7 @@ class MCList: 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 + avant étape, sinon enlève la référence à ces concepts """ for motcle in self.data : motcle.verif_existence_sd() diff --git a/Ihm/I_MCSIMP.py b/Ihm/I_MCSIMP.py index c2d771fc..b2363984 100644 --- a/Ihm/I_MCSIMP.py +++ b/Ihm/I_MCSIMP.py @@ -47,6 +47,7 @@ from Extensions import parametre from Extensions import param2 import I_OBJECT import CONNECTOR +from I_VALIDATOR import ValError,listProto class MCSIMP(I_OBJECT.OBJECT): @@ -75,8 +76,6 @@ class MCSIMP(I_OBJECT.OBJECT): return None elif type(self.valeur) == types.FloatType : # Traitement d'un flottant isolé - # txt = repr_float(self.valeur) - # Normalement str fait un travail correct txt = str(self.valeur) clefobj=self.GetNomConcept() if self.jdc.appli.dict_reels.has_key(clefobj): @@ -85,38 +84,28 @@ class MCSIMP(I_OBJECT.OBJECT): elif type(self.valeur) in (types.ListType,types.TupleType) : # Traitement des listes txt='(' - i=0 + sep='' for val in self.valeur: if type(val) == types.FloatType : - # CCAR : Normalement str fait un travail correct - #txt=txt + i*',' + repr_float(val) clefobj=self.GetNomConcept() if self.jdc.appli.dict_reels.has_key(clefobj): if self.jdc.appli.dict_reels[clefobj].has_key(val): - txt=txt + i*',' +self.jdc.appli.dict_reels[clefobj][val] + txt=txt + sep +self.jdc.appli.dict_reels[clefobj][val] else : - txt=txt + i*',' + str(val) + txt=txt + sep + str(val) else : - txt=txt + i*',' + str(val) - elif isinstance(val,ASSD): - txt = txt + i*',' + val.get_name() - #PN - # ajout du elif - elif type(val) == types.InstanceType and val.__class__.__name__ in ('PARAMETRE','PARAMETRE_EVAL'): - txt = txt + i*','+ str(val) + txt=txt + sep + str(val) else: - txt = txt + i*','+ myrepr.repr(val) - i=1 + txt = txt + sep+ str(val) + if len(txt) > 200: + #ligne trop longue, on tronque + txt=txt+" ..." + break + sep=',' txt=txt+')' - elif isinstance(self.valeur,ASSD): - # Cas des ASSD - txt=self.getval() - elif type(self.valeur) == types.InstanceType and self.valeur.__class__.__name__ in ('PARAMETRE','PARAMETRE_EVAL'): - # Cas des PARAMETRES - txt=str(self.valeur) else: # Traitement des autres cas - txt = myrepr.repr(self.valeur) + txt = str(self.valeur) # txt peut etre une longue chaine sur plusieurs lignes. # Il est possible de tronquer cette chaine au premier \n et @@ -218,49 +207,53 @@ class MCSIMP(I_OBJECT.OBJECT): def isoblig(self): return self.definition.statut=='o' + def valid_val(self,valeur): + """ + Verifie que la valeur passee en argument (valeur) est valide + sans modifier la valeur courante + """ + lval=listProto.adapt(valeur) + if lval is None: + valid=0 + mess="None n'est pas une valeur autorisée" + else: + try: + for val in lval: + self.typeProto.adapt(val) + self.intoProto.adapt(val) + self.cardProto.adapt(lval) + if self.definition.validators: + self.definition.validators.convert(lval) + valid,mess=1,"" + except ValError,e: + mess=str(e) + valid=0 + return valid,mess + def valid_valeur(self,new_valeur): """ Verifie que la valeur passee en argument (new_valeur) est valide sans modifier la valeur courante (evite d'utiliser set_valeur et est plus performant) """ - old_valeur=self.valeur - old_val=self.val - self.valeur = new_valeur - self.val = new_valeur - self.state="modified" - validite=self.isvalid() - self.valeur = old_valeur - self.val = old_valeur - self.state="modified" - self.isvalid() + validite,mess=self.valid_val(new_valeur) return validite def valid_valeur_partielle(self,new_valeur): """ - Verifie que la valeur passee en argument (new_valeur) est partiellement valide - sans modifier la valeur courante (evite d'utiliser set_valeur et est plus performant) + Verifie que la valeur passee en argument (new_valeur) est une liste partiellement valide + sans modifier la valeur courante du mot cle """ - old_valeur=self.valeur - old_val=self.val - - self.valeur = new_valeur - self.val = new_valeur - self.state="modified" - validite=0 - if self.isvalid(): - validite=1 - elif self.definition.validators : - validite=self.definition.validators.valide_liste_partielle(new_valeur) - - if validite==0: - min,max=self.get_min_max() - if len(new_valeur) < min : - validite=1 - - self.valeur = old_valeur - self.val = old_valeur - self.state="modified" - self.isvalid() + validite=1 + try: + for val in new_valeur: + self.typeProto.adapt(val) + self.intoProto.adapt(val) + #on ne verifie pas la cardinalité + if self.definition.validators: + validite=self.definition.validators.valide_liste_partielle(new_valeur) + except ValError,e: + validite=0 + return validite def update_condition_bloc(self): @@ -290,7 +283,7 @@ class MCSIMP(I_OBJECT.OBJECT): sd = self.jdc.get_sd_avant_etape(new_valeur,self.etape) #sd = self.jdc.get_contexte_avant(self.etape).get(new_valeur,None) #print sd - if sd : + if sd is not None: return sd,1 lsd = self.jdc.cherche_list_avant(self.etape,new_valeur) if lsd : @@ -303,28 +296,62 @@ class MCSIMP(I_OBJECT.OBJECT): objet = eval(new_valeur,d) return objet,1 except Exception: - itparam=self.cherche_item_parametre(new_valeur) - if itparam: - return itparam,1 - try : - object=eval(new_valeur.valeur,d) - except : - pass + itparam=self.cherche_item_parametre(new_valeur) + if itparam: + return itparam,1 + try : + object=eval(new_valeur.valeur,d) + except : + pass if CONTEXT.debug : traceback.print_exc() return None,0 + def eval_val(self,new_valeur): + """ + Tente d'evaluer new_valeur comme un objet du jdc (par appel a eval_val_item) + ou comme une liste de ces memes objets + Si new_valeur contient au moins un separateur (,), tente l'evaluation sur + la chaine splittee + """ + if type(new_valeur) in (types.ListType,types.TupleType): + valeurretour=[] + for item in new_valeur : + valeurretour.append(self.eval_val_item(item)) + return valeurretour + else: + valeur=self.eval_val_item(new_valeur) + return valeur + + def eval_val_item(self,new_valeur): + """ + Tente d'evaluer new_valeur comme un concept, un parametre, un objet Python + Si c'est impossible retourne new_valeur inchange + argument new_valeur : string (nom de concept, de parametre, expression ou simple chaine) + """ + if self.etape and self.etape.parent: + valeur=self.etape.parent.eval_in_context(new_valeur,self.etape) + return valeur + else: + try : + valeur = eval(val) + return valeur + except: + #traceback.print_exc() + return new_valeur + pass + def cherche_item_parametre (self,new_valeur): try: - nomparam=new_valeur[0:new_valeur.find("[")] - indice=new_valeur[new_valeur.find("[")+1:new_valeur.find("]")] - for p in self.jdc.params: - if p.nom == nomparam : - if int(indice) < len(p.get_valeurs()): - itparam=parametre.ITEM_PARAMETRE(p,int(indice)) - return itparam - return None - except: - return None + nomparam=new_valeur[0:new_valeur.find("[")] + indice=new_valeur[new_valeur.find("[")+1:new_valeur.find("]")] + for p in self.jdc.params: + if p.nom == nomparam : + if int(indice) < len(p.get_valeurs()): + itparam=parametre.ITEM_PARAMETRE(p,int(indice)) + return itparam + return None + except: + return None def update_concept(self,sd): if type(self.valeur) in (types.ListType,types.TupleType) : @@ -420,38 +447,41 @@ class MCSIMP(I_OBJECT.OBJECT): 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) + self.fin_modif() + step.reset_context() #print "set_valeur_co",new_objet return 1,"Concept créé" - + 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 + avant étape, sinon enlève la référence à ces concepts """ #print "verif_existence_sd" # Attention : possible probleme avec include + # A priori il n'y a pas de raison de retirer les concepts non existants + # avant etape. En fait il s'agit uniquement eventuellement de ceux crees par une macro l_sd_avant_etape = self.jdc.get_contexte_avant(self.etape).values() if type(self.valeur) in (types.TupleType,types.ListType) : l=[] - self.init_modif() 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=tuple(l) - self.fin_modif() + if sd in l_sd_avant_etape or self.etape.get_sdprods(sd.nom) is sd: + l.append(sd) + else: + l.append(sd) + if len(l) < len(self.valeur): + self.init_modif() + self.valeur=tuple(l) + self.fin_modif() else: if isinstance(self.valeur,ASSD) : - if self.valeur not in l_sd_avant_etape : + if self.valeur not in l_sd_avant_etape and self.etape.get_sdprods(self.valeur.nom) is None: self.init_modif() - self.valeur = None + self.valeur = None self.fin_modif() def get_min_max(self): @@ -495,101 +525,51 @@ class MCSIMP(I_OBJECT.OBJECT): genea = self.get_genealogie() if "VALE_C" in genea and "DEFI_FONCTION" in genea : return 3 if "VALE" in genea and "DEFI_FONCTION" in genea : return 2 - print dir(self) return 0 + def valide_item(self,item): + """Valide un item isolé. Cet item est candidat à l'ajout à la liste existante""" + valid=1 + try: + #on verifie le type + self.typeProto.adapt(item) + #on verifie les choix possibles + self.intoProto.adapt(item) + #on ne verifie pas la cardinalité + if self.definition.validators: + valid=self.definition.validators.verif_item(item) + except ValError,e: + valid=0 + return valid + + def verif_type(self,item): + """Verifie le type d'un item de liste""" + try: + #on verifie le type + self.typeProto.adapt(item) + valid=1 + except ValError,e: + valid=0 + return valid + #-------------------------------------------------------------------------------- #ATTENTION SURCHARGE : 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 - v=self.valeur - # verification presence - if self.isoblig() and v == None : - if cr == 'oui' : - self.cr.fatal(string.join(("Mot-clé : ",self.nom," obligatoire non valorisé"))) - valid = 0 - - if v is None: - valid=0 - if cr == 'oui' : - self.cr.fatal("None n'est pas une valeur autorisée") - else: - # type,into ... - #PN ??? je n ose pas y toucher ??? - #if v.__class__.__name__ in ('PARAMETRE','EVAL', 'ITEM_PARAMETRE','PARAMETRE_EVAL'): - if ((issubclass(v.__class__,param2.Formula)) or - (v.__class__.__name__ in ('EVAL', 'ITEM_PARAMETRE','PARAMETRE_EVAL'))): - verif_type=self.verif_typeihm(v) - else: - verif_type=self.verif_type(val=v,cr=None) - # cas des tuples avec un ITEM_PARAMETRE - if verif_type == 0: - if type(v) == types.TupleType : - new_val=[] - for i in v: - if ((issubclass(i.__class__,param2.Formula)) or - (i.__class__.__name__ in ('EVAL', 'ITEM_PARAMETRE','PARAMETRE_EVAL'))): - if self.verif_typeihm(val=i,cr=cr) == 0: - verif_type = 0 - break - else: - new_val.append(i) - if new_val != [] : - verif_type=self.verif_type(val=new_val,cr=cr) - else : - # Cas d une liste de paramétre - verif_type=self.verif_typeliste(val=v,cr=cr) - else: - verif_type=self.verif_type(val=v,cr=cr) - valid = verif_type*self.verif_into(cr=cr)*self.verif_card(cr=cr) - # - # On verifie les validateurs s'il y en a et si necessaire (valid == 1) - # - if valid and self.definition.validators and not self.definition.validators.verif(self.valeur): - if cr == 'oui' : - self.cr.fatal(string.join(("Mot-clé : ",self.nom,"devrait avoir ",self.definition.validators.info()))) - valid=0 - # fin des validateurs - # - # cas d un item Parametre - if self.valeur.__class__.__name__ == 'ITEM_PARAMETRE': - valid=self.valeur.isvalid() - if valid == 0: - if cr == 'oui' : - self.cr.fatal(string.join( repr (self.valeur), " a un indice incorrect")) - - self.set_valid(valid) - return self.valid - - def verif_typeihm(self,val,cr='non'): try : val.eval() - return 1 + return 1 except : - pass + traceback.print_exc() + pass return self.verif_type(val,cr) def verif_typeliste(self,val,cr='non') : verif=0 for v in val : - verif=verif+self.verif_typeihm(v,cr) + verif=verif+self.verif_typeihm(v,cr) return verif - + diff --git a/Ihm/I_OBJECT.py b/Ihm/I_OBJECT.py index 99a54efb..d7d7c164 100644 --- a/Ihm/I_OBJECT.py +++ b/Ihm/I_OBJECT.py @@ -155,3 +155,6 @@ class OBJECT: #def __del__(self): # print "__del__",self + +class ErrorObj(OBJECT):pass + diff --git a/Ihm/I_VALIDATOR.py b/Ihm/I_VALIDATOR.py index 3e6aa3ac..cd2f3b03 100644 --- a/Ihm/I_VALIDATOR.py +++ b/Ihm/I_VALIDATOR.py @@ -1,52 +1,22 @@ # -*- coding: utf-8 -*- -""" - Ce module contient des classes permettant de définir des validateurs - pour EFICAS. Ces classes constituent un complément à des classes existantes - dans Noyau/N_VALIDATOR.py ou de nouvelles classes de validation. - Ces classes complémentaires ne servent que pour l'IHM d'EFICAS. - Elles servent essentiellement à ajouter des comportements spécifiques - IHM aux classes existantes dans le Noyau. - Ces comportements pourront etre rapatries dans le Noyau quand leur - interface sera stabilisée. -""" -import types - -class Valid: - """ - Cette classe est la classe mere de toutes les classes complémentaires - que l'on trouve dans Ihm. - """ - -class ListVal(Valid):pass - -class RangeVal(ListVal):pass - -class CardVal(Valid):pass - -class PairVal(ListVal):pass - -class EnumVal(ListVal):pass - -class NoRepeat(ListVal):pass - -class LongStr(ListVal):pass - -class OrdList(ListVal):pass - -CoercableFuncs = { types.IntType: int, - types.LongType: long, - types.FloatType: float, - types.ComplexType: complex, - types.UnicodeType: unicode } - -class TypeVal(ListVal):pass - -class InstanceVal(ListVal):pass - -class FunctionVal(Valid):pass - -class OrVal(Valid):pass - -class AndVal(Valid):pass +from Noyau.N_VALIDATOR import * + +class Compulsory(Compulsory): + def has_into(self): + return 0 + def valide_liste_partielle(self,liste_courante=None): + return 1 + +class OrdList(OrdList): + def valide_liste_partielle(self,liste_courante=None): + """ + Méthode de validation de liste partielle pour le validateur OrdList + """ + try: + self.convert(liste_courante) + valid=1 + except: + valid=0 + return valid diff --git a/Installation/README b/Installation/README index 4a575ba9..3bb4cf06 100755 --- a/Installation/README +++ b/Installation/README @@ -1,14 +1,14 @@ - ================================================= - Procédure d'installation d'EFICAS - ================================================= + ================================================= + Procédure d'installation d'EFICAS + ================================================= Pré-requis : ------------ - - Python 2.1 ou supérieur avec Tkinter - - PMW 8.0.5 ou supérieur + - Python 2.1 ou supérieur avec Tkinter + - PMW 8.0.5 ou supérieur Installation : -------------- @@ -17,14 +17,14 @@ Installation : 2°) Décompressez ce fichier comme suit : - gunzip eficas.tar.gz - tar xvf eficas.tar + 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 + - 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. diff --git a/Installation/README_install b/Installation/README_install index 081d9428..fa6ded39 100755 --- a/Installation/README_install +++ b/Installation/README_install @@ -1,12 +1,12 @@ - ================================================= - Procédure d'installation d'EFICAS - ================================================= + ================================================= + Procédure d'installation d'EFICAS + ================================================= Pour lancer la procédure d'installation, tapez : - python install.py + python install.py Vous pouvez remplacer 'python' par le chemin d'accès de votre interpréteur Python. @@ -17,24 +17,24 @@ La proc fichier de configuration d'EFICAS qui s'appelle editeur.ini et qui se trouvera, une fois EFICAS, installé, dans le répertoire Eficas/Aster -- Répertoire d'installation : répertoire dans lequel vous voulez installer Eficas -- Répertoire de travail : répertoire de travail temporaire d'EFICAS -- Répertoire matériaux : répertoire dans lequel se trouvent les catalogues matériaux d'ASTER -- Répertoire doc Aster : répertoire dans lequel se trouve le manuel U4 de la doc Aster (format pdf) - ex : /logiciels/aster/NEW6/doc/pdf/u4 -- Exécutable Acrobat Reader : chemin d'accès complet à l'exécutable Acrobat Reader +- Répertoire d'installation : répertoire dans lequel vous voulez installer Eficas +- Répertoire de travail : répertoire de travail temporaire d'EFICAS +- Répertoire matériaux : répertoire dans lequel se trouvent les catalogues matériaux d'ASTER +- Répertoire doc Aster : répertoire dans lequel se trouve le manuel U4 de la doc Aster (format pdf) + ex : /logiciels/aster/NEW6/doc/pdf/u4 +- Exécutable Acrobat Reader : chemin d'accès complet à l'exécutable Acrobat Reader -Catalogues Aster : EFICAS installe par défaut le catalogue Aster v6 qui se trouve en - Eficas/Aster/Cata. - Si vous voulez en installer d'autres, il faut qu'ils se trouvent dans ce même répertoire - ou qu'il y ait un lien dans ce répertoire vers le fichier. - Pour ajouter d'autres catalogues, il faut aller modifier directement le fichier editeur.ini +Catalogues Aster : EFICAS installe par défaut le catalogue Aster v6 qui se trouve en + Eficas/Aster/Cata. + Si vous voulez en installer d'autres, il faut qu'ils se trouvent dans ce même répertoire + ou qu'il y ait un lien dans ce répertoire vers le fichier. + Pour ajouter d'autres catalogues, il faut aller modifier directement le fichier editeur.ini - + -Lancement d'EFICAS : le fichier à lancer est Eficas/Aster/eficas_aster.py - il faut le lancer précédé du chemin d'accès à l'interpréteur Python comme - pour la procédure d'installation. +Lancement d'EFICAS : le fichier à lancer est Eficas/Aster/eficas_aster.py + il faut le lancer précédé du chemin d'accès à l'interpréteur Python comme + pour la procédure d'installation. diff --git a/Installation/install.py b/Installation/install.py index 1427f5ef..399f6215 100755 --- a/Installation/install.py +++ b/Installation/install.py @@ -496,7 +496,7 @@ class Config(Tkinter.Toplevel): self.install_running = 0 return except : - traceback.print_exc() + traceback.print_exc() self.install_running = 0 self.afficher_fatale("Impossible de copier certains fichiers") @@ -784,7 +784,7 @@ class Config(Tkinter.Toplevel): cata = """catalogues = (('ASTER','v6',rep_cata + 'cata_STA6.py','python','defaut'),)\n""" f.write(cata) f.close() - + def move_files(self): """ diff --git a/Minicode/homard_cata_V6n.py b/Minicode/homard_cata_V6n.py index 72e1b545..a31fdf9c 100755 --- a/Minicode/homard_cata_V6n.py +++ b/Minicode/homard_cata_V6n.py @@ -11,7 +11,7 @@ from Accas import * JdC = JDC_CATA(code='HOMARD', execmodul=None, regles = (AU_MOINS_UN('DONNEES_HOMARD'),), - ) + ) # Type le plus general #class entier (ASSD):pass @@ -114,23 +114,23 @@ DONNEES_HOMARD=PROC(nom="DONNEES_HOMARD",op= 189, docu="U7.04.01-b", # regles=( AU_MOINS_UN('TYPE_RAFFINEMENT_LIBRE','TYPE_RAFFINEMENT_UNIFORME'), EXCLUS('TYPE_RAFFINEMENT_LIBRE','TYPE_RAFFINEMENT_UNIFORME'),), - TYPE_RAFFINEMENT_LIBRE = FACT(statut='f', - RAFFINEMENT = SIMP(statut='o',typ='TXM', + TYPE_RAFFINEMENT_LIBRE = FACT(statut='f', + RAFFINEMENT = SIMP(statut='o',typ='TXM', position='global', fr="Choix du mode de raffinement.", ang="Choice of refinement mode.", into=("LIBRE","UNIFORME",) ), - DERAFFINEMENT = SIMP(statut='o',typ='TXM', + DERAFFINEMENT = SIMP(statut='o',typ='TXM', position='global', fr="Choix du mode de deraffinement.", ang="Choice of unrefinement mode.", into=("LIBRE",), ),), - TYPE_RAFFINEMENT_UNIFORME = FACT(statut='f', - RAFFINEMENT = SIMP(statut='o',typ='TXM', + TYPE_RAFFINEMENT_UNIFORME = FACT(statut='f', + RAFFINEMENT = SIMP(statut='o',typ='TXM', fr="Choix du mode de raffinement.", ang="Choice of refinement mode.", into=("NON","NON-CONFORME","NON-CONFORME-INDICATEUR") ), - DERAFFINEMENT = SIMP(statut='o',typ='TXM', + DERAFFINEMENT = SIMP(statut='o',typ='TXM', fr="Choix du mode de deraffinement.", ang="Choice of unrefinement mode.", into=("UNIFORME","NON",), ),), diff --git a/Misc/MakeNomComplet.py b/Misc/MakeNomComplet.py index 4411b388..65c7413c 100644 --- a/Misc/MakeNomComplet.py +++ b/Misc/MakeNomComplet.py @@ -27,13 +27,13 @@ Module MakeNomComplet """ try : - from developpeur import DEVELOPPEUR + from developpeur import DEVELOPPEUR except : - DEVELOPPEUR=None + DEVELOPPEUR=None if DEVELOPPEUR : import developpeur - developpeur.sortie.write( "import de "+__name__+" : $Id: MakeNomComplet.py,v 1.2 2003/03/07 14:30:48 eficas Exp $" ) + developpeur.sortie.write( "import de "+__name__+" : $Id: MakeNomComplet.py,v 1.3.8.1 2006/03/10 15:10:44 eficas Exp $" ) developpeur.sortie.write( "\n" ) @@ -132,12 +132,12 @@ if __name__ == "__main__" : try : - print basename( "/toto/main.py" ) - print "ERREUR" + print basename( "/toto/main.py" ) + print "ERREUR" sys.exit(5) except Exception,e : print str(e) - print "OKAY" + print "OKAY" pass print "FIN NORMALE DE "+__name__ sys.exit(0) diff --git a/Noyau/N_ASSD.py b/Noyau/N_ASSD.py index cae723c5..c8920fbc 100644 --- a/Noyau/N_ASSD.py +++ b/Noyau/N_ASSD.py @@ -1,4 +1,4 @@ -#@ MODIF N_ASSD Noyau DATE 22/02/2005 AUTEUR DURAND C.DURAND +#@ MODIF N_ASSD Noyau DATE 16/05/2006 AUTEUR DURAND C.DURAND # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -61,13 +61,6 @@ class ASSD: 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 @@ -111,13 +104,17 @@ class ASSD: if key[0]=='_':del d[key] return d -class assd(ASSD): - def is_object(valeur): + def par_lot(self): """ - 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 + Retourne True si l'ASSD est créée en mode PAR_LOT='OUI'. """ - return 1 - + if not hasattr(self, 'jdc') or self.jdc == None: + val = None + else: + val = self.jdc.par_lot + return val == 'OUI' +class assd(ASSD): + def __convert__(cls,valeur): + return valeur + __convert__=classmethod(__convert__) diff --git a/Noyau/N_CO.py b/Noyau/N_CO.py index 3f7a3ac7..60750a87 100644 --- a/Noyau/N_CO.py +++ b/Noyau/N_CO.py @@ -1,4 +1,4 @@ -#@ MODIF N_CO Noyau DATE 22/02/2005 AUTEUR DURAND C.DURAND +#@ MODIF N_CO Noyau DATE 16/05/2006 AUTEUR DURAND C.DURAND # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -23,6 +23,7 @@ from N_ASSD import ASSD from N_Exception import AsException +from N_VALIDATOR import ValError import N_utils class CO(ASSD): @@ -40,15 +41,11 @@ class CO(ASSD): else: self.nom=nom - def is_object(valeur): - """ - Indique si valeur est d'un type conforme à la classe (retourne 1) - ou non conforme (retourne 0) - """ - if hasattr(valeur,'_etape') : - # valeur est un concept CO qui a ete transforme par type_sdprod - if valeur.etape == valeur._etape: - # le concept est bien produit par l'etape - return 1 - return 0 - + def __convert__(cls,valeur): + if hasattr(valeur,'_etape') : + # valeur est un concept CO qui a ete transforme par type_sdprod + if valeur.etape == valeur._etape: + # le concept est bien produit par l'etape + return valeur + raise ValError("Pas un concept CO") + __convert__=classmethod(__convert__) diff --git a/Noyau/N_ETAPE.py b/Noyau/N_ETAPE.py index 377ce752..dde08f5b 100644 --- a/Noyau/N_ETAPE.py +++ b/Noyau/N_ETAPE.py @@ -1,4 +1,4 @@ -#@ MODIF N_ETAPE Noyau DATE 22/02/2005 AUTEUR DURAND C.DURAND +#@ MODIF N_ETAPE Noyau DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -117,7 +117,6 @@ class ETAPE(N_MCCOMPO.MCCOMPO): le nommage du concept. """ - if not self.isactif():return self.sdnom=nom try: if self.parent: @@ -356,6 +355,8 @@ class ETAPE(N_MCCOMPO.MCCOMPO): self.etape=self for mocle in self.mc_liste: mocle.reparent(self) + if self.sd and self.reuse == None : + self.sd.jdc=self.jdc def get_cmd(self,nomcmd): """ @@ -393,3 +394,11 @@ class ETAPE(N_MCCOMPO.MCCOMPO): new_sd.nom = self.sd.nom new_etape.copy_intern(self) return new_etape + + def reset_jdc(self,new_jdc): + """ + Reinitialise le nommage du concept de l'etape lors d'un changement de jdc + """ + if self.sd and self.reuse == None : + self.parent.NommerSdprod(self.sd,self.sd.nom) + diff --git a/Noyau/N_FACT.py b/Noyau/N_FACT.py index c92c5934..e5e3b428 100644 --- a/Noyau/N_FACT.py +++ b/Noyau/N_FACT.py @@ -1,4 +1,4 @@ -#@ MODIF N_FACT Noyau DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +#@ MODIF N_FACT Noyau DATE 16/05/2006 AUTEUR DURAND C.DURAND # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -30,6 +30,9 @@ import types import N_ENTITE import N_MCFACT import N_MCLIST +from N__F import _F + +import N_OBJECT class FACT(N_ENTITE.ENTITE): """ @@ -115,7 +118,7 @@ class FACT(N_ENTITE.ENTITE): 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): + elif type(self.defaut) == types.DictType or isinstance(self.defaut,_F): val=self.defaut else: # On ne devrait jamais passer par la @@ -127,11 +130,16 @@ class FACT(N_ENTITE.ENTITE): l.init(nom = nom,parent=parent) if type(val) in (types.TupleType,types.ListType) : for v in val: - objet=self.class_instance(nom=nom,definition=self,val=v,parent=parent) - l.append(objet) - else: + if type(v) == types.DictType or isinstance(v, _F): + objet=self.class_instance(nom=nom,definition=self,val=v,parent=parent) + l.append(objet) + else: + l.append(N_OBJECT.ErrorObj(self,v,parent,nom)) + elif type(val) == types.DictType or isinstance(val, _F): objet=self.class_instance(nom=nom,definition=self,val=val,parent=parent) l.append(objet) + else: + l.append(N_OBJECT.ErrorObj(self,val,parent,nom)) return l diff --git a/Noyau/N_GEOM.py b/Noyau/N_GEOM.py index 70158ae9..0fc610d7 100644 --- a/Noyau/N_GEOM.py +++ b/Noyau/N_GEOM.py @@ -1,4 +1,4 @@ -#@ MODIF N_GEOM Noyau DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +#@ MODIF N_GEOM Noyau DATE 16/05/2006 AUTEUR DURAND C.DURAND # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -55,15 +55,9 @@ class GEOM(ASSD): 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 - + def __convert__(cls,valeur): + return valeur + __convert__=classmethod(__convert__) class geom(GEOM):pass diff --git a/Noyau/N_JDC.py b/Noyau/N_JDC.py index 762dc3fe..5c39d072 100644 --- a/Noyau/N_JDC.py +++ b/Noyau/N_JDC.py @@ -1,4 +1,4 @@ -#@ MODIF N_JDC Noyau DATE 05/09/2005 AUTEUR DURAND C.DURAND +#@ MODIF N_JDC Noyau DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -448,3 +448,11 @@ NONE = None if hasattr(cata,nomcmd): return getattr(cata,nomcmd) + def append_reset(self,etape): + """ + Ajoute une etape provenant d'un autre jdc a la liste des etapes + et remet à jour la parenté de l'étape et des concepts + """ + self.etapes.append(etape) + etape.reparent(self) + etape.reset_jdc(self) diff --git a/Noyau/N_MACRO_ETAPE.py b/Noyau/N_MACRO_ETAPE.py index 87c14e47..43ff1d7d 100644 --- a/Noyau/N_MACRO_ETAPE.py +++ b/Noyau/N_MACRO_ETAPE.py @@ -1,4 +1,4 @@ -#@ MODIF N_MACRO_ETAPE Noyau DATE 31/05/2005 AUTEUR DURAND C.DURAND +#@ MODIF N_MACRO_ETAPE Noyau DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -114,7 +114,6 @@ class MACRO_ETAPE(N_ETAPE.ETAPE): 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 @@ -643,9 +642,22 @@ Le type demande (%s) et le type du concept (%s) devraient etre derives""" %(t,co new_etp.copy_intern(etp) self.etapes.append(new_etp) - - - - - - + def reset_jdc(self,new_jdc): + """ + Reinitialise l'etape avec un nouveau jdc parent new_jdc + """ + if self.sd and self.reuse == None : + self.parent.NommerSdprod(self.sd,self.sd.nom) + for concept in self.sdprods: + self.parent.NommerSdprod(concept,concept.nom) + + def reparent(self,parent): + """ + Cette methode sert a reinitialiser la parente de l'objet + """ + N_ETAPE.ETAPE.reparent(self,parent) + #on ne change pas la parenté des concepts. On s'assure uniquement que le jdc en référence est le bon + for concept in self.sdprods: + concept.jdc=self.jdc + for e in self.etapes: + e.reparent(self) diff --git a/Noyau/N_OBJECT.py b/Noyau/N_OBJECT.py index 5f6061a3..45c96cf2 100644 --- a/Noyau/N_OBJECT.py +++ b/Noyau/N_OBJECT.py @@ -1,4 +1,4 @@ -#@ MODIF N_OBJECT Noyau DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +#@ MODIF N_OBJECT Noyau DATE 16/05/2006 AUTEUR DURAND C.DURAND # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -25,6 +25,7 @@ Ce module contient la classe OBJECT classe mère de tous les objets servant à controler les valeurs par rapport aux définitions """ +from N_CR import CR class OBJECT: """ @@ -99,3 +100,32 @@ class OBJECT: self.parent=parent self.jdc=parent.jdc +class ErrorObj(OBJECT): + """Classe pour objets errones : emule le comportement d'un objet tel mcsimp ou mcfact + """ + def __init__(self,definition,valeur,parent,nom="err"): + self.nom=nom + self.definition=definition + self.valeur=valeur + self.parent=parent + self.mc_liste=[] + if parent : + self.jdc = self.parent.jdc + #self.niveau = self.parent.niveau + #self.etape = self.parent.etape + else: + # Pas de parent + self.jdc = None + #self.niveau = None + #self.etape = None + def isvalid(self,cr='non'): + return 0 + + def report(self): + """ génère le rapport de validation de self """ + self.cr=CR() + self.cr.debut = "Mot-clé invalide : "+self.nom + self.cr.fin = "Fin Mot-clé invalide : "+self.nom + self.cr.fatal("Type non autorisé pour le mot-clé %s : '%s'" % (self.nom,self.valeur)) + return self.cr + diff --git a/Noyau/N_SENSIBILITE.py b/Noyau/N_SENSIBILITE.py new file mode 100644 index 00000000..29ffc1de --- /dev/null +++ b/Noyau/N_SENSIBILITE.py @@ -0,0 +1,180 @@ +#@ MODIF N_SENSIBILITE Noyau DATE 22/05/2006 AUTEUR MCOURTOI M.COURTOIS +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +""" + Ce module contient les règles nécessaires aux commandes sensibles + pour renseigner l'attribut etape.sd.sensi, gérer le caractère réentrant + sur présence de la sensibilité. +""" + +from types import TupleType, ListType +EnumTypes = (TupleType, ListType) + +from N_REGLE import REGLE + +# ----------------------------------------------------------------------------- +class CONCEPT_SENSIBLE(REGLE): + """Règle permettant de renseigner au niveau du catalogue comment sera + rempli le concept (valeur nominale ou dérivée(s) ou les deux...). + """ + def __init__(self, mode, mocle='SENSIBILITE'): + """Constructeur. + mode : manière dont la commande rempli le concept + 'ENSEMBLE' : concept nominal ET dérivées en une seule passe + 'SEPARE' : concept nominal OU dérivée (une ou plusieurs) + mocle : mot-clé contenant les paramètres sensibles. + """ + REGLE.__init__(self) + self.mocle = mocle + self._modes = { 'ENSEMBLE' : 0, 'SEPARE' : 1 } + self.mode = self._modes.get(mode, self._modes['ENSEMBLE']) + + def gettext(self): + """Pour EFICAS + """ + return '' + + def verif(self, args): + """Retourne texte + 1 si ok, 0 si nook. + On stocke dans sd.sensi l'étape courante, c'est-à-dire celle qui + renseigne le concept si cela n'a pas déjà été fait (car verif est + appelé à chaque validation). + """ + obj = args["self"] + etape = obj.etape + id_etape = '%s_%s' % (etape.id, id(etape)) + if etape.sd == None: + return '',1 + if not hasattr(etape.sd,"sensi"): + etape.sd.sensi = {} + # si ENSEMBLE, la sd nominale est forcément produite + if self.mode == self._modes['ENSEMBLE'] and not etape.sd.sensi.has_key('nominal'): + etape.sd.sensi['nominal'] = id_etape + # liste des paramètres sensibles + valeur = obj[self.mocle] + if valeur == None: + # pas de sensibilité, la sd nominale est produite + if not etape.sd.sensi.has_key('nominal'): + etape.sd.sensi['nominal'] = id_etape + return '', 1 + if not type(valeur) in EnumTypes: + valeur = [valeur,] + for v in valeur: + if not etape.sd.sensi.has_key(v.get_name()): + etape.sd.sensi[v.get_name()] = id_etape + return '', 1 + + +# ----------------------------------------------------------------------------- +class REUSE_SENSIBLE(REGLE): + """Limite le caractère réentrant de la commande. + On autorisera reuse seulement si le concept (au sens fortran) n'a pas déjà + été calculé (d'après sd.sensi). Ce sera interdit dans les cas suivants : + - sd nominale calculée et SENSIBILITE absent + - PS1 dans SENSIBILITE et sd dérivée par rapport à PS1 calculée + """ + def __init__(self, mocle='SENSIBILITE'): + """Constructeur. + mocle : mot-clé SENSIBILITE. + """ + REGLE.__init__(self) + self.mocle = mocle + + def gettext(self): + """Pour EFICAS + """ + return '' + + def verif(self,args): + """Retourne texte + 1 si ok, 0 si nook = reuse interdit. + Comme CONCEPT_SENSIBLE est appelé avant (et à chaque validation), + on regarde si sd.sensi[ps] a été renseigné par une étape précédente. + """ + obj = args["self"] + etape = obj.etape + id_etape = '%s_%s' % (etape.id, id(etape)) + sd = etape.sd + # si la commande n'est pas réentrante, rien à faire + if etape.reuse is not None: + valeur = obj[self.mocle] + if valeur is None: + if not hasattr(sd, 'sensi') or sd.sensi.get('nominal', id_etape) != id_etape: + # pas de sensibilite et concept nominal déjà calculé : reuse interdit + text = "Commande non réentrante en l'absence de sensibilité." + return text, 0 + else: + if not type(valeur) in EnumTypes: + valeur = [valeur,] + for ps in valeur: + if hasattr(sd, 'sensi') and sd.sensi.get(ps.nom, id_etape) != id_etape: + # concept dérivé par rapport à ps déjà calculé : reuse interdit + text = "Commande non réentrante : dérivée par rapport à %s déjà calculée" % ps.nom + return text, 0 + return '', 1 + + +# ----------------------------------------------------------------------------- +class DERIVABLE(REGLE): + """Déclare que le concept fourni derrière un mot-clé est dérivable. + Sa présence ne suffit pas à le valider, il faut encore que son attribut + '.sensi' soit cohérent avec le contenu du mot-clé SENSIBILITE (ou l'absence + de celui-ci). + """ + def __init__(self, mocle): + """Constructeur. + mocle : mot-clé dérivable. + """ + REGLE.__init__(self) + self.mocle = mocle + + def gettext(self): + """Pour EFICAS + """ + return '' + + def verif(self,args): + """ + """ + obj = args["self"] + try: + concept = obj[self.mocle] + except IndexError: + return '', 1 + if not type(concept) in EnumTypes: + concept = [concept,] + l_ps = obj["SENSIBILITE"] + for co in concept: + if not l_ps: + # pas de sensibilité + if hasattr(co,"sensi") and not co.sensi.get('nominal'): + text = "%s ne contient que des valeurs dérivées, utilisez le mot cle SENSIBILITE" %\ + co.nom + return text, 0 + else: + # sensibilité spécifiée + if not type(l_ps) in EnumTypes: + l_ps = [l_ps,] + for ps in l_ps: + if not hasattr(co,"sensi") or not co.sensi.get(ps.nom): + text = "La dérivée de %s par rapport à %s n'est pas disponible." %\ + (co.nom, ps.nom) + return text, 0 + return '', 1 + diff --git a/Noyau/N_VALIDATOR.py b/Noyau/N_VALIDATOR.py index 64d1fbac..8781509e 100644 --- a/Noyau/N_VALIDATOR.py +++ b/Noyau/N_VALIDATOR.py @@ -1,4 +1,4 @@ -#@ MODIF N_VALIDATOR Noyau DATE 20/09/2004 AUTEUR DURAND C.DURAND +#@ MODIF N_VALIDATOR Noyau DATE 16/05/2006 AUTEUR DURAND C.DURAND # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -22,12 +22,208 @@ Ce module contient toutes les classes necessaires pour implanter le concept de validateur dans Accas """ -import types,exceptions - -class ValError ( exceptions.Exception ): - pass +import types +import string +import traceback + +class ValError(Exception):pass + +def cls_mro(cls): + if hasattr(cls,"__mro__"):return cls.__mro__ + mro=[cls] + for base in cls.__bases__: + mro.extend(cls_mro(base)) + return mro + +class Protocol: + def __init__(self,name): + self.registry = {} + self.name = name + self.args={} + + def register(self, T, A): + self.registry[T] = A + + def adapt(self, obj): + # (a) verifier si l'objet peut s'adapter au protocole + adapt = getattr(obj, '__adapt__', None) + if adapt is not None: + # on demande à l'objet obj de réaliser lui-meme l'adaptation + return adapt(self) + + # (b) verifier si un adapteur est enregistré (si oui l'utiliser) + if self.registry: + for T in cls_mro(obj.__class__): + if T in self.registry: + return self.registry[T](obj,self,**self.args) + + # (c) utiliser l'adapteur par defaut + return self.default(obj,**self.args) + + def default(self,obj,**args): + raise TypeError("Can't adapt %s to %s" % + (obj.__class__.__name__, self.name)) + +class PProtocol(Protocol): + """Verificateur de protocole paramétré (classe de base)""" + #Protocole paramétré. Le registre est unique pour toutes les instances. La methode register est une methode de classe + registry={} + def __init__(self,name,**args): + self.name = name + self.args=args + def register(cls, T, A): + cls.registry[T] = A + register=classmethod(register) + +class ListProtocol(Protocol): + """Verificateur de protocole liste : convertit un objet quelconque en liste pour validation ultérieure""" + def default(self,obj): + if type(obj) == types.TupleType : + if obj[0] in ('RI','MP'): + #il s'agit d'un complexe ancienne mode. La cardinalite vaut 1 + return (obj,) + else: + return obj + elif type(obj) == types.ListType : + return obj + elif obj == None : + # pas de valeur affecte. La cardinalite vaut 0 + return obj + elif type(obj) == types.StringType : + #il s'agit d'une chaine. La cardinalite vaut 1 + return (obj,) + else: + try: + # si l'objet supporte len, on a la cardinalite + length=len(obj) + return obj + except: + # sinon elle vaut 1 + return (obj,) + +listProto=ListProtocol("list") + +class TypeProtocol(PProtocol): + """Verificateur de type parmi une liste de types possibles""" + #pas de registre par instance. Registre unique pour toutes les instances de TypeProtocol + registry={} + def __init__(self,name,typ=None): + PProtocol.__init__(self,name,typ=typ) + self.typ=typ + + def default(self,obj,typ): + for type_permis in typ: + if type_permis == 'R': + if type(obj) in (types.IntType,types.FloatType,types.LongType):return obj + elif type_permis == 'I': + if type(obj) in (types.IntType,types.LongType):return obj + elif type_permis == 'C': + if self.is_complexe(obj):return obj + elif type_permis == 'TXM': + if type(obj)==types.StringType:return obj + elif type_permis == 'shell': + if type(obj)==types.StringType:return obj + elif type(type_permis) == types.ClassType: + if self.is_object_from(obj,type_permis):return obj + elif type(type_permis) == types.InstanceType: + try: + if type_permis.__convert__(obj) : return obj + except: + pass + else: + print "Type non encore géré %s" %`type_permis` + + raise ValError("%s n'est pas d'un type autorisé: %s" % (repr(obj),typ)) + + def is_complexe(self,valeur): + """ Retourne 1 si valeur est un complexe, 0 sinon """ + if type(valeur) in (types.ComplexType,types.IntType,types.FloatType,types.LongType): + # Pour permettre l'utilisation de complexes Python + return 1 + elif type(valeur) != types.TupleType : + # On n'autorise pas les listes pour les complexes + return 0 + elif len(valeur) != 3: + return 0 + else: + # Un complexe doit etre un tuple de longueur 3 avec 'RI' ou 'MP' comme premiere + # valeur suivie de 2 reels. + if string.strip(valeur[0]) in ('RI','MP'): + try: + v1=reelProto.adapt(valeur[1]),reelProto.adapt(valeur[2]) + return 1 + except: + return 0 + else: + return 0 -class Valid: + def is_object_from(self,objet,classe): + """ + Retourne 1 si objet est une instance de la classe classe, 0 sinon + """ + convert = getattr(classe, '__convert__', None) + if convert is not None: + # classe verifie les valeurs + try: + v= convert(objet) + return v is not None + except: + return 0 + # On accepte les instances de la classe et des classes derivees + return type(objet) == types.InstanceType and isinstance(objet,classe) + +reelProto=TypeProtocol("reel",typ=('R',)) + +class CardProtocol(PProtocol): + """Verificateur de cardinalité """ + #pas de registre par instance. Registre unique pour toutes les instances + registry={} + def __init__(self,name,min=1,max=1): + PProtocol.__init__(self,name,min=min,max=max) + + def default(self,obj,min,max): + length=len(obj) + if length < min or length >max: + raise ValError("Nombre d'arguments de %s incorrect (min = %s, max = %s)" % (repr(obj),min,max) ) + return obj + +class IntoProtocol(PProtocol): + """Verificateur de choix possibles : liste discrète ou intervalle""" + #pas de registre par instance. Registre unique pour toutes les instances + registry={} + def __init__(self,name,into=None,val_min='**',val_max='**'): + PProtocol.__init__(self,name,into=into,val_min=val_min,val_max=val_max) + self.val_min=val_min + self.val_max=val_max + + def default(self,obj,into,val_min,val_max): + if into: + if obj not in into: + raise ValError("La valeur : %s ne fait pas partie des choix possibles %s" % (repr(obj),into) ) + else: + #on est dans le cas d'un ensemble continu de valeurs possibles (intervalle) + if type(obj) in (types.IntType,types.FloatType,types.LongType) : + if val_min == '**': val_min = obj -1 + if val_max == '**': val_max = obj +1 + if obj < val_min or obj > val_max : + raise ValError("La valeur : %s est en dehors du domaine de validité [ %s , %s ]" % (repr(obj),self.val_min,self.val_max) ) + return obj + +class MinStr: + #exemple de classe pour verificateur de type + #on utilise des instances de classe comme type (typ=MinStr(3,6), par exemple) + def __init__(self,min,max): + self.min=min + self.max=max + + def __convert__(self,valeur): + if type(valeur) == types.StringType and self.min <= len(valeur) <= self.max:return valeur + raise ValError("%s n'est pas une chaine de longueur comprise entre %s et %s" % (valeur,self.min,self.max)) + + def __repr__(self): + return "TXM de longueur entre %s et %s" %(self.min,self.max) + +class Valid(PProtocol): """ Cette classe est la classe mere des validateurs Accas Elle doit etre derivee @@ -37,12 +233,9 @@ class Valid: @ivar cata_info: raison de la validite ou de l'invalidite du validateur meme @type cata_info: C{string} """ - def __init__(self,*tup,**args): - """ - Cette methode sert a initialiser les attributs du validateur - """ - self.cata_info="" - raise "Must be implemented" + registry={} + def __init__(self,**args): + PProtocol.__init__(self,"valid",**args) def info(self): """ @@ -173,21 +366,6 @@ class Valid: """ return into_courant - def is_param(self,valeur): - """ - Cette méthode indique si valeur est un objet de type PARAMETRE - dont on cherchera à evaluer la valeur (valeur.valeur) - """ - return type(valeur) == types.InstanceType and valeur.__class__.__name__ in ('PARAMETRE',) - - def is_unknown(self,valeur): - """ - Cette méthode indique si valeur est un objet de type inconnu - c'est à dire pas de type PARAMETRE - """ - return type(valeur) == types.InstanceType and valeur.__class__.__name__ not in ( - 'entier','reel','chaine', 'complexe','liste','PARAMETRE_EVAL','PARAMETRE') - class ListVal(Valid): """ Cette classe sert de classe mère pour tous les validateurs qui acceptent @@ -211,6 +389,19 @@ class ListVal(Valid): liste_choix.append(e) return liste_choix + def convert(self,valeur): + """ + Méthode convert pour les validateurs de listes. Cette méthode + fait appel à la méthode convert_item sur chaque élément de la + liste. + """ + if type(valeur) in (types.ListType,types.TupleType): + for val in valeur: + self.convert_item(val) + return valeur + else: + return self.convert_item(valeur) + def verif(self,valeur): """ Méthode verif pour les validateurs de listes. Cette méthode @@ -218,8 +409,6 @@ class ListVal(Valid): liste. Si valeur est un paramètre, on utilise sa valeur effective valeur.valeur. """ - if self.is_param(valeur): - valeur=valeur.valeur if type(valeur) in (types.ListType,types.TupleType): for val in valeur: if not self.verif_item(val): @@ -228,164 +417,58 @@ class ListVal(Valid): else: return self.verif_item(valeur) -class RangeVal(ListVal): - """ - Exemple de classe validateur : verification qu'une valeur - est dans un intervalle. - Pour une liste on verifie que tous les elements sont - dans l'intervalle - Susceptible de remplacer les attributs "vale_min" "vale_max" - dans les catalogues - """ - def __init__(self,low,high): - self.low=low - self.high=high - self.cata_info="%s doit etre inferieur a %s" %(low,high) - - def info(self): - return "valeur dans l'intervalle %s , %s" %(self.low,self.high) - - def verif_item(self,valeur): - return valeur > self.low and valeur < self.high - - def info_erreur_item(self) : - return "La valeur doit etre comprise entre %s et %s" % (self.low, - self.high) - - def verif_cata(self): - if self.low > self.high : return 0 - return 1 - -class CardVal(Valid): +class Compulsory(ListVal): """ - Exemple de classe validateur : verification qu'une liste est - d'une longueur superieur a un minimum (min) et inferieure - a un maximum (max). - Susceptible de remplacer les attributs "min" "max" dans les - catalogues + Validateur operationnel + Verification de la présence obligatoire d'un élément dans une liste """ - def __init__(self,min='**',max='**'): - self.min=min - self.max=max - self.cata_info="%s doit etre inferieur a %s" % (min,max) + registry={} + def __init__(self,elem=()): + if type(elem) not in (types.ListType,types.TupleType): elem=(elem,) + Valid.__init__(self,elem=elem) + self.elem=elem + self.cata_info="" def info(self): - return "longueur de liste comprise entre %s et %s" % (self.min,self.max) - - def info_erreur_liste(self): - return "Le cardinal de la liste doit etre compris entre %s et %s" % (self.min,self.max) - - def is_list(self): - return self.max == '**' or self.max > 1 + return "valeur %s obligatoire" % `self.elem` - def get_into(self,liste_courante=None,into_courant=None): - if into_courant is None: - return None - elif liste_courante is None: - return into_courant - elif self.max == '**': - return into_courant - elif len(liste_courante) < self.max: - return into_courant - else: - return [] + def default(self,valeur,elem): + return valeur def verif_item(self,valeur): return 1 - def verif(self,valeur): - if type(valeur) in (types.ListType,types.TupleType): - if self.max != '**' and len(valeur) > self.max:return 0 - if self.min != '**' and len(valeur) < self.min:return 0 - return 1 - else: - if self.max != '**' and 1 > self.max:return 0 - if self.min != '**' and 1 < self.min:return 0 - return 1 + def convert(self,valeur): + elem=list(self.elem) + for val in valeur: + v=self.adapt(val) + if v in elem:elem.remove(v) + if elem: + raise ValError("%s ne contient pas les elements obligatoires : %s " %(valeur,elem)) + return valeur - def verif_cata(self): - if self.min != '**' and self.max != '**' and self.min > self.max : return 0 + def has_into(self): return 1 - def valide_liste_partielle(self,liste_courante=None): - validite=1 - if liste_courante != None : - if len(liste_courante) > self.max : - validite=0 - return validite - -class PairVal(ListVal): - """ - Exemple de classe validateur : verification qu'une valeur - est paire. - Pour une liste on verifie que tous les elements sont - pairs - """ - def __init__(self): - self.cata_info="" - - def info(self): - return "valeur paire" - - def info_erreur_item(self): - return "La valeur saisie doit etre paire" - - def verif_item(self,valeur): - if type(valeur) == types.InstanceType: - if self.is_param(valeur): - valeur=valeur.valeur - else: - return 0 - return valeur % 2 == 0 - def verif(self,valeur): - if type(valeur) in (types.ListType,types.TupleType): - for val in valeur: - if val % 2 != 0:return 0 - return 1 + if type(valeur) not in (types.ListType,types.TupleType): + liste=list(valeur) else: - if valeur % 2 != 0:return 0 - return 1 - -class EnumVal(ListVal): - """ - Exemple de classe validateur : verification qu'une valeur - est prise dans une liste de valeurs. - Susceptible de remplacer l attribut "into" dans les catalogues - """ - def __init__(self,into=()): - if type(into) not in (types.ListType,types.TupleType): into=(into,) - self.into=into - self.cata_info="" - - def info(self): - return "valeur dans %s" % `self.into` - - def verif_item(self,valeur): - if valeur not in self.into:return 0 - return 1 - - def has_into(self): + liste=valeur + for val in self.elem : + if val not in liste : return 0 return 1 - def get_into(self,liste_courante=None,into_courant=None): - if into_courant is None: - liste_choix= list(self.into) - else: - liste_choix=[] - for e in into_courant: - if e in self.into: - liste_choix.append(e) - return liste_choix - def info_erreur_item(self): return "La valeur n'est pas dans la liste des choix possibles" class NoRepeat(ListVal): """ + Validateur operationnel Verification d'absence de doublons dans la liste. """ def __init__(self): + Valid.__init__(self) self.cata_info="" def info(self): @@ -394,6 +477,17 @@ class NoRepeat(ListVal): def info_erreur_liste(self): return "Les doublons ne sont pas permis" + def default(self,valeur): + if valeur in self.liste : raise ValError("%s est un doublon" % valeur) + return valeur + + def convert(self,valeur): + self.liste=[] + for val in valeur: + v=self.adapt(val) + self.liste.append(v) + return valeur + def verif_item(self,valeur): return 1 @@ -424,9 +518,11 @@ class NoRepeat(ListVal): class LongStr(ListVal): """ + Validateur operationnel Verification de la longueur d une chaine """ def __init__(self,low,high): + ListVal.__init__(self,low=low,high=high) self.low=low self.high=high self.cata_info="" @@ -437,21 +533,35 @@ class LongStr(ListVal): def info_erreur_item(self): return "Longueur de la chaine incorrecte" + def convert(self,valeur): + for val in valeur: + v=self.adapt(val) + return valeur + def verif_item(self,valeur): - low=self.low - high=self.high + try: + self.adapt(valeur) + return 1 + except: + return 0 + + def default(self,valeur,low,high): + if type(valeur) != types.StringType : + raise ValError("%s n'est pas une string" % repr(valeur)) if valeur[0]=="'" and valeur[-1]=="'" : low=low+2 high=high+2 - if len(valeur) < low :return 0 - if len(valeur) > high:return 0 - return 1 + if len(valeur) < low or len(valeur) > high : + raise ValError("%s n'est pas de la bonne longueur" % repr(valeur)) + return valeur class OrdList(ListVal): """ + Validateur operationnel Verification qu'une liste est croissante ou decroissante """ def __init__(self,ord): + ListVal.__init__(self,ord=ord) self.ord=ord self.cata_info="" @@ -461,22 +571,22 @@ class OrdList(ListVal): def info_erreur_liste(self) : return "La liste doit etre en ordre "+self.ord - def verif(self,valeur): - if type(valeur) in (types.ListType,types.TupleType): - if self.ord=='croissant': - var=valeur[0] - for val in valeur[1:]: - if valvar:return 0 - var=val - return 1 - else: - return 1 + def convert(self,valeur): + self.val=None + self.liste=valeur + for v in valeur: + self.adapt(v) + return valeur + + def default(self,valeur,ord): + if self.ord=='croissant': + if self.val is not None and valeur self.val: + raise ValError("%s n'est pas par valeurs decroissantes" % repr(self.liste)) + self.val=valeur + return valeur def verif_item(self,valeur): return 1 @@ -501,160 +611,61 @@ class OrdList(ListVal): liste_choix.append(e) return liste_choix -CoercableFuncs = { types.IntType: int, - types.LongType: long, - types.FloatType: float, - types.ComplexType: complex, - types.UnicodeType: unicode } - -class TypeVal(ListVal): +class OrVal(Valid): """ - Cette classe est un validateur qui controle qu'une valeur - est bien du type Python attendu. - Pour une liste on verifie que tous les elements sont du bon type. + Validateur operationnel + Cette classe est un validateur qui controle une liste de validateurs + Elle verifie qu'au moins un des validateurs de la liste valide la valeur """ - def __init__(self, aType): - if type(aType) != types.TypeType: - aType=type(aType) - self.aType=aType - try: - self.coerce=CoercableFuncs[ aType ] - except: - self.coerce = self.identity + def __init__(self,validators=()): + if type(validators) not in (types.ListType,types.TupleType): + validators=(validators,) + self.validators=[] + for validator in validators: + if type(validator) == types.FunctionType: + self.validators.append(FunctionVal(validator)) + else: + self.validators.append(validator) + self.cata_info="" def info(self): - return "valeur de %s" % self.aType - - def identity ( self, value ): - if type( value ) == self.aType: - return value - raise ValError + return "\n ou ".join([v.info() for v in self.validators]) - def verif_item(self,valeur): - try: - self.coerce(valeur) - except: - return 0 - return 1 + def convert(self,valeur): + for validator in self.validators: + try: + return validator.convert(valeur) + except: + pass + raise ValError("%s n'est pas du bon type" % repr(valeur)) -class InstanceVal(ListVal): - """ - Cette classe est un validateur qui controle qu'une valeur est - bien une instance (au sens Python) d'une classe - Pour une liste on verifie chaque element de la liste - """ - def __init__(self,aClass): - if type(aClass) == types.InstanceType: - aClass=aClass.__class__ - self.aClass=aClass + def info_erreur_item(self): + l=[] + for v in self.validators: + err=v.info_erreur_item() + if err != " " : l.append(err) + chaine=" \n ou ".join(l) + return chaine - def info(self): - return "valeur d'instance de %s" % self.aClass.__name__ + def info_erreur_liste(self): + l=[] + for v in self.validators: + err=v.info_erreur_liste() + if err != " " : l.append(err) + chaine=" \n ou ".join(l) + return chaine - def verif_item(self,valeur): - if not isinstance(valeur,self.aClass): return 0 - return 1 - -def ImpairVal(valeur): - """ - Cette fonction est un validateur. Elle verifie que la valeur passee - est bien un nombre impair. - """ - if type(valeur) in (types.ListType,types.TupleType): - for val in valeur: - if val % 2 != 1:return 0 - return 1 - else: - if valeur % 2 != 1:return 0 - return 1 - -ImpairVal.info="valeur impaire" - -class F1Val(Valid): - """ - Cette classe est un validateur de dictionnaire (mot cle facteur ?). Elle verifie - que la somme des cles A et B vaut une valeur donnee - en parametre du validateur - """ - def __init__(self,somme=10): - self.somme=somme - self.cata_info="" - - def info(self): - return "valeur %s pour la somme des cles A et B " % self.somme - - def verif(self,valeur): - if type(valeur) in (types.ListType,types.TupleType): - for val in valeur: - if not val.has_key("A"):return 0 - if not val.has_key("B"):return 0 - if val["A"]+val["B"] != self.somme:return 0 - return 1 - else: - if not valeur.has_key("A"):return 0 - if not valeur.has_key("B"):return 0 - if valeur["A"]+valeur["B"] != self.somme:return 0 - return 1 - -class FunctionVal(Valid): - """ - Cette classe est un validateur qui est initialise avec une fonction - """ - def __init__(self,function): - self.function=function - - def info(self): - return self.function.info - - def verif(self,valeur): - return self.function(valeur) - -class OrVal(Valid): - """ - Cette classe est un validateur qui controle une liste de validateurs - Elle verifie qu'au moins un des validateurs de la liste valide la valeur - """ - def __init__(self,validators=()): - if type(validators) not in (types.ListType,types.TupleType): - validators=(validators,) - self.validators=[] - for validator in validators: - if type(validator) == types.FunctionType: - self.validators.append(FunctionVal(validator)) - else: - self.validators.append(validator) - self.cata_info="" - - def info(self): - return "\n ou ".join([v.info() for v in self.validators]) - - def info_erreur_item(self): - l=[] - for v in self.validators: - err=v.info_erreur_item() - if err != " " : l.append(err) - chaine=" \n ou ".join(l) - return chaine - - def info_erreur_liste(self): - l=[] - for v in self.validators: - err=v.info_erreur_liste() - if err != " " : l.append(err) - chaine=" \n ou ".join(l) - return chaine - - def is_list(self): - """ - Si plusieurs validateurs sont reliés par un OU - il suffit qu'un seul des validateurs attende une liste - pour qu'on considère que leur union attend une liste. - """ - for validator in self.validators: - v=validator.is_list() - if v : - return 1 - return 0 + def is_list(self): + """ + Si plusieurs validateurs sont reliés par un OU + il suffit qu'un seul des validateurs attende une liste + pour qu'on considère que leur union attend une liste. + """ + for validator in self.validators: + v=validator.is_list() + if v : + return 1 + return 0 def verif(self,valeur): for validator in self.validators: @@ -727,11 +738,12 @@ class OrVal(Valid): class AndVal(Valid): """ + Validateur operationnel Cette classe est un validateur qui controle une liste de validateurs Elle verifie que tous les validateurs de la liste valident la valeur """ def __init__(self,validators=()): - if type(validators) not in (types.ListType,types.TupleType): + if type(validators) not in (types.ListType,types.TupleType): validators=(validators,) self.validators=[] for validator in validators: @@ -744,6 +756,11 @@ class AndVal(Valid): def info(self): return "\n et ".join([v.info() for v in self.validators]) + def convert(self,valeur): + for validator in self.validators: + valeur=validator.convert(valeur) + return valeur + def info_erreur_item(self): chaine="" a=1 @@ -877,3 +894,301 @@ def validatorFactory(validator): return AndVal(do_liste(validator)) else: return validator + +# Ci-dessous : exemples de validateur (peu testés) + +class RangeVal(ListVal): + """ + Exemple de classe validateur : verification qu'une valeur + est dans un intervalle. + Pour une liste on verifie que tous les elements sont + dans l'intervalle + Susceptible de remplacer les attributs "vale_min" "vale_max" + dans les catalogues + """ + def __init__(self,low,high): + self.low=low + self.high=high + self.cata_info="%s doit etre inferieur a %s" %(low,high) + + def info(self): + return "valeur dans l'intervalle %s , %s" %(self.low,self.high) + + def convert_item(self,valeur): + if valeur > self.low and valeur < self.high:return valeur + raise ValError("%s devrait etre comprise entre %s et %s" %(valeur,self.low,self.high)) + + def verif_item(self,valeur): + return valeur > self.low and valeur < self.high + + def info_erreur_item(self) : + return "La valeur doit etre comprise entre %s et %s" % (self.low, + self.high) + + def verif_cata(self): + if self.low > self.high : return 0 + return 1 + +class CardVal(Valid): + """ + Exemple de classe validateur : verification qu'une liste est + d'une longueur superieur a un minimum (min) et inferieure + a un maximum (max). + Susceptible de remplacer les attributs "min" "max" dans les + catalogues + """ + def __init__(self,min='**',max='**'): + self.min=min + self.max=max + self.cata_info="%s doit etre inferieur a %s" % (min,max) + + def info(self): + return "longueur de liste comprise entre %s et %s" % (self.min,self.max) + + def info_erreur_liste(self): + return "Le cardinal de la liste doit etre compris entre %s et %s" % (self.min,self.max) + + def is_list(self): + return self.max == '**' or self.max > 1 + + def get_into(self,liste_courante=None,into_courant=None): + if into_courant is None: + return None + elif liste_courante is None: + return into_courant + elif self.max == '**': + return into_courant + elif len(liste_courante) < self.max: + return into_courant + else: + return [] + + def convert(self,valeur): + if type(valeur) in (types.ListType,types.TupleType): + l=len(valeur) + elif valeur is None: + l=0 + else: + l=1 + if self.max != '**' and l > self.max:raise ValError("%s devrait etre de longueur inferieure a %s" %(valeur,self.max)) + if self.min != '**' and l < self.min:raise ValError("%s devrait etre de longueur superieure a %s" %(valeur,self.min)) + return valeur + + def verif_item(self,valeur): + return 1 + + def verif(self,valeur): + if type(valeur) in (types.ListType,types.TupleType): + if self.max != '**' and len(valeur) > self.max:return 0 + if self.min != '**' and len(valeur) < self.min:return 0 + return 1 + else: + if self.max != '**' and 1 > self.max:return 0 + if self.min != '**' and 1 < self.min:return 0 + return 1 + + def verif_cata(self): + if self.min != '**' and self.max != '**' and self.min > self.max : return 0 + return 1 + + def valide_liste_partielle(self,liste_courante=None): + validite=1 + if liste_courante != None : + if len(liste_courante) > self.max : + validite=0 + return validite + +class PairVal(ListVal): + """ + Exemple de classe validateur : verification qu'une valeur + est paire. + Pour une liste on verifie que tous les elements sont + pairs + """ + def __init__(self): + ListVal.__init__(self) + self.cata_info="" + + def info(self): + return "valeur paire" + + def info_erreur_item(self): + return "La valeur saisie doit etre paire" + + def convert(self,valeur): + for val in valeur: + v=self.adapt(val) + if v % 2 != 0:raise ValError("%s contient des valeurs non paires" % repr(valeur)) + return valeur + + def default(self,valeur): + return valeur + + def verif_item(self,valeur): + if type(valeur) == types.InstanceType: + return 0 + return valeur % 2 == 0 + + def verif(self,valeur): + if type(valeur) in (types.ListType,types.TupleType): + for val in valeur: + if val % 2 != 0:return 0 + return 1 + else: + if valeur % 2 != 0:return 0 + return 1 + +class EnumVal(ListVal): + """ + Exemple de classe validateur : verification qu'une valeur + est prise dans une liste de valeurs. + Susceptible de remplacer l attribut "into" dans les catalogues + """ + def __init__(self,into=()): + if type(into) not in (types.ListType,types.TupleType): into=(into,) + self.into=into + self.cata_info="" + + def info(self): + return "valeur dans %s" % `self.into` + + def convert_item(self,valeur): + if valeur in self.into:return valeur + raise ValError("%s contient des valeurs hors des choix possibles: %s " %(valeur,self.into)) + + def verif_item(self,valeur): + if valeur not in self.into:return 0 + return 1 + + def has_into(self): + return 1 + + def get_into(self,liste_courante=None,into_courant=None): + if into_courant is None: + liste_choix= list(self.into) + else: + liste_choix=[] + for e in into_courant: + if e in self.into: + liste_choix.append(e) + return liste_choix + + def info_erreur_item(self): + return "La valeur n'est pas dans la liste des choix possibles" + +def ImpairVal(valeur): + """ + Exemple de validateur + Cette fonction est un validateur. Elle verifie que la valeur passee + est bien un nombre impair. + """ + if type(valeur) in (types.ListType,types.TupleType): + for val in valeur: + if val % 2 != 1:return 0 + return 1 + else: + if valeur % 2 != 1:return 0 + return 1 + +ImpairVal.info="valeur impaire" + +class F1Val(Valid): + """ + Exemple de validateur + Cette classe est un validateur de dictionnaire (mot cle facteur ?). Elle verifie + que la somme des cles A et B vaut une valeur donnee + en parametre du validateur + """ + def __init__(self,somme=10): + self.somme=somme + self.cata_info="" + + def info(self): + return "valeur %s pour la somme des cles A et B " % self.somme + + def verif(self,valeur): + if type(valeur) in (types.ListType,types.TupleType): + for val in valeur: + if not val.has_key("A"):return 0 + if not val.has_key("B"):return 0 + if val["A"]+val["B"] != self.somme:return 0 + return 1 + else: + if not valeur.has_key("A"):return 0 + if not valeur.has_key("B"):return 0 + if valeur["A"]+valeur["B"] != self.somme:return 0 + return 1 + +class FunctionVal(Valid): + """ + Exemple de validateur + Cette classe est un validateur qui est initialise avec une fonction + """ + def __init__(self,function): + self.function=function + + def info(self): + return self.function.info + + def verif(self,valeur): + return self.function(valeur) + +CoercableFuncs = { types.IntType: int, + types.LongType: long, + types.FloatType: float, + types.ComplexType: complex, + types.UnicodeType: unicode } + +class TypeVal(ListVal): + """ + Exemple de validateur + Cette classe est un validateur qui controle qu'une valeur + est bien du type Python attendu. + Pour une liste on verifie que tous les elements sont du bon type. + """ + def __init__(self, aType): + if type(aType) != types.TypeType: + aType=type(aType) + self.aType=aType + try: + self.coerce=CoercableFuncs[ aType ] + except: + self.coerce = self.identity + + def info(self): + return "valeur de %s" % self.aType + + def identity ( self, value ): + if type( value ) == self.aType: + return value + raise ValError + + def convert_item(self,valeur): + return self.coerce(valeur) + + def verif_item(self,valeur): + try: + self.coerce(valeur) + except: + return 0 + return 1 + +class InstanceVal(ListVal): + """ + Exemple de validateur + Cette classe est un validateur qui controle qu'une valeur est + bien une instance (au sens Python) d'une classe + Pour une liste on verifie chaque element de la liste + """ + def __init__(self,aClass): + if type(aClass) == types.InstanceType: + aClass=aClass.__class__ + self.aClass=aClass + + def info(self): + return "valeur d'instance de %s" % self.aClass.__name__ + + def verif_item(self,valeur): + if not isinstance(valeur,self.aClass): return 0 + return 1 + diff --git a/Tests/HTMLTestRunner.py b/Tests/HTMLTestRunner.py new file mode 100644 index 00000000..8da592f2 --- /dev/null +++ b/Tests/HTMLTestRunner.py @@ -0,0 +1,772 @@ +""" +A TestRunner for use with the Python unit testing framework. It +generates a HTML report to show the result at a glance. + +The simplest way to use this is to invoke its main method. E.g. + + import unittest + import HTMLTestRunner + + ... define your tests ... + + if __name__ == '__main__': + HTMLTestRunner.main() + + +To customize the report, instantiates a HTMLTestRunner object and set +the parameters. HTMLTestRunner is a counterpart to unittest's +TextTestRunner. E.g. + + # output to a file + fp = file('my_report.html', 'wb') + runner = HTMLTestRunner.HTMLTestRunner( + stream=fp, + title='My unit test', + report_attrs=[('Version','1.2.3')], + description='This demonstrates the report output by HTMLTestRunner.' + ) + + # Use an external stylesheet. + # See the Template_mixin class for more customizable options + runner.STYLESHEET_TMPL = '' + + # run the test + runner.run(my_test_suite) + + +------------------------------------------------------------------------ +Copyright (c) 2004-2006, Wai Yip Tung +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +* Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +* Neither the name Wai Yip Tung nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +""" + +# URL: http://tungwaiyip.info/software/HTMLTestRunner.html + +__author__ = "Wai Yip Tung" +__version__ = "0.8.0" + + +""" +Changes in 0.8.0 +* Define Template_mixin class for customization. +* Workaround a IE 6 bug that it does not treat + +%(heading)s +%(report)s +%(ending)s + + + +""" + # variables: (title, generator, stylesheet, heading, report, ending) + + + # ------------------------------------------------------------------------ + # Stylesheet + # + # alternatively use a for external style sheet, e.g. + # + + STYLESHEET_TMPL = """ + +""" + + + + # ------------------------------------------------------------------------ + # Heading + # + + HEADING_TMPL = """
+

%(title)s

+%(parameters)s +

%(description)s

+
+ +""" # variables: (title, parameters, description) + + HEADING_ATTRIBUTE_TMPL = """

%(name)s: %(value)s

+""" # variables: (name, value) + + + + # ------------------------------------------------------------------------ + # Report + # + + REPORT_TMPL = """ +
+ ++++++++ + + + + + + + + +%(test_list)s + + + + + + + + +
Class/Test caseCountPassFailErrorView
Total%(count)s%(Pass)s%(fail)s%(error)s 
+""" # variables: (test_list, count, Pass, fail, error) + + + REPORT_CLASS_TMPL = r""" + + %(name)s + %(count)s + %(Pass)s + %(fail)s + %(error)s + Detail + +""" # variables: (style, name, count, Pass, fail, error, cid) + + + REPORT_TEST_WITH_OUTPUT_TMPL = r""" + +
%(name)s
+ %(status)s + +""" # variables: (tid, Class, style, name, status) + + + REPORT_TEST_NO_OUTPUT_TMPL = r""" + +
%(name)s
+ %(status)s + +""" # variables: (tid, Class, style, name, status) + + + REPORT_TEST_OUTPUT_TMPL = r""" + +""" # variables: (id, output) + + + + # ------------------------------------------------------------------------ + # ENDING + # + + ENDING_TMPL = """
 
""" + +# -------------------- The end of the Template class ------------------- + + + +def jsEscapeString(s): + """ Escape s for use as a Javascript String """ + return s.replace('\\','\\\\') \ + .replace('\r', '\\r') \ + .replace('\n', '\\n') \ + .replace('"', '\\"') \ + .replace("'", "\\'") \ + .replace("&", '\\x26') \ + .replace("<", '\\x3C') \ + .replace(">", '\\x3E') + # Note: non-ascii unicode characters do not need to be encoded + # Note: previously we encode < as <, etc. However IE6 fail to treat

Show +Summary +Failed +All +