From 09790f5b0817be8ecc6e6f100e0f1e50ce6cd65f Mon Sep 17 00:00:00 2001 From: "pascale.noyret" Date: Wed, 1 Apr 2020 12:23:10 +0200 Subject: [PATCH] pour Tests MT --- MT/MT_Cata_V2020.py | 1041 +++++++++++++++++ MT/prefs_MT.py | 2 +- .../generator_CARMEL3D_temporel.py | 139 ++- .../oldGenerator_CARMEL3D_frequentiel.py} | 0 4 files changed, 1111 insertions(+), 71 deletions(-) create mode 100644 MT/MT_Cata_V2020.py rename generator/{ => oldCodes}/generator_CARMEL3D_temporel.py (91%) rename generator/{generator_CARMEL3D_frequentiel.py => oldCodes/oldGenerator_CARMEL3D_frequentiel.py} (100%) diff --git a/MT/MT_Cata_V2020.py b/MT/MT_Cata_V2020.py new file mode 100644 index 00000000..c1df53fe --- /dev/null +++ b/MT/MT_Cata_V2020.py @@ -0,0 +1,1041 @@ +## -*- coding: utf-8 -*- +# +## -------------------------------------------------- +## debut entete +## -------------------------------------------------- +# +# 20120510 : suppression de la valeur par defaut de MATERIAU->PARAMETRES_MAT->NU +# changement du nom MATERIAU->PARAMETRES_MAT->MASS_VOL en MATERIAU->PARAMETRES_MAT->RHO +# +# 20120619 : changement ordre d'affichage des macros -> ordre de création +# 20120725 : modification definition (matrices A,K,M) palier et support +# 20130411 : ajout elements dans palier generalise (mail tdg + comm tdg) +# +# todo : supprimer les noeuds -> definir les elements par leur longueur +# +# +# +# +# + + + + + + + + +from Accas import * +# + +import types +class Tuple: + def __init__(self,ntuple): + self.ntuple=ntuple + + def __convert__(self,valeur): + if type(valeur) == bytes: + return None + if len(valeur) != self.ntuple: + return None + return valeur + + def info(self): + return "Tuple de %s elements" % self.ntuple + + __repr__=info + __str__=info + + +#CONTEXT.debug = 1 +VERSION_CATALOGUE="2019.0.0"; +JdC = JDC_CATA(code = 'MT', + execmodul = None, + regles = (AU_MOINS_UN ( 'LIGNE_ARBRE',), + AU_PLUS_UN ( 'LIGNE_ARBRE',)), + ) # Fin JDC_CATA + +class Direction(ASSD): pass +class Materiau(ASSD): pass +#class Masse(ASSD): pass +class Zone(ASSD): pass +class Palier(ASSD): pass +#class Masse(ASSD): pass +#class ConditionsAuxLimites(ASSD): pass +class LigneArbre(ASSD): pass +class Support(ASSD): pass +class Butee(ASSD): pass +class PalTor(ASSD):pass +#class Noeud(ASSD): pass + +## def macro_noeuds(self, NOEUD, **args): +## """ +## """ +## if NOEUD is not None: +## self.type_sdprod(NOEUD, Noeud) +## pass +## else: +## raise AsException("Impossible de typer les concepts resultats") + +## return Noeuds + +############################# MATERIAUX ######################################## +# @todo +# introduction manuelle => dans ce cas l'utilisateur definit le +# materiau comme ci-dessous +# recuperation depuis une bibliothÚque de materiau => sera specife +# plus tard +MATERIAUX = MACRO(nom = 'MATERIAUX', + op = None, + sd_prod = Materiau, + reentrant = 'n', + UIinfo = {"groupes": ("Machine tournante",)}, + fr = "Renseignement des caracteristiques des materiaux", + TYPE_INTRO = SIMP(statut='o', + fr = "Mode de description des caracteristiques des materiaux", + typ='TXM', + into=('MANUELLE','FICHIER'), + min=1, + max=1, + defaut='MANUELLE', + ), # end TYPE_INTRO + PARAMETRES_MAT = BLOC(condition = "((TYPE_INTRO == 'MANUELLE') )", + #MASS_VOL = SIMP(statut='o', typ='R', min=1, max=1, fr='masse volumique'), + fr = "Saisie manuelle des caracteristiques du materiau", + RHO = SIMP(statut='o', + typ='R', + min=1, + max=1, + fr='Masse volumique (kg/m**3)', + ), # end RHO + E = SIMP(statut='o', + typ='R', + min=1, + max=1, + fr="Module d'Young (Pa)", + ), # end E + NU = SIMP(statut='o', + typ='R', + min=1, + max=1, + val_min=-1.0, + val_max=0.5, + fr='Coefficient de cisaillement (-1.0 <= NU <= 0.5)', + ), # end NU + ALPHA = SIMP(statut='f', + typ='R', + min=1, + max=1, + fr = "Coefficient permettant de construire une matrice d'amortissement visqueux proportionnel a la rigidite", + ), # end ALPHA + BETA = SIMP(statut='f', + typ='R', + min=1, + max=1, + fr = "Coefficient permettant de construire une matrice d'amortissement visqueux proportionnel a la masse", + ), # end BETA + GAMMA = SIMP(statut='f', + typ='R', + min=1, + max=1, + fr = "Coefficient d'amortissement hysteretique permettant de definir le module d'Young complexe", + ), # end GAMMA + ), # end PARAMETRES_MAT + FICHIER_MAT = BLOC(condition = "((TYPE_INTRO == 'FICHIER') )", + MATERIAU_CATALOGUE = SIMP(statut='o', + fr="Fichier decrivant les caracteristiques materiaux (format decrit dans le Manuel Utilisateur)", + min=1, + max=1, + typ=('Fichier','Fichier materiau (*.*)'), + ), # end MATERIAU_CATALOGUE + ), # end FICHIER_MAT + #SIMP(typ=('Fichier','JDC Files (*.comm)'),docu='',min=1,max=1,statut='o',defaut=None) + ) # end MATERIAU + + + +############################# ZONES ######################################## +ZONE = MACRO(nom = 'ZONE', + op = None, + sd_prod = Zone, + reentrant = 'n', + UIinfo = {"groupes":("Machine tournante",)}, + fr = "Description d'une zone (comportant noeuds et elements, et en option masses ponctuelles et fissures)", + regles = (AU_MOINS_UN("ELEMENTS")), + fenetreIhm='deplie1Niveau', + MASSE = FACT(statut='f', + min=0, + max='**', + fr = "Description des masses ponctuelles", + #POSITION = SIMP(statut='o', + NOEUD = SIMP(statut='o', + typ='TXM', + defaut=None, + fr = "Definition de la position axiale de la masse (label du noeud de la ligne d'arbres en vis-a-vis)", + ), # end POSITION + TYPE_MASSE = SIMP(statut='o', + typ='TXM', + fr = "Renseignement du type de masse consideree", + into=('DISQUE','AILETTE','QUELCONQUE'), + ), # end TYPE_MASSE + DISQUE = BLOC(condition = "((TYPE_MASSE == 'DISQUE') )", + TYPE_SAISIE = SIMP(statut='o', + typ='TXM', + fr = "Type de saisie des parametres du DISQUE", + into = ('MECANIQUE','GEOMETRIQUE'), + defaut = 'MECANIQUE' + ), # end TYPE_SAISIE + PARAMETRES_MECANIQUE = BLOC(condition = "TYPE_SAISIE == 'MECANIQUE'", + PARAMETRES = FACT(statut = 'o', + fr = "Parametres mecaniques pour un DISQUE", + MASSE = SIMP(statut='o', + typ='R', + val_min=0, + fr = "Masse du DISQUE (kg)", + ), # end MASSE_DISQUE + INERTIEX = SIMP(statut='o', + typ='R', + fr = "Inertie du DISQUE en X (kg.m**2)", + ), # end INERTIEX + INERTIEY = SIMP(statut='o', + typ='R', + fr = "Inertie du DISQUE en Y (kg.m**2)", + ), # end INERTIEY + INERTIEZ = SIMP(statut='o', + typ='R', + fr = "Inertie du DISQUE en Z (axe de rotation de la ligne d'arbres)(kg.m**2)", + ), # end INERTIEZ + ) # end PARAMETRES_DISQUE_M + ), # end PARAMETRES_MECANIQUE + PARAMETRES_GEOMETRIQUE = BLOC(condition = "TYPE_SAISIE == 'GEOMETRIQUE'", + PARAMETRES = FACT(statut = 'o', + fr = "Parametres geometriques pour un DISQUE", + DIAMETRE_EXT = SIMP(statut='o', + typ='R', + val_min=0, + fr = "Diametre exterieur du DISQUE (m)", + ), # end MASSE_DISQUE + DIAMETRE_INT = SIMP(statut='o', + typ='R', + fr = "Diametre interieur du DISQUE (m). Verifier le diametre exterieur du rotor avant saisie", + ), # end INERTIEX + EPAISSEUR = SIMP(statut='o', + typ='R', + val_min=0, + fr = "Epaisseur (dans la direction axiale) du DISQUE (m)", + ), # end INERTIEY + MATERIAU = SIMP(statut='o', + typ=Materiau, + fr = "Materiau constituant le DISQUE (doit avoir ete defini via une entree MATERIAUX)", + ), # end INERTIEZ + ) # nd PARAMETRES_DISQUE_G + ), # end PARAMETRES_MECANIQUE + ), # end DISQUE + AILETTE = BLOC(condition = "((TYPE_MASSE == 'AILETTE') )", + TYPE_SAISIE = SIMP(statut='o', + typ='TXM', + fr = "Type de saisie des parametres de la rangee d'AILETTES", + into = ('MECANIQUE','GEOMETRIQUE'), + defaut = 'MECANIQUE' + ), # end TYPE_SAISIE + PARAMETRES_MECANIQUE = BLOC(condition = "TYPE_SAISIE == 'MECANIQUE'", + PARAMETRES = FACT(statut = 'o', + fr = "Parametres mecaniques de la rangee d'AILETTES", + MASSE = SIMP(statut='o', + typ='R', + val_min=0, + fr = "Masse de la rangee d'AILETTES (kg)", + ), # end MASSE_AILETTE + INERTIEX = SIMP(statut='o', + typ='R', + fr = "Inertie de la rangee d'AILETTES en X (kg.m**2)", + ), # end INERTIEX + INERTIEY = SIMP(statut='o', + typ='R', + fr = "Inertie de la rangee d'AILETTES en Y (kg.m**2)", + ), # end INERTIEY + INERTIEZ = SIMP(statut='o', + typ='R', + fr = "Inertie de la rangee d'AILETTES en Z (axe de rotation de la ligne d'arbres) (kg.m**2)", + ), # end INERTIEZ + ) # nd PARAMETRES_AILETTE_M + ), # end PARAMETRES_MECANIQUE + PARAMETRES_GEOMETRIQUE = BLOC(condition = "TYPE_SAISIE == 'GEOMETRIQUE'", + PARAMETRES = FACT(statut = 'o', + fr = "Parametres geometriques d'une AILETTE", + MASSE_AILETTE = SIMP(statut='o', + typ='R', + val_min=0, + fr = "Masse d'une AILETTE (kg)", + ), # end MASSE_AILETTE + RAYON = SIMP(statut='o', + typ='R', + val_min=0, + fr = "Distance entre le pied de l'AILETTE et le centre de rotation (m). Verifier le diametre exterieur du rotor avant saisie", + ), # end RAYON + HAUTEUR = SIMP(statut='o', + typ='R', + val_min=0, + fr = "Distance entre les deux extremites de l'AILETTE (m)", + ), # end HAUTEUR + BASE = SIMP(statut='o', + typ='R', + val_min=0, + fr = "Largeur du pied de l'AILETTE (m)", + ), # end BASE + NOMBRE = SIMP(statut='o', + typ='I', + val_min=1, + fr = "Nombre d'AILETTES dans la rangee", + ), + ) # end PARAMETRES_DISQUE + ), # end PARAMETRES_MECANIQUE + ), # end AILETTE + QUELCONQUE = BLOC(condition = "((TYPE_MASSE == 'QUELCONQUE') )", + #TYPE_SAISIE = SIMP(statut='c',typ='TXM',defaut="MECANIQUE"), # cf 20120622 test : mot-clé caché + PARAMETRES = FACT(statut = 'o', + fr = "Parametres pour masse de type QUELCONQUE", + MASSE = SIMP(statut='o', + typ='R', + val_min=0, + fr = "Masse (m)", + ), # end MASSE + INERTIEX = SIMP(statut='o', + typ='R', + fr = "Inertie en X (kg.m**2)", + ), # end INERTIEX + INERTIEY = SIMP(statut='o', + typ='R', + fr = "Inertie en Y (kg.m**2)", + ), # end INERTIEY + INERTIEZ = SIMP(statut='o', + typ='R', + fr = "Inertie en Z (axe de rotation de la ligne d'arbres) (kg.m**2)", + ), # end INERTIEZ + ), # end PARAMETRES_QUELCONQUE + ), # end QUELCONQUE + ), # end MASSE + NOEUDS = SIMP(fr = "Definition des noeuds de la zone (2 noeuds minimum)", + fenetreIhm='Tableau', + homo = ('NOM','POSITION_AXIALE'), + statut='o', + min=2, + max='**', + typ = Tuple(2), + validators=VerifTypeTuple(('TXM','R')), + ), # end NOEUDS + ELEMENTS = FACT(fr = "Definition des elements poutre de la zone", + statut='o', + min=1, + max='**', + NOM = SIMP(statut='o', + typ='TXM', + fr="Label de l'element" + ), # end NOM + NOEUD_DEBUT = SIMP(statut='o', + typ='TXM', + fr= "Noeud de debut de l'element poutre (label d'un noeud)" + ), # end DEBUT + NOEUD_FIN = SIMP(statut='o', + typ='TXM', + fr= "Noeud de fin de l'element poutre (label d'un noeud)" + ), # end FIN + RAFFINEMENT = SIMP(fr = "Choix de raffiner l'element poutre", + statut='o', + typ='TXM', + into=('OUI','NON'), + defaut='NON' + ), # end RAFFINEMENT + PARAM_RAFFINEMENT = BLOC(fr = "Nombre de points supplementaires a ajouter pour le raffinement (nombre elements : 1 -> nb points + 1)", + condition = "((RAFFINEMENT == 'OUI') )", + NB_POINTS_SUPPL = SIMP(statut='o', + typ='I' + ), # end NB_POINTS_SUPPL + ), # end PARAM_RAFFINEMENT + MATERIAU = SIMP(statut='o', + typ=Materiau, + fr= "Materiau constituant l'element poutre (doit avoir ete defini via une entree MATERIAUX)" + ), # end MATERIAU + SECTION_MASSE = FACT(statut='o', + fr = "Section a partir de laquelle est determinee la masse de l'element poutre", + TYPE_SECTION = SIMP(statut='o', + fr = "Choix d'une section de dimensions constantes ou variables", + typ='TXM', + into=('CONSTANTE','VARIABLE'), + defaut='CONSTANTE', + ), # end TYPE_SECTION + DIAM_EXTERN_DEBUT = SIMP(statut='o', + typ='R', + fr = "Diametre exterieur en debut d'element poutre (m)", + ), # end DIAM_EXTERN_DEBUT + DIAM_INTERN_DEBUT = SIMP(statut='o', + typ='R', + fr = "Diametre interieur en debut d'element poutre (m) (different de 0 si element creux)", + ), # end DIAM_INTERN_DEBUT + PARAMETRE_SECT_VAR = BLOC(condition = "((TYPE_SECTION == 'VARIABLE') )", + fr = "Renseignement des dimensions de fin d'element (variation lineaire entre le debut et la fin)", + DIAM_EXTERN_SORTIE = SIMP(statut='o', + typ='R', + fr = "Diametre exterieur en fin d'element (m)", + ), # end DIAM_EXTERN_SORTIE + DIAM_INTERN_SORTIE = SIMP(statut='o', + typ='R', + fr = "Diametre interieur en fin d'element (m)", + ), # DIAM_INTERN_SORTIE + ), + ), # end SECTION_MASSE + SECTION_RIGIDITE = FACT(statut='f', + fr = "Section a partir de laquelle est determinee la rigidite de l'element poutre", + TYPE_SECTION = SIMP(statut='o', + fr = "Choix d'une section de dimensions constantes ou variables", + typ='TXM', + into=('CONSTANTE','VARIABLE'), + defaut='CONSTANTE', + ), # end TYPE_SECTION + DIAM_EXTERN_DEBUT = SIMP(statut='o', + typ='R', + fr = "Diametre exterieur en debut d'element poutre (m)", + ), # end DIAM_EXTERN_DEBUT + DIAM_INTERN_DEBUT = SIMP(statut='o', + typ='R', + fr = "Diametre interieur en debut d'element poutre (m) (different de 0 si element creux)", + ), # end DIAM_INTERN_DEBUT + PARAMETRE_SECT_VAR = BLOC(condition = "((TYPE_SECTION == 'VARIABLE') )", + fr = "Renseignement des dimensions de fin d'element (variation lineaire entre le debut et la fin)", + DIAM_EXTERN_SORTIE = SIMP(statut='o', + typ='R', + fr = "Diametre exterieur en fin d'element (m)", + ), # end DIAM_EXTERN_SORTIE + DIAM_INTERN_SORTIE = SIMP(statut='o', + typ='R', + fr = "Diametre interieur en fin d'element (m)", + ), # end DIAM_INTERN_SORTIE + ), # end PARAMETRE_SECT_VAR + ), # end SECTION_RIGIDITE + ), # end ELEMENTS + FISSURE = FACT(statut='f', + fr="Description d'une fissure sur un noeud de l'arbre (licite uniquement si les elements poutres a gauche et a droite du noeud ont des sections masse et rigidite constantes)", + MATERIAU = SIMP(statut='o', + typ=Materiau, + fr="Materiau a la position de la fissure (doit avoir ete defini via une entree MATERIAUX)" + ), # end MATERIAU + NOEUD_FISSURE = SIMP(statut='o', + typ='TXM', + fr="Label du noeud ou est positionnee la fissure", + ), # end POSITION_FISSURE + ORIENTATION_FISSURE = SIMP(statut='o', + typ='R', + fr="Angle initial du fond de fissure par rapport à sa définition dans la loi de comportement de fissure (0. par defaut)(degres)", + ), # end ORIENTATION_FISSURE + FICHIER_RAIDEUR = SIMP(statut='o', + typ=('Fichier','Fichier loi de raideur (*.*)'), + fr="Fichier contenant la loi de comportement en raideur de la fissure", + ), # end FICHIER_RAIDEUR + DIAMETRE = SIMP(statut='o', + typ='R', + fr="Diametre du rotor a l'emplacement de la fissure (m)", + ), # end DIAMETRE + ), # end FISSURE + + ) # end ZONE + +############################# PALIERS ######################################## +PALIER = MACRO(nom = 'PALIER', + op = None, + sd_prod = Palier, + reentrant = 'n', + UIinfo = {"groupes":("Machine tournante",)}, + fr = "Description d'un palier radial", + POSITION = SIMP(statut='o', + typ='R', + defaut=0.0, + fr = "Position axiale (absolue) du palier radial (m)", + ), # end POSITION + NOM_NOEUD = SIMP(statut='f', + typ='TXM', + fr="Nom du noeud dans le cas où plusieurs noeuds se trouvent à la même position axiale"), + TYPE_PALIER = SIMP(statut='o', + fr = "Type de palier radial", + typ='TXM', + into=('PALIER LINEAIRE','PALIER NON-LINEAIRE','LAME FLUIDE'), + ), # end TYPE_PALIER + PALIER_LINEAIRE = BLOC(condition = "((TYPE_PALIER == 'PALIER LINEAIRE') )", + fr = "Description d'un palier radial lineaire", + TYPE_SAISIE = SIMP(statut='o', + fr = "Mode de description des caracteristiques du palier radial lineaire", + typ='TXM', + into=('MANUELLE', 'CATALOGUE'), + ), # end TYPE_SAISIE + MANUELLE = BLOC(condition = "((TYPE_SAISIE == 'MANUELLE') )", + fr = "Saisie manuelle des caracteristiques du palier radial lineaire", + CARAC_PALIER = FACT(statut = 'o',max='**',fr = "Caracteristiques du palier par vitesse de rotation de la ligne d'arbres", + VITESSE_ROTATION = SIMP(statut='o', + typ='R', + fr= "Vitesse de rotation (tr/min)", + ), # end VITESSE_ROTATION + SYME = SIMP(statut = 'o', + typ = 'TXM', + max = 1, + fr = "Symetrie des matrices du palier radial lineaire (KXY=KYX et AXY=AYX)", + into = ('OUI','NON'), + defaut = 'OUI', + ), # end SYME + RIGIDITE_NS = BLOC(condition="(SYME=='NON')", + RIGIDITE=FACT(statut='o',fr="Renseignement des caracteristiques non-symetriques de rigidite du palier radial lineaire", + KXX = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de KXX dans la matrice de rigidite (N/m)", + ),# end KXX + KXY = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de KXY dans la matrice de rigidite (N/m)", + ),# end KXY + KYX = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de KYX dans la matrice de rigidite (N/m)", + ),# end KYX + KYY = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de KYY dans la matrice de rigidite (N/m)", + ),# end KYY + ), # end RIGIDITE + ), # end RIGIDITE_S + RIGIDITE_S = BLOC(condition="(SYME=='OUI')", + RIGIDITE=FACT(statut='o',fr="Renseignement des caracteristiques symetriques de rigidite du palier radial lineaire", + KXX = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de KXX dans la matrice de rigidite (N/m)", + ),# end KXX + KXY = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de KXY dans la matrice de rigidite (N/m)", + ),# end KXY + KYY = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de KYY dans la matrice de rigidite (N/m)", + ),# end KYY + ), # end RIGIDITE + ), # end RIGIDITE_NS + AMORTISSEMENT_NS = BLOC(condition="(SYME=='NON')", + AMORTISSEMENT=FACT(statut='o',fr="Renseignement des caracteristiques non-symetriques d'amortissement du palier radial lineaire", + AXX = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de AXX dans la matrice d'amortissement (N.s/m)", + ),# end AXX + AXY = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de AXY dans la matrice d'amortissement (N.s/m)", + ),# end AXY + AYX = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de AYX dans la matrice d'amortissement (N.s/m)", + ),# end AYX + AYY = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de AYY dans la matrice d'amortissement (N.s/m)", + ),# end AYY + ), # end AMORTISSEMENT + ), # end AMORTISSEMENT_NS + AMORTISSEMENT_S = BLOC(condition="(SYME=='OUI')", + AMORTISSEMENT=FACT(statut='o',fr="Renseignement des caracteristiques symetriques d'amortissement du palier radial lineaire", + AXX = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de AXX dans la matrice d'amortissement (N.s/m)", + ),# end AXX + AXY = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de AXY dans la matrice d'amortissement (N.s/m)", + ),# end AXY + AYY = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de AYY dans la matrice d'amortissement (N.s/m)", + ),# end AYY + ), # end AMORTISSEMENT + ), # end AMORTISSEMENT_S + ), # end CARAC_PALIER + ), # end MANUELLE + CATALOGUE = BLOC(condition = "((TYPE_SAISIE == 'CATALOGUE') )", + fr = "Renseignement des fichiers contenant les caracteristiques du palier radial lineaire", + CATALOGUE_AMORTISSEMENT = SIMP(statut='o', + min=1, + max=1, + typ='Fichier', + fr="Fichier decrivant les caracteristiques d'amortissement (N.s/m) du palier radial lineaire (format decrit dans le Manuel Utilisateur)", + ), # end CATALOGUE_AMORTISSEMENT + CATALOGUE_RIGIDITE = SIMP(statut='o', + min=1, + max=1, + typ='Fichier', + fr="Fichier decrivant les caracteristiques de rigidite (N/m) du palier radial lineaire (format decrit dans le Manuel Utilisateur)", + ), # end CATALOGUE_RIGIDITE + ), # end CATALOGUE + ), # end PALIER_LINEAIRE + LAME_FLUIDE = BLOC(condition = "((TYPE_PALIER == 'LAME FLUIDE') )", + fr = "Description d'une lame fluide", + TYPE_SAISIE = SIMP(statut='o', + fr = "Mode de description des caracteristiques de la lame fluide", + typ='TXM', + defaut = 'MANUELLE', + #into=('MANUELLE', 'CATALOGUE'), #Fonctionnalite catalogue non encore implementee + into=('MANUELLE',), + ), # end TYPE_SAISIE + MANUELLE = BLOC(condition = "((TYPE_SAISIE == 'MANUELLE') )", + fr = "Saisie manuelle des caracteristiques de la lame fluide", + CARAC_PALIER = FACT(statut = 'o',max='**',fr = "Caracteristiques de la lame fluide par vitesse de rotation de la ligne d'arbres", + SYME = SIMP(statut = 'o', + typ = 'TXM', + max = 1, + fr = "Symetrie des matrices de la lame fluide (KXY=KYX et AXY=AYX)", + into = ('OUI','NON'), + defaut = 'OUI', + ), # end SYME + RIGIDITE_NS = BLOC(condition="(SYME=='NON')", + RIGIDITE=FACT(statut='o',fr="Renseignement des caracteristiques non-symetriques de rigidite de la lame fluide", + KXX = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de KXX dans la matrice de rigidite (N/m)", + ),# end KXX + KXY = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de KXY dans la matrice de rigidite (N/m)", + ),# end KXY + KYX = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de KYX dans la matrice de rigidite (N/m)", + ),# end KYX + KYY = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de KYY dans la matrice de rigidite (N/m)", + ),# end KYY + ),# end RIGIDITE + ), # end RIGIDITE_NS + RIGIDITE_S = BLOC(condition="(SYME=='OUI')", + RIGIDITE=FACT(statut='o',fr="Renseignement des caracteristiques symetriques de rigidite de la lame fluide", + KXX = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de KXX dans la matrice de rigidite (N/m)", + ),# end KXX + KXY = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de KXY dans la matrice de rigidite (N/m)", + ),# end KXY + KYY = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de KYY dans la matrice de rigidite (N/m)", + ),# end KYY + ), # end RIGIDITE + ), # end RIGIDITE_S + AMORTISSEMENT_NS = BLOC(condition="(SYME=='NON')", + AMORTISSEMENT=FACT(statut='o',fr="Renseignement des caracteristiques non-symetriques d'amortissement de la lame fluide", + AXX = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de AXX dans la matrice d'amortissement (N.s/m)", + ),# end AXX + AXY = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de AXY dans la matrice d'amortissement (N.s/m)", + ),# end AXY + AYX = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de AYX dans la matrice d'amortissement (N.s/m)", + ),# end AYX + AYY = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de AYY dans la matrice d'amortissement (N.s/m)", + ),# end AYY + ), # end AMORTISSEMENT + ), # end AMORTISSEMENT + #), # end AMORTISSEMENT_NS + AMORTISSEMENT_S = BLOC(condition="(SYME=='OUI')", + AMORTISSEMENT=FACT(statut='o',fr="Renseignement des caracteristiques symetriques d'amortissement de la lame fluide", + AXX = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de AXX dans la matrice d'amortissement (N.s/m)", + ),# end AXX + AXY = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de AXY dans la matrice d'amortissement (N.s/m)", + ),# end AXY + AYY = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de AYY dans la matrice d'amortissement (N.s/m)", + ),# end AYY + ), # end AMORTISSEMENT + ), # end AMORTISSEMENT_S + MASSE_NS = BLOC(condition="(SYME=='NON')", + MASSE=FACT(statut='o',fr="Renseignement des caracteristiques non symetriques de masse de la lame fluide", + MXX = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de MXX dans la matrice de masse (kg)", + ),# end MXX + MXY = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de MXY dans la matrice de masse (kg)", + ),# end MXY + MYX = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de MYX dans la matrice de masse (kg)", + ),# end MYX + MYY = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de MYY dans la matrice de masse (kg)", + ),# end MYY + ), # end MASSE + ), # end MASSE_NS + MASSE_S = BLOC(condition="(SYME=='OUI')", + MASSE=FACT(statut='o',fr="Renseignement des caracteristiques symetriques de masse de la lame fluide", + MXX = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de MXX dans la matrice de masse (kg)", + ),# end MXX + MXY = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de MXY dans la matrice de masse (kg)", + ),# end MXY + MYY = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de MYY dans la matrice de masse (kg)", + ),# end MYY + ), # end MASSE + ), # end MASSE_S + VITESSE_ROTATION = SIMP(statut='o', + typ='R', + fr= "Vitesse de rotation (tr/min)", + ), # end VITESSE_ROTATION + ), # end CARAC_PALIER + ), # end MANUELLE + #Fonctionnalite non encore implementee + CATALOGUE = BLOC(condition = "((TYPE_SAISIE == 'CATALOGUE') )", + PALIERS_CATALOGUE = SIMP(statut='o', + min=1, + max=1, + typ='Fichier', + fr="Format du fichier : CSV.", + ), # end PALIERS_CATALOGUE + ), # end CATALOGUE + + ), # end LAME_FLUIDE + PALIER_NON_LINEAIRE = BLOC(condition = "((TYPE_PALIER == 'PALIER NON-LINEAIRE') )", + fr = "Description d'un palier non-lineaire (licite uniquement en cas d'analyse de type 'TRANSITOIRE ACCIDENTEL'", + TYPE = SIMP(statut='o', + typ='TXM', + into=('PAPANL','PAFINL','PAHYNL','PACONL'), + defaut=None, + fr="Type de palier non-lineaire parmi ceux proposes dans Edyos", + ), # end TYPE + REPERTOIRE_EDYOS = SIMP(statut='o', + typ=('Repertoire'), + defaut=None, + fr="Repertoire 'CDC' du palier non-lineaire utilise (les fichiers Geometrie et Donnees doivent exister dans les repertoires parents respectivement de niveau 2 et 1 de CDC)", + ), # end REPERTOIRE_EDYOS + ), # end PALIER_NON_LINEAIRE + ) # end PALIER + +PALIER_TORSION=MACRO(nom="PALIER_TORSION", + op=None, + sd_prod=PalTor, + reentrant='n', + UIinfo={"groupes":("Machine tournante",)}, + fr="Description d'un palier de torsion", + POSITION = SIMP(statut='o',typ='R',defaut=0.0,fr = "Position axiale (absolue) du palier de torsion (m)",), # end POSITION + TYPE_SAISIE = SIMP(statut='o',typ='TXM',into=('MANUELLE',),fr = "Mode de description des caracteristiques du palier de torsion",), # end TYPE_SAISIE + MANUELLE = BLOC(condition = "((TYPE_SAISIE == 'MANUELLE') )", + fr = "Saisie manuelle des caracteristiques du palier de torsion", + CARAC_PALIER = FACT(statut = 'o',max=1,fr = "Caracteristiques du palier par vitesse de rotation de l'arbre", + VITESSE_ROTATION = SIMP(statut='o',typ='R',min=1,max='**',fr= "Liste des vitesses de rotation (tr/min)",), # end VITESSE_ROTATION + KRZ = SIMP(statut = 'o',typ = 'R',min=1,max = '**',fr = "Liste des caracteristiques de rigidite (N/m) du palier de torsion en fonction de la vitesse de rotation",),# end KRZ + ARZ = SIMP(statut = 'o',typ = 'R',min=1,max = '**',fr = "Liste des caracteristiques d'amortissement (N.s/m) du palier de torsion en fonction de la vitesse de rotation",),# end ARZ + MRZ = SIMP(statut = 'f',typ = 'R',min=1,max = '**',fr = "Liste des caracteristiques de masse ajoutee (kg) du palier de torsion en fonction de la vitesse de rotation",),# end MRZ + ),#end CARAC_PALIER + ), # end MANUELLE + #Fonctionnalite pas encore implementee + CATALOGUE = BLOC(condition = "((TYPE_SAISIE == 'CATALOGUE') )", + fr = "Renseignement des fichiers contenant les caracteristiques du palier de torsion", + CATA_PALIER = SIMP(statut='o',min=1,max=1,typ='Fichier',fr="Format du fichier : CSV.",), # end CATA_PALIER + ), # end CATALOGUE + )#end PALIER TORSION + +BUTEE=MACRO(nom="BUTEE", + op=None, + sd_prod=Butee, + reentrant='n', + UIinfo={"groupes":("Machine tournante",)}, + fr="Description d'une butee", + POSITION = SIMP(statut='o',typ='R',defaut=0.0,fr = "Position axiale (absolue) de la butee (m)",), # end POSITION + TYPE_BUTEE = SIMP(statut='o',typ='TXM',into=('BUTEE LINEAIRE',),fr = "Type de butee",), # end TYPE_BUTEE, BUTEE NON LINEAIRE reintegrable + BUTEE_LINEAIRE=BLOC(condition="TYPE_BUTEE=='BUTEE LINEAIRE'", + fr = "Description d'une butee lineaire", + TYPE_SAISIE = SIMP(statut='o',typ='TXM',into=('MANUELLE',),fr = "Mode de description des caracteristiques de la butee lineaire",), # end TYPE_SAISIE; 'CATALOGUE' reintegrable + MANUELLE=BLOC(condition="TYPE_SAISIE=='MANUELLE'", + fr = "Saisie manuelle des caracteristiques de la butee lineaire", + CARAC_BUTEE=FACT(statut='o',max=1,fr="Caracteristiques de la butee en fonction de la vitesse de rotation", + VITESSE_ROTATION=SIMP(statut='o',typ='R',min=1,max='**',fr="Liste des vitesses de rotation (tr/min)",), + SYMETRIQUE=SIMP(statut='o',typ='TXM',min=1,max=1,into=("OUI","NON"),defaut="OUI",fr="Symetrie des matrices de la butee (KRXRY=KRYRX , ARXRY=ARYRX et MRXRY=MRYRX)",), + + RIGIDITE_NS = BLOC(condition="(SYMETRIQUE=='NON')", + RIGIDITE=FACT(statut='o',max=1,fr="Caracteristiques non-symetriques de rigidite de la butee lineaire en fonction de la vitesse de rotation", + KZZ=SIMP(statut='o',typ='R',min=1,max='**',fr="Rigidite axiale (N/m) de la butee lineaire en fonction de la vitesse de rotation"), + KRXRX=SIMP(statut='f',typ='R',min=1,max='**',fr="Rigidite directe de rotation autour de l'axe X (N/m) de la butee lineaire en fonction de la vitesse de rotation"), + KRXRY=SIMP(statut='f',typ='R',min=1,max='**',fr="Rigidite croisee de rotation autour de l'axe X (N/m) de la butee lineaire en fonction de la vitesse de rotation"), + KRYRX=SIMP(statut='f',typ='R',min=1,max='**',fr="Rigidite croisee de rotation autour de l'axe Y (N/m) de la butee lineaire en fonction de la vitesse de rotation"), + KRYRY=SIMP(statut='f',typ='R',min=1,max='**',fr="Rigidite directe de rotation autour de l'axe Y (N/m) de la butee lineaire en fonction de la vitesse de rotation"), + ), #END RIGIDITE + ),#END RIGIDITE_NS + RIGIDITE_S = BLOC(condition="(SYMETRIQUE=='OUI')", + RIGIDITE=FACT(statut='o',max=1,fr="Caracteristiques symetriques de rigidite de la butee lineaire en fonction de la vitesse de rotation", + KZZ=SIMP(statut='o',typ='R',min=1,max='**',fr="Rigidite axiale (N/m) de la butee lineaire en fonction de la vitesse de rotation"), + KRXRX=SIMP(statut='f',typ='R',min=1,max='**',fr="Rigidite directe de rotation autour de l'axe X (N/m) de la butee lineaire en fonction de la vitesse de rotation"), + KRXRY=SIMP(statut='f',typ='R',min=1,max='**',fr="Rigidite croisee de rotation autour de l'axe X (N/m) de la butee lineaire en fonction de la vitesse de rotation"), + KRYRY=SIMP(statut='f',typ='R',min=1,max='**',fr="Rigidite directe de rotation autour de l'axe Y (N/m) de la butee lineaire en fonction de la vitesse de rotation"), + ), #END RIGIDITE + ),#END RIGIDITE_S + + AMORTISSEMENT_NS = BLOC(condition="(SYMETRIQUE=='NON')", + AMORTISSEMENT=FACT(statut='o',max=1,fr="Caracteristiques non-symetriques d'amortissement de la butee lineaire en fonction de la vitesse de rotation", + AZZ=SIMP(statut='o',typ='R',min=1,max='**',fr="Amortissement axial (N.s/m) de la butee lineaire en fonction de la vitesse de rotation"), + ARXRX=SIMP(statut='f',typ='R',min=1,max='**',fr="Amortissement direct de rotation autour de l'axe X (N.s/m) de la butee lineaire en fonction de la vitesse de rotation"), + ARXRY=SIMP(statut='f',typ='R',min=1,max='**',fr="Amortissement croise de rotation autour de l'axe X (N.s/m) de la butee lineaire en fonction de la vitesse de rotation"), + ARYRX=SIMP(statut='f',typ='R',min=1,max='**',fr="Amortissement croise de rotation autour de l'axe Y (N.s/m) de la butee lineaire en fonction de la vitesse de rotation"), + ARYRY=SIMP(statut='f',typ='R',min=1,max='**',fr="Amortissement croise de rotation autour de l'axe Y (N.s/m) de la butee lineaire en fonction de la vitesse de rotation"), + ),#END AMORTISSEMENT + ),#END AMORTISSEMENT_NS + AMORTISSEMENT_S = BLOC(condition="(SYMETRIQUE=='OUI')", + AMORTISSEMENT=FACT(statut='o',max=1,fr="Caracteristiques symetriques d'amortissement de la butee lineaire en fonction de la vitesse de rotation", + AZZ=SIMP(statut='o',typ='R',min=1,max='**',fr="Amortissement axial (N.s/m) de la butee lineaire en fonction de la vitesse de rotation"), + ARXRX=SIMP(statut='f',typ='R',min=1,max='**',fr="Amortissement direct de rotation autour de l'axe X (N.s/m) de la butee lineaire en fonction de la vitesse de rotation"), + ARXRY=SIMP(statut='f',typ='R',min=1,max='**',fr="Amortissement croise de rotation autour de l'axe X (N.s/m) de la butee lineaire en fonction de la vitesse de rotation"), + ARYRY=SIMP(statut='f',typ='R',min=1,max='**',fr="Amortissement croise de rotation autour de l'axe Y (N.s/m) de la butee lineaire en fonction de la vitesse de rotation"), + ),#END AMORTISSEMENT + ),#END AMORTISSEMENT_S + + INERTIE_NS = BLOC(condition="(SYMETRIQUE=='NON')", + INERTIE=FACT(statut='f',max=1,fr="Caracteristiques non-symetriques de masse ajoutee de la butee lineaire en fonction de la vitesse de rotation", + MZZ=SIMP(statut='f',typ='R',min=1,max='**',fr="Masse ajoutee axiale (kg) de la butee lineaire en fonction de la vitesse de rotation"), + MRXRX=SIMP(statut='f',typ='R',min=1,max='**',fr="Masse ajoutee directe de rotation autour de l'axe X (kg) de la butee lineaire en fonction de la vitesse de rotation"), + MRXRY=SIMP(statut='f',typ='R',min=1,max='**',fr="Masse ajoutee croisee de rotation autour de l'axe X (kg) de la butee lineaire en fonction de la vitesse de rotation"), + MRYRX=SIMP(statut='f',typ='R',min=1,max='**',fr="Masse ajoutee croisee de rotation autour de l'axe Y (kg) de la butee lineaire en fonction de la vitesse de rotation"), + MRYRY=SIMP(statut='f',typ='R',min=1,max='**',fr="Masse ajoutee croisee de rotation autour de l'axe Y (kg) de la butee lineaire en fonction de la vitesse de rotation"), + ),#END INERTIE + ),#END INERTIE_NS + INERTIE_S = BLOC(condition="(SYMETRIQUE=='OUI')", + INERTIE=FACT(statut='f',max=1,fr="Caracteristiques symetriques de masse ajoutee de la butee lineaire en fonction de la vitesse de rotation", + MZZ=SIMP(statut='f',typ='R',min=1,max='**',fr="Masse ajoutee axiale (kg) de la butee lineaire en fonction de la vitesse de rotation"), + MRXRX=SIMP(statut='f',typ='R',min=1,max='**',fr="Masse ajoutee directe de rotation autour de l'axe X (kg) de la butee lineaire en fonction de la vitesse de rotation"), + MRXRY=SIMP(statut='f',typ='R',min=1,max='**',fr="Masse ajoutee croisee de rotation autour de l'axe X (kg) de la butee lineaire en fonction de la vitesse de rotation"), + MRYRY=SIMP(statut='f',typ='R',min=1,max='**',fr="Masse ajoutee croisee de rotation autour de l'axe Y (kg) de la butee lineaire en fonction de la vitesse de rotation"), + ),#END INERTIE + ),#END INERTIE_S + + ),#END CARA_BUTEE + ),#end MANUELLE + CATALOGUE=BLOC(condition="TYPE_SAISIE=='CATALOGUE'", + fr = "Renseignement des fichiers contenant les caracteristiques de la butee lineaire", + ),#END CATALOGUE + ),#END BUTEE LINEAIRE + + BUTEE_NON_LINEAIRE=BLOC(condition="TYPE_BUTEE=='BUTEE NON LINEAIRE'", + fr = "Description d'une butee non-lineaire", + ),#END BUTEE NON LINEAIRE + + );#END BUTEE + +############################# SUPPORT ######################################## +SUPPORT = MACRO(nom = "SUPPORT", + op = None, + sd_prod = Support, + reentrant = 'n', + UIinfo = {"groupes":("Machine tournante",)}, + fr = "Description d'un support ", + TYPE_SUPPORT = SIMP(statut='o', + fr = "Type de support", + typ='TXM', + defaut="RIGIDE", + into=("RIGIDE", "SIMPLIFIE", "GENERALISE", ), + ), # end TYPE_SUPPORT + SIMPLIFIE = BLOC(condition = "((TYPE_SUPPORT == 'SIMPLIFIE') )", + fr = "Description d'un support simplifie", + RIGIDITE = FACT(statut='o', fr = "Renseignement des caracteristiques de rigidite du support simplifie", + KXX = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de KXX dans la matrice de rigidite (N/m)", + ),# end KXX + KXY = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de KXY dans la matrice de rigidite (N/m)", + ),# end KXY + KYX = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de KYX dans la matrice de rigidite (N/m)", + ),# end KYX + KYY = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de KYY dans la matrice de rigidite (N/m)", + ),# end KYY + ), # end RIGIDITE + AMORTISSEMENT = FACT(statut='o', fr= "Renseignement des caracteristiques d'amortissement du support simplifie", + AXX = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de AXX dans la matrice d'amortissement (N.s/m)", + ),# end AXX + AXY = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de AXY dans la matrice d'amortissement (N.s/m)", + ),# end AXY + AYX = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de AYX dans la matrice d'amortissement (N.s/m)", + ),# end AYX + AYY = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de AYY dans la matrice d'amortissement (N.s/m)", + ),# end AYY + ), # end AMORTISSEMENT + MASSE = FACT(statut='o', fr= "Renseignement des caracteristiques de masse du support simplifie", + MXX = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de MXX dans la matrice de masse (kg)", + ),# end MXX + MXY = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de MXY dans la matrice de masse (kg)", + ),# end MXY + MYX = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de MYX dans la matrice de masse (kg)", + ),# end MYX + MYY = SIMP(statut = 'o', + typ = 'R', + max = 1, + fr = "Valeur de MYY dans la matrice de masse (kg)", + ),# end MYY + ), # end MASSE + ), # end SIMPLIFIE + GENERALISE = BLOC(condition = "((TYPE_SUPPORT == 'GENERALISE') )", + fr = "Description d'un support generalise", + ANGL_NAUT = SIMP(statut='f', + fr="Rotation du modele du support generalise a effectuer pour coincider avec le repere de la ligne d'arbres (rotation autour de X, puis Y, puis Z (degres))", + typ='R', + min=3,max=3, + ), # end ANGL_NAUT + TRANS = SIMP(statut='f', + fr="Translation du modele du support generalise a effectuer pour que ses noeuds de connexion soient confondus avec ceux de la ligne d'arbres (translation suivant X, Y et Z (m))", + typ='R', + min=3,max=3, + ), # end TRANS + MAIL_TDG = SIMP(statut='o', + fr="Fichier du maillage du support generalise", + typ=("Fichier","Fichier maillage TdG (*.*)"), + min=1,max=1, + ), # end MAIL_TDG + COMM_TDG = SIMP(statut='o', + fr="Fichier de la mise en donnees du support generalise", + typ=("Fichier","Fichier commande TdG (*.*)"), + min=1,max=1, + ), # end COMM_TDG + NOM_MACRO_ELEMENT_DYNAMIQUE = SIMP(statut='o', + fr="Nom du macro element dynamique cree pour le support generalise", + typ='TXM', + min=1,max=1, + ), # end NOM_MACRO_ELEMENT_DYNAMIQUE + NOM_INTERFACE = SIMP(statut='o', + fr="Nom de l'interface cree pour le support generalise", + typ='TXM', + min=1,max=1, + ), # end NOM_INTERFACE + NOM_GROUP_MA_MASSIF = SIMP(statut='o', + fr="Nom du groupe de maille representant le support generalise", + typ='TXM', + min=1,max=1, + ), # end NOM_GROUP_MA_MASSIF + REDUIT = SIMP(statut='f', + fr="Introduction du mot-cle REDUIT pour le cas ou le nombre d'interfaces n'est pas identique entre le support generalise et la ligne d'arbres", + typ='TXM', + into=("OUI",), + defaut="OUI", + ), # end REDUIT + ), # end GENERALISE + ) # end SUPPORT + +############################# LIGNE_ARBRE ######################################## +LIGNE_ARBRE = MACRO(nom = 'LIGNE_ARBRE', + op = None, + sd_prod = LigneArbre, + reentrant = 'n', + UIinfo = {"groupes":("Machine tournante",)}, + fr = "Description de la ligne d'arbres", + ZONES = SIMP(statut='o', + fr = "Zone(s) composant la ligne d'arbres (choisir, en faisant attention a l'ordre, parmi les entrees ZONE creees)", + typ=Zone, + min=1, + max='**', + ), # end ZONES + PALIERS = SIMP(statut='o', + fr = "Paliers supportant la ligne d'arbres (choisir, en faisant attention a l'ordre, parmi les entrees PALIER creees)", + typ=Palier, + min=2, + max='**', + ), # end PALIERS + BUTEES = SIMP(statut='f', + fr = "Butee(s) guidant axialement la ligne d'arbres (choisir, en faisant attention a l'ordre, parmi les entrees BUTEES creees)", + typ=Butee, + max='**' + ),#end BUTEE + PALIERS_TORSION=SIMP(statut='f', + fr = "Palier(s) de torsion de la ligne d'arbres (choisir, en faisant attention a l'ordre, parmi les entrees PALIERS_TORSION creees)", + typ=PalTor, + max='**' + ),#end PALIERS_TORSION + SUPPORTS = SIMP(statut='o', + fr = "Supports sous les paliers (choisir, en faisant attention a l'ordre, parmi les entrees SUPPORTS creees)", + typ=Support, + min=1, + max='**', + ), # end SUPPORTS + ) # end LIGNE_ARBRE + diff --git a/MT/prefs_MT.py b/MT/prefs_MT.py index ec6a9af5..ac892e7f 100644 --- a/MT/prefs_MT.py +++ b/MT/prefs_MT.py @@ -35,7 +35,7 @@ encoding='iso-8859-1' # catalogues=( - ('MT','V2016',os.path.join(repIni,'MT_Cata_V2016.py'),'python','python'), + ('MT','V2020',os.path.join(repIni,'MT_Cata_V2020.py'),'python','python'), ) nombreDeBoutonParLigne=4 simpleClic=True diff --git a/generator/generator_CARMEL3D_temporel.py b/generator/oldCodes/generator_CARMEL3D_temporel.py similarity index 91% rename from generator/generator_CARMEL3D_temporel.py rename to generator/oldCodes/generator_CARMEL3D_temporel.py index 05a3d85f..5c98cb5a 100644 --- a/generator/generator_CARMEL3D_temporel.py +++ b/generator/oldCodes/generator_CARMEL3D_temporel.py @@ -68,7 +68,7 @@ class CARMEL3DTV0Generator(PythonGenerator): self.text=PythonGenerator.gener(self,obj,format) if self.debug: - print "self.text = %s" % self.text + print ("self.text = ", self.text) # Cette instruction genere le contenu du fichier de parametres pour le code Carmel3D # si le jdc est valide (sinon cela n a pas de sens) @@ -77,7 +77,7 @@ class CARMEL3DTV0Generator(PythonGenerator): # constitution du bloc VERSION du fichier PHYS (existe toujours) self.generBLOC_VERSION(obj) - except ValueError, err: + except ValueError as err: raise ValueError(str(err)) return self.text @@ -181,11 +181,11 @@ class CARMEL3DTV0Generator(PythonGenerator): fileXML = os.path.join(repertory, 'configuration.xml') # nom du fichier de configuration XML (chemin complet) if self.debug: - print "\necriture du fichier XML : ", fileXML - print "self.dictMaterial = ",self.dictMaterial - print "self.dictSource = ",self.dictSource - print "self.dictGroupes = ",self.dictGroupes - print "self.dictMacroGroupes = ",self.dictMacroGroupes + print ("\necriture du fichier XML : ", fileXML) + print ("self.dictMaterial = ",self.dictMaterial) + print ("self.dictSource = ",self.dictSource) + print ("self.dictGroupes = ",self.dictGroupes) + print ("self.dictMacroGroupes = ",self.dictMacroGroupes) root = ET.Element("configuration") @@ -323,7 +323,7 @@ class CARMEL3DTV0Generator(PythonGenerator): #Bloc ... TermeSourceElectrique=ET.SubElement(root, "TermeSourceElectrique") i=0 # ? - if self.debug: print 'self.dictSource = ', self.dictSource + if self.debug: print ('self.dictSource = ', self.dictSource) for source in self.dictSource.keys(): # parcours des sources if len(self.dictSource[source]['milieux']) > 0: # on continue si au moins un groupe de maillage, i.e., milieux est associé à cette source if self.dictSource[source].has_key('STRANDED_INDUCTOR'): # inducteur bobiné @@ -487,7 +487,7 @@ class CARMEL3DTV0Generator(PythonGenerator): # print "le dico complet=%s" %(self.dictGroupes) if self.debug: - print "ecriture du fichier d'execution (SH)" + print ("ecriture du fichier d'execution (SH)") RepCarmel=os.path.join(repertory,"lancer.sh") f = open( RepCarmel, 'wb') self.texteCarmel3D_SH+='cd ' + repertory + ' \n' @@ -506,12 +506,12 @@ class CARMEL3DTV0Generator(PythonGenerator): def generMCSIMP(self,obj) : """recuperation de l objet MCSIMP""" if self.debug: - print "MCSIMP %(v_1)s %(v_2)s" % {'v_1': obj.nom, "v_2": obj.valeur} + print ("MCSIMP", obj.nom, obj.valeur) s=PythonGenerator.generMCSIMP(self,obj) try: self.dicoCourant[obj.nom]=obj.valeurFormatee except: - print "Oubli des messages texte homo='information'" + print ("Oubli des messages texte homo='information'") return s @@ -538,7 +538,7 @@ class CARMEL3DTV0Generator(PythonGenerator): obj.valeur=self.dicoEtapeCourant if self.debug: - print "PROC_ETAPE %(v_1)s %(v_2)s" % {'v_1': unicode(obj.nom), "v_2": unicode(obj.valeur)} + print ("PROC_ETAPE " ,obj.nom, str(obj.valeur)) s=PythonGenerator.generPROC_ETAPE(self,obj) if obj.nom=="PARAMETERS" : self.generBLOC_PARAMETERS(obj) if obj.nom=="SOLVEUR" : self.generSOLVEUR(obj) @@ -557,7 +557,7 @@ class CARMEL3DTV0Generator(PythonGenerator): s=PythonGenerator.generETAPE(self,obj) obj.valeur=self.dicoEtapeCourant if self.debug: - print "ETAPE : obj.nom = %(v_1)s , obj.valeur= %(v_2)s" % {'v_1': obj.nom, 'v_2': obj.valeur} + print ("ETAPE " ,obj.nom, str(obj.valeur)) if obj.nom=="MESHGROUP" : self.generMESHGROUP(obj) if obj.nom=="MATERIAL" : self.generMATERIAL(obj) if obj.nom=="SOURCE" : self.generSOURCE(obj) @@ -577,7 +577,7 @@ class CARMEL3DTV0Generator(PythonGenerator): monGenerateur=generator.plugins[nomPlugin]() jdc_aux_texte=monGenerateur.gener(obj.jdc_aux) if self.debug: - print "jdc_aux_texte : %s" % jdc_aux_texte + print ("jdc_aux_texte : ", jdc_aux_texte) # sauvegarde de tous les matériaux trouvés dans les bibliothèques INCLUDE for cle in monGenerateur.dictMaterial: @@ -586,7 +586,7 @@ class CARMEL3DTV0Generator(PythonGenerator): for cle in monGenerateur.dictSource: self.dictSource[cle] = monGenerateur.dictSource[cle] - print "________FIN MACRO______________________________________" + print ("________FIN MACRO______________________________________") s=PythonGenerator.generMACRO_ETAPE(self,obj) return s @@ -599,7 +599,7 @@ class CARMEL3DTV0Generator(PythonGenerator): """ try: nomGroupe = obj.getSdname() # nom du groupe de maillage, i.e. nom du concept - print "liste des noms sans prefixes %s" %(nomGroupe) + print ("liste des noms sans prefixes", nomGroupe) # test: un et un seul nom de materiau ou source doit etre associe a ce groupe de maillage, via les cles MATERIAL et SOURCE, respectivement. # test sur un seul attribut, non pertinent car il peut y en avoir plusieurs. @@ -608,7 +608,7 @@ class CARMEL3DTV0Generator(PythonGenerator): # on utilise le fait que obj.valeur est un dictionnaire self.dictGroupes[nomGroupe] = {} if self.debug: - print "obj.valeur.keys()= %s" % obj.valeur.keys() + print ("obj.valeur.keys()" , obj.valeur.keys()) #if 'MATERIAL' in obj.valeur.keys() and 'SOURCE' in obj.valeur.keys(): # test d'erreur lors de presence de materiau et source a la fois # raise ValueError,tr(" ce groupe de maillage %s est associe a au moins un materiau et au moins une source." % nomGroupe) # association a un materiau @@ -631,9 +631,9 @@ class CARMEL3DTV0Generator(PythonGenerator): # self.dictGroupes['ordreDomaineJdC'].append(nomGroupe) texte="" texte+="%s"%(obj.valeur['Domaine']) - print"le texte=%s" %(texte) + print ("le texte=", texte) self.dictDomaine[obj.getSdname()]=texte - print "liste des domaines =%s" %(self.dictGroupes[nomGroupe]['DOMAINE']) + print ("liste des domaines " ,self.dictGroupes[nomGroupe]['DOMAINE']) if 'Potentiel_Flottant' in obj.valeur.keys(): self.dictGroupes[nomGroupe]['Potentiel_Flottant'] = True if 'Spire_Exploratrice' in obj.valeur.keys(): @@ -642,9 +642,9 @@ class CARMEL3DTV0Generator(PythonGenerator): # else: # raise ValueError, tr("ce groupe de maillage %s n'est associe a aucun materiau, source ou stranded_inductor_geometry." % nomGroupe) if self.debug: - print "self.dictGroupes= %s" % repr(self.dictGroupes) - except ValueError, err: - raise ValueError, str(err) + print ("self.dictGroupes" , repr(self.dictGroupes)) + except ValueError as err: + raise ValueError (str(err)) def generMACRO_GROUPE(self, obj): """preparation de la ligne NAME referencant le groupe de mailles @@ -653,11 +653,11 @@ class CARMEL3DTV0Generator(PythonGenerator): """ try: nomMacroGroupe = obj.getSdname() # nom du macro groupe - print "liste des noms sans prefixes %s" %(nomMacroGroupe) + print ("liste des noms sans prefixes " ,nomMacroGroupe) self.dictMacroGroupes[nomMacroGroupe] = obj.valeur # sauvegarde des propriétés du macro-groupe if self.debug: - print "obj.valeur.keys()= %s" % obj.valeur.keys() + print ("obj.valeur.keys()" , obj.valeur.keys()) # association a une source if 'LISTE_MESHGROUP' in obj.valeur.keys(): # test de liste définie dans la macro-groupe, sinon erreur listeGroupesMauvaisFormat = obj.valeur['LISTE_MESHGROUP'] # sauvegarde de l'association entre ce macro groupe et un materiau ou source, par son nom, i.e. nom du concept du materiau ou de la source @@ -667,56 +667,57 @@ class CARMEL3DTV0Generator(PythonGenerator): groupe = groupe.replace('"', "") # suppression des guillement doubles self.dictMacroGroupes[nomMacroGroupe]['LISTE'].append(groupe) # sauvegarde du nom au formatage correct else: - raise ValueError, nomMacroGroupe + tr(" : ce MACRO_GROUPE doit contenir une liste de groupes LISTE_MESHGROUP.") + raise ValueError (tr(" : ce MACRO_GROUPE doit contenir une liste de groupes LISTE_MESHGROUP.")) for nomGroupe in self.dictMacroGroupes[nomMacroGroupe]['LISTE']: # liste des groupes MESHGROUP de ce macro-groupe. On leur associe les propriétés du MACRO_GROUPE for propriete in ('SOURCE', 'MATERIAL', 'STRANDED_INDUCTOR_GEOMETRY'): # liste des propriétés automatiques à copier du MACRO_GROUPE à chaque MESHGROUP de la liste if propriete in obj.valeur.keys(): # ce macro-groupe est associé à cette propriété if self.dictGroupes[nomGroupe].has_key(propriete) and self.dictGroupes[nomGroupe][propriete] != self.dictGroupes[nomGroupe][propriete].nom: # erreur, ce meshgroup a déjà une telle propriéte définie, différente - print u"ERREUR! Conflit entre la %s : %s du MACRO_GROUPE %s et celle : %s du MESHGROUP %s associé à ce macro-groupe." % \ - ( propriete, obj.valeur[propriete].nom, nomMacroGroupe, self.dictGroupes[nomGroupe][propriete], nomGroupe ) - raise ValueError, propriete + ',' + obj.valeur[propriete].nom + ',' + nomMacroGroupe + ',' + self.dictGroupes[nomGroupe][propriete] + ',' + nomGroupe\ - + tr(" : conflit entre la propriete (#1:#2) du MACRO_GROUPE (de nom #3) et celle (#4) du MESHGROUP (#5) associe a ce macro-groupe.") + print ("ERREUR! Conflit entre la MACRO_GROUPE et celle : du MESHGROUP associé à ce macro-groupe." ,\ + ( propriete, obj.valeur[propriete].nom, nomMacroGroupe, self.dictGroupes[nomGroupe][propriete], nomGroupe )) + raise ValueError( propriete + ',' + obj.valeur[propriete].nom + ',' + nomMacroGroupe + ',' + self.dictGroupes[nomGroupe][propriete] + ',' + nomGroupe\ + + tr(" : conflit entre la propriete (#1:#2) du MACRO_GROUPE (de nom #3) et celle (#4) du MESHGROUP (#5) associe a ce macro-groupe.")) else : # pas de conflit de cette propriété, alors copie, meme si les propriétés sont les memes pour simplifier self.dictGroupes[nomGroupe][propriete] = obj.valeur[propriete].nom # sauvegarde du nom de la propriété du macro-groupe dans le meshgroup for propriete in ('CONDITION_LIMITE', ): # liste des propriétés définies à l'avance automatiques à copier du MACRO_GROUPE à chaque MESHGROUP de la liste if propriete in obj.valeur.keys(): # ce macro-groupe est associé à cette propriété if self.dictGroupes[nomGroupe].has_key(propriete) and self.dictGroupes[nomGroupe][propriete] != self.dictGroupes[nomGroupe][propriete]: # erreur, ce meshgroup a déjà une telle propriéte définie, différente - print u"ERREUR! Conflit entre la %s : %s du MACRO_GROUPE %s et celle : %s du MESHGROUP %s associé à ce macro-groupe." % \ - ( propriete, obj.valeur[propriete], nomMacroGroupe, self.dictGroupes[nomGroupe][propriete], nomGroupe ) - raise ValueError, propriete + ',' + obj.valeur[propriete].nom + ',' + nomMacroGroupe + ',' + self.dictGroupes[nomGroupe][propriete] + ',' + nomGroupe\ - + tr(" : conflit entre la propriete (#1:#2) du MACRO_GROUPE (de nom #3) et celle (#4) du MESHGROUP (#5) associe a ce macro-groupe.") + print ("ERREUR! Conflit entre la MACRO_GROUPE et celle : du MESHGROUP associé à ce macro-groupe.") + #( propriete, obj.valeur[propriete], nomMacroGroupe, self.dictGroupes[nomGroupe][propriete], nomGroupe ) + #raise ValueError( propriete + ',' + obj.valeur[propriete].nom + ',' + nomMacroGroupe + ',' + self.dictGroupes[nomGroupe][propriete] + ',' + nomGroupe\ + #+ tr(" : conflit entre la propriete (#1:#2) du MACRO_GROUPE (de nom #3) et celle (#4) du MESHGROUP (#5) associe a ce macro-groupe.")) + raise ValueError() else : # pas de conflit de cette propriété, alors copie, meme si les propriétés sont les memes pour simplifier self.dictGroupes[nomGroupe][propriete] = obj.valeur[propriete] # sauvegarde du nom de la propriété du macro-groupe dans le meshgroup - except ValueError, err: - raise ValueError, str(err) + except ValueError as err: + raise ValueError( str(err)) def generSOLVEUR(self, obj): if self.debug: - print "generation solveur obj.valeur = %s" % obj.valeur + print ("generation solveur", obj.valeur ) try : self.typeSolveur = obj.valeur['Type'] if self.typeSolveur == "Solveur_lineaire" : self.generSOLVEUR_LINEAIRE(obj) if self.typeSolveur == "Solveur_non_lineaire" : self.generSOLVEUR_LINEAIRE(obj) self.generSOLVEUR_NON_LINEAIRE(obj) - except ValueError, err: - raise ValueError, str(err) + except ValueError as err: + raise ValueError( str(err)) def generSOLVEUR_LINEAIRE(self, obj): if self.debug: - print "generation material obj.valeur = %s" % obj.valeur + print ("generation material" , obj.valeur ) try : nature = obj.valeur['Methode_lineaire'] if nature =="Methode iterative BICGCR" : self.generMETHODE_ITERATIVE_BICGCR(obj) if nature =="Methode directe MUMPS" : self.generMETHODE_DIRECTE_MUMPS(obj) - except ValueError, err: - raise ValueError, str(err) + except ValueError as err: + raise ValueError( str(err)) def generMETHODE_ITERATIVE_BICGCR(self, obj): if self.debug: - print "generation methode iterative BICGCR obj.valeur = %s" % obj.valeur + print ("generation methode iterative BICGCR " , obj.valeur) self.kEpsilonGCP = obj.valeur["Precision"] self.precond=obj.valeur["Preconditionneur"] self.nbIterationMax=obj.valeur["Nombre_iterations_max"] @@ -725,11 +726,11 @@ class CARMEL3DTV0Generator(PythonGenerator): def generMETHODE_DIRECTE_MUMPS(self, obj): texte="" if self.debug: - print "_____________directe_____________" + print ("_____________directe_____________") def generSOLVEUR_NON_LINEAIRE(self, obj): if self.debug: - print "generation solveur_non_lineaire obj.valeur = %s" % obj.valeur + print ("generation solveur_non_lineaire", obj.valeur) correspondance_methodeNonLineaire = {"Methode de Newton":2,"Methode de substitution":1} # correspondance sur la méthode non-linéaire entre le catalogue et le XML self.methodeNonLineaire = correspondance_methodeNonLineaire[obj.valeur["Methode_non_lineaire"]] self.kEpsilonNonLinearite=obj.valeur["PrecisionNonLineaire"] @@ -739,27 +740,27 @@ class CARMEL3DTV0Generator(PythonGenerator): """preparation du bloc correspondant a un materiau du fichier PHYS""" texte="" if self.debug: - print "generation material obj.valeur = %s" % obj.valeur + print ("generation material obj.valeur" , obj.valeur) try : nomMaterial = obj.getSdname() self.dictMaterial[nomMaterial]=obj.valeur - print"self.dictMaterial=%s" %(self.dictMaterial) - except ValueError, err: - raise ValueError, str(err) + print ("self.dictMaterial=" ,self.dictMaterial) + except ValueError as err: + raise ValueError( str(err)) #------------------------------------------------------------------- def generSOURCE(self,obj): """preparation du bloc correspondant a une source du fichier PHYS""" if self.debug: - print "generation source obj valeur = %s" % obj.valeur + print ("generation source obj valeur " , obj.valeur) texte="" try : nomSource = obj.getSdname() self.dictSource[nomSource]=obj.valeur # dictionnaire self.dictSource[nomSource]['milieux'] = [] # liste ordonnée des groupes associés à cette source - print"mon dico des sources=%s" %(self.dictSource) - except ValueError, err: - raise ValueError, str(err) + print ("mon dico des sources=" ,self.dictSource) + except ValueError as err: + raise ValueError( str(err)) #--------------------------------------------------------------------------------------- # traitement fichier PHYS @@ -782,7 +783,7 @@ class CARMEL3DTV0Generator(PythonGenerator): def generBLOC_PARAMETERS(self,obj): if self.debug: - print "generation parameters obj.valeur = %s" % obj.valeur + print ("generation parameters " , obj.valeur ) self.identification = obj.valeur["Identification_du_Modele"] self.fichierMaillage = obj.valeur["Fichier_maillage"] @@ -801,18 +802,17 @@ class CARMEL3DTV0Generator(PythonGenerator): def generBLOC_SYMETRIE(self, obj): if self.debug: - print "generation de la symetrie obj.valeur = %s" % obj.valeur + print ("generation de la symetrie obj.valeur " , obj.valeur ) try: self.listSymetrie.append(obj.valeur) - print"ma liste symetrie =%s" %(self.listSymetrie) - except ValueError, err: - raise ValueError, str(err) + except ValueError as err: + raise ValueError( str(err)) #---------------------------------------------------------------------------------------- def generMOUVEMENT(self, obj): if self.debug: - print "generation du mouvement obj.valeur = %s" % obj.valeur + print ("generation du mouvement obj.valeur " , obj.valeur ) try: nom = obj.getSdname() @@ -820,26 +820,26 @@ class CARMEL3DTV0Generator(PythonGenerator): self.dictMouvement[nom] = {'ordre': self.nombreMouvements, 'valeurs': obj.valeur} self.dictMouvement['ordre'].append(nom) if self.debug: - print "self.dictMouvement =%s" %(self.dictMouvement) - print "self.nombreMouvements =%i" %(self.nombreMouvements) - except ValueError, err: - raise valueError, str(err) + print ("self.dictMouvement " ,self.dictMouvement) + print ("self.nombreMouvements " ,self.nombreMouvements) + except ValueError as err: + raise valueError( str(err)) #---------------------------------------------------------------------------------------- def generSTRANDED_INDUCTOR_GEOMETRY(self, obj): """preparation du bloc STRANDED_INDUCTOR_GEOMETRY""" if self.debug: - print "generation strand obj valeur = %s" % obj.valeur + print ("generation strand obj valeur =" , obj.valeur) try : nomStrand = obj.getSdname() self.dictStrand[nomStrand]=obj.valeur - print"mon dico des stranded inductor geometry=%s" %(self.dictStrand) + print ("mon dico des stranded inductor geometry" ,self.dictStrand) - except ValueError, err: - raise ValueError, str(err) + except ValueError as err: + raise valueError( str(err)) def generPOST_TRAITEMENT(self, obj): if self.debug: - print "generation post traitement obj.valeur = %s" % obj.valeur + print ("generation post traitement obj.valeur " , obj.valeur ) self.carteChamp=obj.valeur["Cartes_des_champs"] self.carteCourantInduit=obj.valeur["Cartes_des_courants_induits"] self.carteForce=obj.valeur["Cartes_des_forces"] @@ -860,8 +860,7 @@ class CARMEL3DTV0Generator(PythonGenerator): 3 formats possibles : 2 listes (anciennement tuples?) et 1 nombre complexe """ if self.debug: - print "formatage" - print "type : %(type_nb_c)s pour %(nb_c)s" % {'type_nb_c': type(nbC), 'nb_c': nbC} + print ("formatage") nbformate ="" if isinstance(nbC,(tuple,list)): if nbC[0] == "'RI'" : @@ -871,7 +870,7 @@ class CARMEL3DTV0Generator(PythonGenerator): else: nbformate = "COMPLEX " + str(nbC.real)+" "+str(nbC.imag) if self.debug: - print "nbformate : %s" % nbformate + print ("nbformate " , nbformate) return nbformate diff --git a/generator/generator_CARMEL3D_frequentiel.py b/generator/oldCodes/oldGenerator_CARMEL3D_frequentiel.py similarity index 100% rename from generator/generator_CARMEL3D_frequentiel.py rename to generator/oldCodes/oldGenerator_CARMEL3D_frequentiel.py -- 2.39.2